一种车辆的大量数据无缝更新方法技术

技术编号:33891754 阅读:14 留言:0更新日期:2022-06-22 17:27
本发明专利技术公开了一种车辆的大量数据无缝更新方法,包括如下步骤:1)将数据系统的目标表改造为基于更新标识的分区表;2)新建用于存储待更新数据的临时表;临时表与目标表结构相同;3)数据系统判断是否发生异常,如果没有发生异常,则将待更新数据插入临时表;4)数据系统判断是否发生异常,如果没有发生异常,则用临时表与目标表进行交换分区,完成数据更新;如果发生异常,则删除临时表。本发明专利技术通过设立与目标表结构相同的临时表,用临时表与目标表进行交换分区,完成数据更新;能够保障数据更新过程中数据的完整性、关联性和逻辑自洽性;还能大幅度缩短数据更新的时间,显著提高系统的数据处理、数据交换的效率。数据交换的效率。数据交换的效率。

【技术实现步骤摘要】
一种车辆的大量数据无缝更新方法


[0001]本专利技术涉及车辆自动驾驶数据交换领域,尤其涉及一种车辆的大量数据无缝更新方法。

技术介绍

[0002]在信息系统处理数据过程中,经常会遇到需要向关系型数据库中更新或写入大量数据的情形,如自动驾驶车辆,在驾驶工程中,会产生海量的数据,需要不断向相关数据库中更新或输入大量数据。
[0003]现有技术中,如CN113434523A公开的

基于大数据的业务数据更新方法、装置、设备及存储介质的专利技术专利申请文件中,介绍了一种大量数据的更新方法,主要包括:接收业务数据更新请求,业务数据更新请求包括用户基本信息、渠道类型信息和业务类型信息;根据渠道类型信息,获取渠道类型信息对应的目标渠道包,目标渠道包包括原始业务类;基于适配器模式,通过原始业务类将业务数据更新请求转接至业务类型信息对应的目标业务类;基于用户基本信息和目标业务类进行业务数据更新操作,得到操作结果,并将操作结果对应的业务消息推送到终端;其能提高业务数据的同步更新效率,并提高业务数据的可维护性。
[0004]按照该专利方案,在具体更新数据时容易出现以下几个问题:1、大量数据的更新或插入慢。由于数据的体量大,IO操作频繁,无法在一个相对较短时间内完成,数据更新较慢;2、涉及多表的更新,无法做到在同一时刻上的数据从事务上保证数据的完整性、关联性和逻辑自洽性。例如:具备明细和汇总关系的两张表同时导入大量数据,无法保证在导入过程中,明细表和汇总表之间的总分关系,让前台业务人员对整个数据的计算准确性产生疑问。又例如:用户信息被拆分成了用户基本信息和用户扩展信息表,两张表同时导入大量数据的时候,用户的ID可能只出现在用户扩展信息表中,而在用户基本信息表中不存在,造成逻辑上的矛盾。
[0005]3、由于执行时间长,大大增加了数据更新期间发生各种未知意外的可能性,此时数据已经部分进入数据库,整个任务由于数据量太大而无法回滚,导致数据库中出现大量脏数据,可能导致数据的准确性降低。
[0006]
技术实现思路

[0007]针对现有技术存在的上述不足,本专利技术的目的是提供一种车辆的大量数据无缝更新方法,以能保障数据更新过程中数据的完整性、关联性和逻辑自洽性。
[0008]本专利技术的技术方案是这样实现的:一种车辆的大量数据无缝更新方法,其特征在于包括如下步骤:1)将数据系统的目标表改造为基于更新标识的分区表;基于更新标识字段将目标
表改造为分区表,让每次更新的数据能够在同一个分区;2)新建用于存储待更新数据的临时表;临时表与目标表结构相同;3)数据系统判断是否发生异常,如果没有发生异常,则将待更新数据插入临时表;如果发生异常,则数据更新结束,或者返回前述第1)步,重新开始;4)数据系统判断是否发生异常,如果没有发生异常,则用临时表与目标表进行交换分区,完成数据更新;如果发生异常,则删除临时表。
[0009]这样,本专利技术通过设立与目标表结构相同的临时表,用临时表与目标表进行交换分区,完成数据更新;能够保障数据更新过程中数据的完整性、关联性和逻辑自洽性;还能大幅度缩短数据更新的时间,显著提高系统的数据处理、数据交换的效率。
[0010]进一步地:步骤2)所述的新建临时表,一种是复制目标表的DDL,然后去除其分区表部分;或者使用数据自带的create table like 表复制功能,同样需要创建临时表后再去除其分区。这样能够获得与目标表结构相同的临时表。
[0011]进一步地:将需要更新的数据,使用insert或者load的方式插入到所述的临时表中。
[0012]进一步地:在发生交换分区时,分区表和临时表原数据所指向的数据文件的路径发生更改,将分区表指向的数据文件修改为临时表原来的数据文件,将临时表指向的数据文件修改为分区表原来的数据文件。这样,由于没有发生实质上的IO读写,可以瞬间完成,能够大幅度缩短数据更新的时间。
[0013]进一步地:在完成数据更新后,数据系统判断是否发生异常,如果出现异常,则删除临时表;或者进行数据回滚。
[0014]进一步地:所述的数据回滚,在步骤1)和步骤2)出现异常时,不会影响目标表的数据,临时表也未曾创建,结束流程;在步骤3)和步骤4)出现异常时,都影响临时表的数据,不涉及到目标表的数据,回滚操作只需要删除多余的临时表。这样能保障目标表的数据不受异常情况的影响,保障数据更新过程中数据的完整性、关联性。
[0015]进一步地:在步骤4)中,将互相关联的多张临时表上的分区交换操作放到同一个任务中,同时进行。
[0016]进一步地:在某些因素导致发生异常时,其中任意一张表交换失败,都需要对其他所有同时进行交换分区的表进行回滚。
[0017]进一步地:回滚的方式是让已经成功进行数据交换的一张表的分区重新交换回来。
[0018]总之,本专利技术的一种车辆的大量数据无缝更新方法,具有如下有益效果:1、本专利技术的数据更新方法,通过设立与目标表结构相同的临时表,用临时表与目标表进行交换分区,完成数据更新,能够保障数据更新过程中数据的完整性、关联性和逻辑自洽性。
[0019]2、能够大幅度缩短数据更新的时间,显著提高系统的数据处理、数据交换的效率。
附图说明
[0020]图1是本专利技术数据更新流程图。
具体实施方式
[0021]下面接合附图对本专利技术做进一步的详细说明:如图1所示,本专利技术的一种车辆的大量数据无缝更新方法,包括大量数据无缝更新所用到的程序与任务编排、关系型数据库表的结构设计,以及数据更新任务失败后的回滚策略。其步骤如下:1、将数据系统的目标表改造为基于更新标识的分区表基于更新标识字段将目标表改造为分区表,让每次更新的数据能够在同一个分区,为了避免后续流程无法找到分区,可以预先建立后续数据加载所需分区。以日志表为例,日志表一经写入,不再更新,因此可以使用业务日期作为分区,预先建立分区时可以建立将来一年的分区。以关系型数据库MySQL为例,MySQL的分区类型有多种:list、range、hash、key、Composite,这里选择建立List分区。
[0022]2、新建用于存储待更新数据的临时表新建一张用于存储待更新数据的临时表,临时表与目标表结构相同,有两种方式,一种是复制目标表的DDL,然后去除其分区表部分;可以根据目标表的DDL修改之后创建;第二种也可以使用数据自带的create table like 表复制功能,同样需要创建临时表后再去除其分区。
[0023]3、数据系统判断是否发生异常,如果没有发生异常,则将待更新数据插入临时表;如果发生异常,则数据更新结束,或者返回前述第1)步,重新开始;将需要更新的数据,使用insert或者load的方式插入到前面步骤2)所创建的临时表中。
[0024]4、数据系统判断是否发生异常,如果没有发生异常,则用临时表与目标表进行分区交换,完成数据更新;如果发生异常,则删除临时表。
[0025]基本语法:alte本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种车辆的大量数据无缝更新方法,其特征在于包括如下步骤:1)将数据系统的目标表改造为基于更新标识的分区表;基于更新标识字段将目标表改造为分区表,让每次更新的数据能够在同一个分区;2)新建用于存储待更新数据的临时表;临时表与目标表结构相同;3)数据系统判断是否发生异常,如果没有发生异常,则将待更新数据插入临时表;如果发生异常,则数据更新结束,或者返回前述第1步,重新开始;4)数据系统判断是否发生异常,如果没有发生异常,则用临时表与目标表进行交换分区,完成数据更新;如果发生异常,则删除临时表。2.根据权利要求1所述的一种车辆的大量数据无缝更新方法,其特征在于:步骤2)所述的新建临时表,一种是复制目标表的DDL,然后去除其分区表部分;或者使用数据自带的create table like 表复制功能,同样需要创建临时表后再去除其分区。3.根据权利要求1或2所述的一种车辆的大量数据无缝更新方法,其特征在于:将需要更新的数据,使用insert或者load的方式插入到所述的临时表中。4.根据权利要求3所述的一种车辆的大量数据无缝更新方法,其特征在于:在发生交换分区时,分区表和临时表原数据所指向的数据文...

【专利技术属性】
技术研发人员:朱成建
申请(专利权)人:重庆长安汽车股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1