System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及数据同步,特别涉及一种数据同步方法、装置、设备、介质及flink引擎。
技术介绍
1、iceberg是一个开源的数据表格管理库,旨在提供一种可扩展的、可靠的和高效的数据表格管理方案,是目前主流的数据湖技术之一,它支持版本控制,可以跟踪数据表格的历史版本,并支持回滚操作;支持acid(即atomicity、consistency、isolation、durability,原子性、一致性、隔离性、持久性)事务,可以确保数据的一致性和可靠性。
2、目前,如何实现基于iceberg技术的数据表之间的数据同步,打通数据湖iceberg表之间或者iceberg表与其他异构数据源之间的数据实时流动的通道是需要解决的问题。
技术实现思路
1、有鉴于此,本申请的目的在于提供一种数据同步方法、装置、设备、介质及flink引擎,能够实现iceberg数据表与其他数据表之间的数据同步,满足包括数据插入、更新以及删除的所有数据变更场景。其具体方案如下:
2、第一方面,本申请公开了一种数据同步方法,包括:
3、获取源数据表的新增数据文件;所述新增数据文件包括第一数据文件和/或第二数据文件,所述第一数据文件为存储插入数据的文件,所述第二数据文件为标记删除数据的文件;
4、当所述新增数据文件包括所述第一数据文件和所述第二数据文件,则依次读取所述第二数据文件以及所述第一数据文件中的数据,并先基于所述第二数据文件中的数据对目的表中的数据进行删除操作,后将所述第
5、当所述新增数据文件包括所述第一数据文件且不包括所述第二数据文件,则读取所述第一数据文件的数据并插入目的表;
6、当所述新增数据文件包括所述第二数据文件且不包括所述第一数据文件,则基于所述第二数据文件中的数据对目的表中的数据进行删除操作。
7、可选的,当所述新增数据文件还包括与第一数据文件关联的第三数据文件;所述第三数据文件中记载了待过滤数据的行号;
8、相应的,将所述第一数据文件中的数据插入所述目的表,包括:
9、读取所述第三数据文件中的行号,并根据所述行号对所述第一数据文件中的数据进行过滤,得到过滤后数据,将所述过滤后数据插入所述目的表。
10、可选的,所述源数据表为iceberg数据表,所述获取源数据表的新增数据文件,包括:
11、监听所述源数据表的元数据;
12、当所述源数据表出现新的元数据,则获取新的元数据对应的所述源数据表的新快照,比较所述新快照与所述源数据表的旧快照,获取所述源数据表的新增数据文件。
13、可选的,所述比较所述新快照与所述源数据表的旧快照,获取所述源数据表的新增数据文件,包括:
14、比较所述新快照与所述源数据表的旧快照分别对应的目标文件,得到目标文件差集;其中,所述目标文件中包括数据文件的文件路径;所述新快照对应新的目标文件以及所有旧的目标文件;
15、基于所述目标文件差集中目标文件内的文件路径,获取所述源数据表的新增数据文件。
16、可选的,所述监听所述源数据表的元数据之前,还包括:
17、读取所述源数据表的最新快照,得到所述源数据表中的全部数据;
18、根据预设转换规则对所述全部数据中的指定数据进行转换后写入至所述目的表,或直接将所述全部数据写入至所述目的表。
19、可选的,读取所述第二数据文件,包括:读取所述第二数据文件中的数据并转换为删除操作的changelog格式数据;
20、读取所述第一数据文件,包括:读取所述第一数据文件中的数据并转换为插入操作的changelog格式数据。
21、第二方面,本申请公开了一种flink引擎,用于实现前述的数据同步方法。
22、第三方面,本申请公开了一种数据同步装置,包括:
23、新增数据文件获取模块,用于获取源数据表的新增数据文件;所述源数据表为iceberg数据表,所述新增数据文件包括第一数据文件和/或第二数据文件,所述第一数据文件为存储插入数据的文件,所述第二数据文件为标记删除数据的文件;
24、数据增量同步模块,用于当所述新增数据文件包括所述第一数据文件和所述第二数据文件,则依次读取所述第二数据文件以及所述第一数据文件中的数据,并先基于所述第二数据文件中的数据对目的表中的数据进行删除操作,后将所述第一数据文件中的数据插入所述目的表,以实现所述目的表的更新;当所述新增数据文件包括所述第一数据文件且不包括所述第二数据文件,则读取所述第一数据文件的数据并插入目的表;当所述新增数据文件包括所述第二数据文件且不包括所述第一数据文件,则基于所述第二数据文件中的数据对目的表中的数据进行删除操作。
25、第四方面,本申请公开了一种电子设备,包括存储器和处理器,其中:
26、所述存储器,用于保存计算机程序;
27、所述处理器,用于执行所述计算机程序,以实现前述的数据同步方法。
28、第五方面,本申请公开了一种计算机可读存储介质,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现前述的数据同步方法。
29、通过以上方案可知,本申请提供了一种数据同步方法,包括:获取源数据表的新增数据文件;所述新增数据文件包括第一数据文件和/或第二数据文件,所述第一数据文件为存储插入数据的文件,所述第二数据文件为标记删除数据的文件;当所述新增数据文件包括所述第一数据文件和所述第二数据文件,则依次读取所述第二数据文件以及所述第一数据文件中的数据,并先基于所述第二数据文件中的数据对目的表中的数据进行删除操作,后将所述第一数据文件中的数据插入所述目的表,以实现所述目的表的更新;当所述新增数据文件包括所述第一数据文件且不包括所述第二数据文件,则读取所述第一数据文件的数据并插入目的表;当所述新增数据文件包括所述第二数据文件且不包括所述第一数据文件,则基于所述第二数据文件中的数据对目的表中的数据进行删除操作。
30、可见,本申请的有益效果为:获取源数据表的新增数据文件,当新增数据文件包括第一数据文件和第二数据文件,则基于第一数据文件和第二数据文件先对目的表依次进行删除和插入操作,以实现所述目的表的同步更新;当新增数据文件包括所述第一数据文件,基于第一数据文件实现目的表的同步插入,当新增数据文件包括第二数据文件,基于第二数据文件实现目的表的同步删除,这样,能够实现源数据表与其他数据表之间的数据同步,满足包括数据插入、更新以及删除的所有数据变更场景。
31、相应地,本申请提供的一种数据同步装置、设备及可读存储介质,也同样具有上述技术效果。
本文档来自技高网...【技术保护点】
1.一种数据同步方法,其特征在于,包括:
2.根据权利要求1所述的数据同步方法,其特征在于,当所述新增数据文件还包括与第一数据文件关联的第三数据文件;所述第三数据文件中记载了待过滤数据的行号;
3.根据权利要求1所述的数据同步方法,其特征在于,所述源数据表为Iceberg数据表,所述获取源数据表的新增数据文件,包括:
4.根据权利要求3所述的数据同步方法,其特征在于,所述比较所述新快照与所述源数据表的旧快照,获取所述源数据表的新增数据文件,包括:
5.根据权利要求3所述的数据同步方法,其特征在于,所述监听所述源数据表的元数据之前,还包括:
6.根据权利要求1所述的数据同步方法,其特征在于,读取所述第二数据文件,包括:读取所述第二数据文件中的数据并转换为删除操作的Changelog格式数据;
7.一种Flink引擎,其特征在于,所述Flink引擎用于实现如权利要求1至6任一项所述的数据同步方法。
8.一种数据同步装置,其特征在于,包括:
9.一种电子设备,其特征在于,包括存储器和处理器,
10.一种计算机可读存储介质,其特征在于,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述的数据同步方法。
...【技术特征摘要】
1.一种数据同步方法,其特征在于,包括:
2.根据权利要求1所述的数据同步方法,其特征在于,当所述新增数据文件还包括与第一数据文件关联的第三数据文件;所述第三数据文件中记载了待过滤数据的行号;
3.根据权利要求1所述的数据同步方法,其特征在于,所述源数据表为iceberg数据表,所述获取源数据表的新增数据文件,包括:
4.根据权利要求3所述的数据同步方法,其特征在于,所述比较所述新快照与所述源数据表的旧快照,获取所述源数据表的新增数据文件,包括:
5.根据权利要求3所述的数据同步方法,其特征在于,所述监听所述源数据表的元数据...
【专利技术属性】
技术研发人员:莫根生,陈飞,吴国才,
申请(专利权)人:深信服科技股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。