数据更新方法、装置以及存储介质制造方法及图纸

技术编号:39049811 阅读:19 留言:0更新日期:2023-10-10 12:02
本申请公开了一种数据更新方法、装置以及存储介质。涉及信息技术领域。其中,一种数据更新方法,包括:在第一数据表中根据第一字段查询与第二字段对应的最新的版本信息,其中第一字段为主键,第二字段用于指示版本信息,第一数据表为面向列的数据库中的数据表;根据第一字段和版本信息在与第一数据表关联的按列存储的数据信息中进行查询,得到查询结果;以及根据查询结果构建第二数据表,其中第二数据表用于存储更新后的数据信息。解决了现有技术中存在的面向列的数据库不能直接更新数据所造成的数据更新效率低、数据更新不可靠以及数据更新操作复杂的技术问题。更新操作复杂的技术问题。更新操作复杂的技术问题。

【技术实现步骤摘要】
数据更新方法、装置以及存储介质


[0001]本申请涉及信息
,特别是涉及一种数据更新方法、装置以及存储介质。

技术介绍

[0002]ClickHouse是一种面向列的分布式数据库管理系统,被广泛用于大数据分析和数据仓库应用。然而,ClickHouse的设计初衷是为了提供高性能的查询和分析功能,由于其面向列的存储和查询方式,ClickHouse目前不能直接更新数据。目前的解决方案主要是通过删除和重新插入数据的方式来实现数据更新,但是这种方式存在着性能和效率上的问题。
[0003]例如,ID为“pk1_1”的保险公司的ID为“pk2_1_1”的保险产品进行调整,从而导致保费金额和理赔金额等信息发生变化时,需要对该数据进行更新。为了进行更新,数据库管理系统需要根据主键键值“pk1_1”和“pk2_1_1”在数据列col1中查询相应的数据,之后删除该数据并重新插入新的数据,以及根据主键键值“pk1_1”和“pk2_1_1”在数据列col2中查询相应的数据,之后删除该数据并重新插入新的数据,等等。
[0004]这种方式存在着以下缺陷:(1)数据更新效率低:由于需要删除和重新插入数据,这种方式的数据更新效率低下,对于大数据量(百亿级以上)的更新操作,时间成本非常高。
[0005]例如当数据表中的数据包含更多的行和更多的列,并且需要更新的数据量又很大时,按照以上方式进行更新,时间成本会非常高。
[0006](2)数据更新不可靠:在数据更新的过程中,如果出现错误或者意外情况,可能会导致数据更新失败,甚至导致数据丢失,从而影响业务运行。
[0007](3)数据更新操作复杂:由于需要通过删除和重新插入数据的方式来实现更新,这种方式的数据更新操作相对复杂,需要编写更多的代码和处理逻辑,增加了开发人员的工作量和复杂度。
[0008]公开号为CN116069791A,名称为一种数据的处理方法和装置、计算机设备。其中,该方法包括:利用分布式处理引擎Flink的监测组件CDC监听数据管理平台上发生变更的业务数据,利用所述分布式处理引擎Flink的技术栈将所述业务数据清洗后同步至数据库ClickHouse,在查询平台中接收对所述数据库ClickHouse的数据查询请求,通过FlinkCDC可以监测并捕获数据库的所有变动,包括数据或数据表的插入、更新以及删除等,进而完整的将数据同步至数据库ClickHouse,可以解决了相关技术中产生的数据不一致的技术问题,进而保证了数据管理平台和数据库ClickHouse的数据一致性的技术效果。
[0009]公开号为CN115794842A,名称为一种数据处理方法、装置、电子设备及介质,涉及计算机
该方法包括:获取待更新数据,确定所述待更新数据的标识;确定所述待更新数据的标识是否被标记;在所述待更新数据的标识未被标记的情况下,查询Clickhouse数据表中是否存在所述待更新数据的标识;在所述Clickhouse数据表中不存在所述待更新数据的标识的情况下,标记所述待更新数据的标识,并将所述更新数据插入所述Clickhouse数据表中。该方法通过对待更新数据的标识进行两次判断可以保证数据的唯
一性,克服了数据更新、删除时的重复、丢失的技术问题,且该方法操作简单,响应迅速,提高了响应率和效率,适用于数据高并发的情况。
[0010]针对上述的现有技术中存在的面向列的数据库不能直接更新数据所造成的数据更新效率低、数据更新不可靠以及数据更新操作复杂的技术问题,目前尚未提出有效的解决方案。

技术实现思路

[0011]本申请的实施例提供了一种数据更新方法、装置以及存储介质,以至少解决现有技术中存在的面向列的数据库不能直接更新数据所造成的数据更新效率低、数据更新不可靠以及数据更新操作复杂的技术问题。
[0012]根据本申请实施例的一个方面,提供了一种数据更新方法,包括:在第一数据表中根据第一字段查询与第二字段对应的最新的版本信息,其中第一字段为主键,第二字段用于指示版本信息,第一数据表为面向列的数据库中的数据表;根据第一字段和版本信息在与第一数据表关联的按列存储的数据信息中进行查询,得到查询结果;以及根据查询结果构建第二数据表,其中第二数据表用于存储更新后的数据信息。
[0013]根据本申请实施例的另一个方面,还提供了一种存储介质,存储介质包括存储的程序,其中,在程序运行时由处理器执行以上任意一项所述的方法。
[0014]根据本申请实施例的另一个方面,还提供了一种数据更新装置,包括:第一查询模块,用于在第一数据表中根据第一字段查询与第二字段对应的最新的版本信息,其中第一字段为主键,第二字段用于指示版本信息,第一数据表为面向列的数据库中的数据表;第二查询模块,用于根据第一字段和版本信息在与第一数据表关联的按列存储的数据信息中进行查询,得到查询结果;以及第一构建模块,用于根据查询结果构建第二数据表,其中第二数据表用于存储更新后的数据信息。
[0015]根据本申请实施例的另一个方面,还提供了一种数据更新装置,包括:处理器;以及存储器,与处理器连接,用于为处理器提供处理以下处理步骤的指令:在第一数据表中根据第一字段查询与第二字段对应的最新的版本信息,其中第一字段为主键,第二字段用于指示版本信息,第一数据表为面向列的数据库中的数据表;根据第一字段和版本信息在与第一数据表关联的按列存储的数据信息中进行查询,得到查询结果;以及根据查询结果构建第二数据表,其中第二数据表用于存储更新后的数据信息。
[0016]在本申请实施例中,数据库中建立数据底表,数据触发器根据主键“pk1”和“pk2”将更新的版本信息按列存储至数据底表中字段“ver”下的旧数据之后,之后将字段“pk1”、“pk2”和“ver”作为主键将更新的保费金额、理赔金额以及与该保险产品对应的说明按列分别存储至数据底表中字段“col1”、“col2”和“col3”下的旧数据之后。从而本技术方案中的数据触发器在数据底表中将更新的数据直接按列存储于未更新的旧数据之后,之后根据主键“pk1”、“pk2”和“ver”将更新的数据按列存储至数据聚合表中,在数据聚合表中对数据信息进行查询分析。从而本技术方案并不需要在数据底表中对未更新的旧数据进行删除后,再插入更新的新数据,从而保证了数据的更新速度和更新效率,减少了开发人员的工作量,使得数据更新操作更加简单。当在数据更新过程中,数据更新失败后,可以根据旧数据进行再次更新,避免发生数据丢失的情况,从而提高数据更新的可靠性。并且本技术方案有利于
用户对数据进行分析。例如,用户需要对各个保险公司各个保险产品的保费金额进行统计时,只需要对数据列“col1”中的数据进行查询分析即可。而不必在普通的数据库中那样需要逐行读取数据并在每行数据中提取与字段“col1”对应的数据值。进而解决了现有技术中存在的面向列的数据库不能直接更新数据所造成的数据更新效率低、数据更新不可靠以及数据更新操作复杂的技术问题。
附图说明
[0017]此处所说明本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据更新方法,其特征在于,包括:在第一数据表中根据第一字段查询与第二字段对应的最新的版本信息,其中所述第一字段为主键,所述第二字段用于指示版本信息,所述第一数据表为面向列的数据库中的数据表;根据所述第一字段和所述版本信息在与所述第一数据表关联的按列存储的数据信息中进行查询,得到查询结果;以及根据所述查询结果构建第二数据表,其中所述第二数据表用于存储更新后的数据信息。2. 根据权利要求1所述的方法,其特征在于,在第一数据表中根据第一字段查询与第二字段对应的最新的版本信息之前,还包括:在所述第一数据表中,根据所述第一字段添加与所述第二字段对应的数据信息;以及根据所述第一字段和所述第二字段添加与剩余字段对应的数据信息。3.根据权利要求1所述的方法,其特征在于,还包括:在所述第二数据表中,根据第三字段查询数据信息,其中所述第三字段对应于所述第一数据表中的第一字段。4. 根据权利要求3所述的方法,其特征在于,还包括:获取所述第二数据表中的字段和数据信息;以及根据所述第二数据表中的字段和数据信息构建第三数据表,其中所述第三数据表为分布式数据表。5.一种存储介质,其特征在于,所述存储介质包括存储的程序,其中,在所述程序运行时由处理器执行权利要求1至4中任意一项所述的方法。6.一种数据更新装置,其特征在于,包括:第一查询模块,用于在第一数据表中根据第一字段查询与第二字段对应的最新的版本信息,其中所述第一字段为主键,所述第二字段用于指示版本信息,所述第一数据表为面向列的数据库中的数据表;第二查询模块,用于根据所述第一字段和所述...

【专利技术属性】
技术研发人员:刘阳
申请(专利权)人:北京车与车科技有限公司
类型:发明
国别省市:

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

1