System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及数据库数据更新领域,尤其涉及一种数据更新方法、装置、终端设备以及存储介质。
技术介绍
1、多表关联查询是常见的数据库查询操作之一,通常在涉及多个表格的业务场景中使用。具体地,在多表关联查询的业务场景中,为降低对于业务数据库的消耗,通常将多表数据存储到elasticsearch(搜索服务器)数据库中,使用elasticsearch数据库的统计和查询能力来满足业务场景的需要。
2、然而,这种将多表数据存储到elasticsearch的数据存储方式,在数据更新时,会有数据更新效率低的问题。具体地,对elasticsearch数据库的数据更新时,需要先查询待更新数据在数据库中对应的数据文档,然后将若干个数据文档进行聚合得到聚合文档,再将待更新数据进行更新并覆盖到聚合文档中,最后将更新后的聚合文档写回elasticsearch数据库,可以理解地,上述数据更新流程繁琐,降低数据更新效率。尤其对于涉及子文档以数组进行聚合后再存储的复杂更新方式,具体需要在elasticsearch数据库中,先查询出完整的聚合文档后,再遍历数组并定位到子文档后,才能进行待更新数据的更新覆盖操作,最后将更新后的聚合文档写回elasticsearch数据库,上述过程由于需要遍历数组和查询若干个数据文档来聚合文档,要多次与elasticsearch数据库进行交互,造成文档更新效率低的问题。
技术实现思路
1、本申请的主要目的在于提供一种数据更新方法、装置、终端设备以及存储介质,旨在提高数据更新效率。
2、为实现上述目的,本申请提供一种数据更新方法,所述数据更新方法包括:
3、获取待更新数据;
4、对所述待更新数据进行数组路径映射处理,得到映射后的待更新数据;
5、提取所述映射后的待更新数据的主键信息,得到待查询主键;
6、根据所述映射后的待更新数据,对存储于中转数据库中的聚合文档进行局部更新,得到更新后的聚合文档;
7、根据所述待查询主键,对所述更新后的聚合文档进行数组还原,得到最终文档。
8、可选地,所述对所述待更新数据进行数组路径映射处理,得到映射后的待更新数据的步骤包括:
9、基于预设的配置文件,识别所述待更新数据的数据结构,得到主键信息、数组信息和待更新键值;
10、基于所述配置文件,将所述主键信息和所述数组信息进行数组路径映射处理,得到路径信息;
11、将所述路径信息和所述待更新键值进行组合,得到所述映射后的待更新数据。
12、可选地,所述根据所述映射后的待更新数据,对存储于中转数据库中的聚合文档进行局部更新,得到更新后的聚合文档的步骤包括:
13、根据所述映射后的待更新数据的路径信息,定位所述聚合文档,得到待更新位置;
14、将所述聚合文档的待更新位置对应的键值更新为所述待更新键值,得到所述更新后的聚合文档。
15、可选地,所述基于所述配置文件,将所述主键信息和所述数组信息进行数组路径映射处理,得到路径信息的步骤之前还包括:
16、判断所述待更新数据是否属于主表;
17、所述基于所述配置文件,将所述主键信息和所述数组信息进行数组路径映射处理,得到路径信息的步骤包括:
18、若所述待更新数据不属于主表,则基于所述配置文件,将所述主键信息和所述数组信息进行数组路径映射处理,得到所述路径信息。
19、可选地,所述获取待更新数据的步骤包括:
20、通过预设的更新窗口获取待更新数据;
21、所述对所述待更新数据进行数组路径映射处理,得到映射后的待更新数据的步骤包括:
22、计算所述更新窗口内所述待更新数据的数量,得到所述待更新数据的条数;
23、当所述待更新数据的条数满足预设更新条数阈值条件或所述更新窗口的队列时间满足预设更新时间阈值条件时,对所述待更新数据进行去重,得到去重后的待更新数据;
24、对所述去重后的待更新数据进行路径映射处理,得到所述映射后的待更新数据。
25、可选地,所述根据所述映射后的待更新数据,对存储于中转数据库中的聚合文档进行局部更新,得到更新后的聚合文档的步骤之后还包括:
26、将所述待查询主键发送至还原窗口;
27、计算所述还原窗口内所述待查询主键的数量,得到所述待查询主键的条数;
28、所述根据所述待查询主键,对所述更新后的聚合文档进行数组还原,得到最终文档的步骤的包括:
29、当所述待查询主键的条数满足预设查询条数阈值条件或所述还原窗口的队列时间满足预设还原时间阈值条件时,对所述待查询主键进行去重,得到去重后的待查询主键;
30、根据所述去重后的待查询主键,对所述更新后的聚合文档进行数组还原,得到所述最终文档。
31、可选地,所述对所述待更新数据进行数组路径映射处理,得到映射后的待更新数据的步骤之前还包括:
32、基于所述待更新数据,对所述待更新数据的数据表进行类型识别,得到数据表类型;
33、根据所述数据表类型进行配置,得到所述配置文件。
34、本申请实施例还提出一种数据更新装置,所述数据更新装置包括:
35、数据获取模块,用于获取待更新数据;
36、数据映射模块,用于对所述待更新数据进行数组路径映射处理,得到映射后的待更新数据;
37、主键提取模块,用于提取所述映射后的待更新数据的主键信息,得到待查询主键;
38、数据更新模块,用于根据所述映射后的待更新数据,对存储于中转数据库中的聚合文档进行局部更新,得到更新后的聚合文档;
39、数据还原模块,用于根据所述待查询主键,对所述更新后的聚合文档进行数组还原,得到最终文档。
40、本申请实施例还提出一种终端设备,所述终端设备包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的数据更新程序,所述数据更新程序被所述处理器执行时实现如上所述的数据更新方法的步骤。
41、本申请实施例还提出一种计算机可读存储介质,所述计算机可读存储介质上存储有数据更新程序,所述数据更新程序被处理器执行时实现如上所述的数据更新方法的步骤。
42、本申请实施例提出的数据更新方法、装置、终端设备以及存储介质,通过获取待更新数据;对所述待更新数据进行数组路径映射处理,得到映射后的待更新数据;提取所述映射后的待更新数据的主键信息,得到待查询主键;根据所述映射后的待更新数据,对存储于中转数据库中的聚合文档进行局部更新,得到更新后的聚合文档;根据所述待查询主键,对所述更新后的聚合文档进行数组还原,得到最终文档。通过将待更新数据进行数组路径映射处理,得到不包含数组结构的映射后的待更新数据,以及映射后的待更新数据对应的待查询主键;再根据映射后的待更新数据,对存储于中转数据库中的聚合文档进行局部更新本文档来自技高网...
【技术保护点】
1.一种数据更新方法,其特征在于,所述数据更新方法包括:
2.根据权利要求1所述的数据更新方法,其特征在于,所述对所述待更新数据进行数组路径映射处理,得到映射后的待更新数据的步骤包括:
3.根据权利要求2所述的数据更新方法,其特征在于,所述根据所述映射后的待更新数据,对存储于中转数据库中的聚合文档进行局部更新,得到更新后的聚合文档的步骤包括:
4.根据权利要求2所述的数据更新方法,其特征在于,所述基于所述配置文件,将所述主键信息和所述数组信息进行数组路径映射处理,得到路径信息的步骤之前还包括:
5.根据权利要求1所述的数据更新方法,其特征在于,所述获取待更新数据的步骤包括:
6.根据权利要求1所述的数据更新方法,其特征在于,所述根据所述映射后的待更新数据,对存储于中转数据库中的聚合文档进行局部更新,得到更新后的聚合文档的步骤之后还包括:
7.根据权利要求2所述的数据更新方法,其特征在于,所述对所述待更新数据进行数组路径映射处理,得到映射后的待更新数据的步骤之前还包括:
8.一种数据更新装置,其特征
9.一种终端设备,其特征在于,所述终端设备包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的数据更新程序,所述数据更新程序被所述处理器执行时实现如权利要求1-7中任一项所述的数据更新方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有数据更新程序,所述数据更新程序被处理器执行时实现如权利要求1-7中任一项所述的数据更新方法的步骤。
...【技术特征摘要】
1.一种数据更新方法,其特征在于,所述数据更新方法包括:
2.根据权利要求1所述的数据更新方法,其特征在于,所述对所述待更新数据进行数组路径映射处理,得到映射后的待更新数据的步骤包括:
3.根据权利要求2所述的数据更新方法,其特征在于,所述根据所述映射后的待更新数据,对存储于中转数据库中的聚合文档进行局部更新,得到更新后的聚合文档的步骤包括:
4.根据权利要求2所述的数据更新方法,其特征在于,所述基于所述配置文件,将所述主键信息和所述数组信息进行数组路径映射处理,得到路径信息的步骤之前还包括:
5.根据权利要求1所述的数据更新方法,其特征在于,所述获取待更新数据的步骤包括:
6.根据权利要求1所述的数据更新方法,其特征在于,所述根据所述映射后的待...
【专利技术属性】
技术研发人员:张豫坤,
申请(专利权)人:招商银行股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。