[发明专利]一种数据湖数据同步方法及装置有效
申请号: | 202310133671.4 | 申请日: | 2023-02-20 |
公开(公告)号: | CN115840786B | 公开(公告)日: | 2023-05-02 |
发明(设计)人: | 朱亚东;孙茂森 | 申请(专利权)人: | 北京数元灵科技有限公司 |
主分类号: | G06F16/27 | 分类号: | G06F16/27;G06F16/22;G06F16/23 |
代理公司: | 北京风雅颂专利代理有限公司 11403 | 代理人: | 徐雅琴 |
地址: | 101399 北京市顺义区*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 数据 同步 方法 装置 | ||
1.一种数据湖数据同步方法,其特征在于,包括:
从在线数据库获取增量源数据;
对所述增量源数据进行解析,得到变更数据表的元数据和数据内容;其中,所述元数据包括主键值、表名和数据内容的变更类型;
根据所述元数据,更新数据湖中相应的元数据管理表;
按照所述主键值对所述数据内容进行分桶,得到多个桶的数据内容;其中,每个桶的数据内容包括多个变更数据表的数据内容;
将各桶中的数据内容保存于数据湖中与所述表名对应的存储位置,包括:对于每个桶的数据内容:
缓存各变更数据表的数据内容;
对于每个变更数据表的数据内容,当达到预设的数量阈值时,按照获取所述数据内容的时间和所述变更类型,对所述达到数量阈值的数据内容进行排序;
根据所述排序后的数据内容中的表名,查询预先构建的数据映射表,获得该表名对应的存储位置;其中,所述数据映射表是首次从在线数据库获取源数据时构建的,所述数据映射表用于保存与在线数据库中所有数据表的表信息和各数据表在数据湖中的存储位置,所述表信息包括表名、字段及字段类型;
将所述排序后的数据内容保存于查询到的存储位置。
2.根据权利要求1所述的方法,其特征在于,将各桶中的数据内容保存于数据湖中与所述表名对应的存储位置之后,还包括:
当到达异常检测时间点时,根据保存的数据内容的元数据,更新相应的元数据管理表;其中,所述保存的数据内容的元数据包括保存的数据文件大小、保存时间、写入文件的字段名和存储位置。
3.根据权利要求1所述的方法,其特征在于,所述从在线数据库获取增量源数据之前,包括:
从在线数据库获取全量源数据;
对所述全量源数据进行解析,得到所有数据表的元数据;
分别创建与各数据表的元数据对应的元数据管理表;
根据所有数据表的主键值,将所述全量源数据均等划分为多个数据分片;
并行地将各个数据分片保存于数据湖中。
4.根据权利要求1所述的方法,其特征在于,所述元数据还包括库名和数据定义语句;
对所述增量源数据进行解析,得到变更数据表的元数据之后,还包括:
如果所述数据定义语句为创建表或者修改表,从所述在线数据库获取所述变更数据表所包括的字段及字段类型;
根据所述元数据,更新数据湖中相应的元数据管理表,包括:
如果所述数据定义语句为创建表,根据所述库名、表名、主键值、字段及字段类型,创建与所述变更数据表对应的元数据管理表;
如果所述数据定义语句为修改表,根据所述库名、表名,查找与所述变更数据表对应的元数据管理表;
按照所述主键值、字段及字段类型,更新查找到的元数据管理表中的相应项。
5.根据权利要求1所述的方法,其特征在于,所述主键值包括多个字段,各字段的类型相同或不同;按照所述表名对所述数据内容进行分桶,包括:
将所述主键值划分为多个字段;
按序计算各字段的哈希值,得到所述主键值的哈希值;其中,当前字段的哈希值是根据上个字段的哈希值和当前字段计算得到的;
根据所述主键值的哈希值和预设的分桶数,确定所述数据内容所属的桶。
6.根据权利要求2所述的方法,其特征在于,还包括:
未出现异常的情况下,当到达所述异常检测时间点时,根据已处理的元数据更新相应的元数据管理表,将已处理的数据内容保存于相应的存储位置;
在出现异常的情况下,读取距离异常出现时刻最近的异常检测时间点,根据该异常检测时间点记录的已处理的元数据和数据内容,进行数据恢复。
7.一种数据湖数据同步装置,其特征在于,包括:
获取模块,用于从在线数据库获取增量源数据;
解析模块,用于对所述增量源数据进行解析,得到变更数据表的元数据和数据内容;其中,所述元数据包括主键值、表名和数据内容的变更类型;
元数据同步模块,用于根据所述元数据,更新数据湖中相应的元数据管理表;
数据内容同步模块,用于按照所述主键值对所述数据内容进行分桶,得到多个桶的数据内容;其中,每个桶的数据内容包括多个变更数据表的数据内容;以及将各桶中的数据内容保存于数据湖中与所述表名对应的存储位置,包括:对于每个桶的数据内容:缓存各变更数据表的数据内容;对于每个变更数据表的数据内容,当达到预设的数量阈值时,按照获取所述数据内容的时间和所述变更类型,对所述达到数量阈值的数据内容进行排序;根据所述排序后的数据内容中的表名,查询预先构建的数据映射表,获得该表名对应的存储位置;其中,所述数据映射表是首次从在线数据库获取源数据时构建的,所述数据映射表用于保存与在线数据库中所有数据表的表信息和各数据表在数据湖中的存储位置,所述表信息包括表名、字段及字段类型;将所述排序后的数据内容保存于查询到的存储位置。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京数元灵科技有限公司,未经北京数元灵科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202310133671.4/1.html,转载请声明来源钻瓜专利网。
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置