本发明涉及计算机,尤其涉及一种数据更新方法及装置。
背景技术:
1、hudi是一款开源的用于对基于hadoop生态搭建的数据湖/数据仓库上的数据进行快速更新存储的架构。
2、现有的hudi针对非全字段形式的数据更新时,由于hudi使用的输入输出组件能力有限,无法明确的分辨出待更新数据中某个字段是null值还是不更新值,因此只能笼统的挑选最新的更新字段,并把不更新的字段都当做null值处理。导致hudi在处理非全字段更新时,把不更新的字段舍弃,导致更新数据不准确。
技术实现思路
1、本发明提供一种数据更新方法及装置,用以解决现有技术hudi在处理非全字段更新时,把不更新的字段舍弃,导致更新数据不准确的技术问题。
2、本发明提供一种数据更新方法,包括:
3、获取数据存储架构hudi中目标数据的变更数据;
4、基于所述变更数据,在所述目标数据的更新信息字段中存储所述变更数据的字段更新信息,并在所述目标数据的操作类型字段中存储所述变更数据的数据变更类型信息;
5、基于所述更新信息字段,确定所述目标数据中的待更新字段,并基于所述操作类型字段,确定所述待更新字段的更新方式;
6、基于所述更新方式以及所述变更数据,对所述目标数据在数据库中对应存储的历史数据进行更新,得到更新后的历史数据,并对所述更新后的历史数据进行列存储。
7、根据本发明提供的一种数据更新方法,基于所述更新信息字段,确定所述目标数据中的待更新字段,包括:
8、基于所述更新信息字段,确定所述目标数据中的空字段以及所述目标数据中不更新的字段;
9、基于所述空字段以及所述不更新的字段,确定所述目标数据中的待更新字段。
10、根据本发明提供的一种数据更新方法,基于所述更新方式以及所述变更数据,对所述目标数据在数据库中对应存储的历史数据进行更新,得到更新后的历史数据,并对所述更新后的历史数据进行列存储,包括:
11、将所述更新方式以及所述变更数据进行行存储,得到行存储数据;
12、基于行存储数据中的更新方式以及行存储数据中的变更数据,对所述目标数据在数据库中对应存储的历史数据进行更新,得到更新后的历史数据,并对所述更新后的历史数据进行列存储。
13、根据本发明提供的一种数据更新方法,获取数据存储架构hudi中目标数据的变更数据之后,还包括:
14、对所述hudi中的系统预留字段进行扩展,得到所述目标数据的键值字段以及所述目标数据的交换数据字段;
15、在所述变更数据对应的变更字段为所述目标数据中的唯一键字段的情况下,基于所述变更数据,确定所述目标数据的唯一键变更值,并将所述唯一键变更值发送至目标地址的http服务器,以使所述http服务器存储所述唯一键变更值;
16、在所述目标数据的键值字段中存储所述目标数据的历史唯一键值,并在所述目标数据的交换数据字段中存储所述目标地址。
17、根据本发明提供的一种数据更新方法,在所述目标数据的交换数据字段中存储所述目标地址之后,还包括:
18、从所述交换数据字段中获取所述目标地址,并从所述http服务器中获取所述唯一键变更值;
19、基于所述唯一键变更值以及所述键值字段中的历史唯一键值,更新所述目标数据的唯一键值,并将更新后的目标数据写入列存格式的数据文件中,得到所述目标数据的列存储数据;
20、基于所述列存储数据,替换所述目标数据在数据库中对应存储的历史数据。
21、根据本发明提供的一种数据更新方法,基于所述变更数据,在所述目标数据的更新信息字段中存储所述变更数据的字段更新信息之前,还包括:
22、对所述hudi中的系统预留字段进行扩展,得到所述目标数据的更新信息字段以及所述目标数据的操作类型字段。
23、本发明还提供一种数据更新装置,包括:
24、获取模块,用于获取数据存储架构hudi中目标数据的变更数据;
25、变更数据处理模块,用于基于所述变更数据,在所述目标数据的更新信息字段中存储所述变更数据的字段更新信息,并在所述目标数据的操作类型字段中存储所述变更数据的数据变更类型信息;
26、更新方式确定模块,用于基于所述更新信息字段,确定所述目标数据中的待更新字段,并基于所述操作类型字段,确定所述待更新字段的更新方式;
27、存储更新模块,用于基于所述更新方式以及所述变更数据,对所述目标数据在数据库中对应存储的历史数据进行更新,得到更新后的历史数据,并对所述更新后的历史数据进行列存储。
28、本发明还提供一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述任一种所述数据更新方法。
29、本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上述任一种数据更新方法。
30、本发明还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述任一种所述数据更新方法。
31、本发明提供的数据更新方法及装置,通过对hudi架构中目标数据的字段进行扩展,将目标数据的变更信息存储在扩展的更新信息字段以及操作类型字段中,用于辅助目标数据中变更数据的更新过程,实现了字段更新的必要的信息的存储。对于目标数据中非全字段更新的情况,能基于扩充字段中存储的更新信息,准确实现对hudi架构中字段的更新,提升了数据更新的准确性。
1.一种数据更新方法,其特征在于,所述方法包括:
2.根据权利要求1所述的数据更新方法,其特征在于,所述基于所述更新信息字段,确定所述目标数据中的待更新字段,包括:
3.根据权利要求1所述的数据更新方法,其特征在于,所述基于所述更新方式以及所述变更数据,对所述目标数据在数据库中对应存储的历史数据进行更新,得到更新后的历史数据,并对所述更新后的历史数据进行列存储,包括:
4.根据权利要求1所述的数据更新方法,其特征在于,所述获取数据存储架构hudi中目标数据的变更数据之后,还包括:
5.根据权利要求4所述的数据更新方法,其特征在于,所述在所述目标数据的交换数据字段中存储所述目标地址之后,还包括:
6.根据权利要求1所述的数据更新方法,其特征在于,所述基于所述变更数据,在所述目标数据的更新信息字段中存储所述变更数据的字段更新信息之前,还包括:
7.一种数据更新装置,其特征在于,包括:
8.一种电子设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至6任一项所述数据更新方法。
9.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述数据更新方法。
10.一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述数据更新方法。