一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于flink的实时数据同步方法与流程

2022-06-01 17:01:33 来源:中国专利 TAG:


1.本发明公开一种方法,涉及数据同步技术领域,具体地说是一种基于flink的实时数据同步方法。


背景技术:

2.现有技术中,数据同步时一般分为两种方案。一种方案基于业务时间字段进行定时增量同步,该方案虽然比较成熟,但是数据延迟较大,且受制于表结构设计,对于没有合适增量同步字段的表只能进行全量抽取,无法进行增量同步,降低了数据实时性;另一种方案通过捕获并解析数据库变更日志,将变更数据实时写入同步目标库,可以有效保证数据实时性,但是由于数据库归档日志不会永久保留,所以存在保证及时处理日志数据、不丢数据的问题,其次,现有基于数据库变更日志的实时数据同步技术存在宕机后恢复同步操作复杂、无法支持异构数据源同步、无法支持同步过程中数据处理等问题。


技术实现要素:

3.本发明针对现有技术的问题,提供一种基于flink的实时数据同步方法,不仅能够有效保证同步数据的实时性,而且能够支持同步过程中的数据处理及异构数据源之间的数据同步,并有效降低恢复同步所需人力及时间成本。
4.本发明提出的具体方案是:
5.本发明一种基于flink的实时数据同步方法,制定并启动基于flink的增量同步任务,将同步源端数据变更日志实时采集至kafka消息队列,其中基于flink配置增量同步任务的环境,创建所述增量同步任务的source读取端读取并解析同步源端数据变更日志信息,创建所述增量同步任务的sink写入端暂存同步源端数据变更日志信息至kafka消息队列,
6.制定并启动基于flink的增量消费任务,将kafka消息队列中的同步源端数据变更日志信息实时消费,并写入至同步目标数据端,其中基于flink配置增量消费任务的环境,创建所述增量消费任务的source读取端从kafka消息队列消费同步源端数据变更日志信息,创建所述增量消费任务的sink写入端将同步源端数据变更日志信息流数据写入同步目标数据端。
7.进一步,所述的一种基于flink的实时数据同步方法中所述基于flink配置增量同步任务的环境,包括:
8.配置任务断点恢复策略,
9.配置断点保存时间间隔及断点保存超时时间。
10.进一步,所述的一种基于flink的实时数据同步方法中所述基于flink配置增量消费任务的环境,包括:
11.配置任务断点恢复策略,
12.配置断点保存时间间隔及断点保存超时时间。
13.进一步,所述的一种基于flink的实时数据同步方法中所述创建所述增量同步任务的source读取端,包括:
14.基于flink提供的sourcefunction接口自定义所述增量同步任务的source读取端或者基于flink-cdc配置构建所述增量同步任务的source读取端。
15.进一步,所述的一种基于flink的实时数据同步方法中所述创建所述增量消费任务的source读取端,包括:
16.基于flink提供的flinkkafkaconsumer实例化所述增量消费任务的source读取端。
17.进一步,所述的一种基于flink的实时数据同步方法中所述创建所述增量同步任务的sink写入端,包括:
18.基于flink提供的flinkkafkaproducer实例化所述增量同步任务的sink写入端。
19.进一步,所述的一种基于flink的实时数据同步方法中所述创建所述增量消费任务的sink写入端,包括:
20.基于flink提供的richsinkfunction抽象类自定义所述增量消费任务的sink写入端。
21.进一步,所述的一种基于flink的实时数据同步方法中基于flink提供的richfunction接口或者processfunction抽象类自定义创建所述增量消费任务的数据处理中间件,对同步源端数据变更日志信息进行处理。
22.本发明还提供一种基于flink的实时数据同步装置,包括增量同步任务模块和增量消费任务模块,
23.所述增量同步任务模块制定并启动基于flink的增量同步任务,将同步源端数据变更日志实时采集至kafka消息队列,其中基于flink配置增量同步任务的环境,创建所述增量同步任务的source读取端读取并解析同步源端数据变更日志信息,创建所述增量同步任务的sink写入端暂存同步源端数据变更日志信息至kafka消息队列,
24.所述增量消费任务模块制定并启动基于flink的增量消费任务,将kafka消息队列中的同步源端数据变更日志信息实时消费,并写入至同步目标数据端,其中基于flink配置增量消费任务的环境,创建所述增量消费任务的source读取端从kafka消息队列消费同步源端数据变更日志信息,创建所述增量消费任务的sink写入端将同步源端数据变更日志信息流数据写入同步目标数据端。
25.本发明的有益之处是:
26.本发明提供一种基于flink的实时数据同步方法,构建了数据变更日志增量同步-》数据抽取-》数据变更日志增量消费的实时数据同步链路,在能够有效保证同步数据的实时性的同时,能够支持同步过程中的数据处理及异构数据源之间的数据同步,并有效降低恢复同步所需人力及时间成本。
附图说明
27.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据
这些附图获得其他的附图。
28.图1是本发明方法应用流程示意图。
具体实施方式
29.下面结合附图和具体实施例对本发明作进一步说明,以使本领域的技术人员可以更好地理解本发明并能予以实施,但所举实施例不作为对本发明的限定。
30.本发明一种基于flink的实时数据同步方法,制定并启动基于flink的增量同步任务,将同步源端数据变更日志实时采集至kafka消息队列,其中基于flink配置增量同步任务的环境,创建所述增量同步任务的source读取端读取并解析同步源端数据变更日志信息,创建所述增量同步任务的sink写入端暂存同步源端数据变更日志信息至kafka消息队列,
31.制定并启动基于flink的增量消费任务,将kafka消息队列中的同步源端数据变更日志信息实时消费,并写入至同步目标数据端,其中基于flink配置增量消费任务的环境,创建所述增量消费任务的source读取端从kafka消息队列消费同步源端数据变更日志信息,创建所述增量消费任务的sink写入端将同步源端数据变更日志信息流数据写入同步目标数据端。
32.本发明不仅能够有效保证同步数据的实时性,而且能够支持同步过程中的数据处理及异构数据源之间的数据同步,并有效降低恢复同步所需人力及时间成本。
33.具体应用中,在本发明的一些实施例中,进行基于flink进行实时数据同步时,可参考过程如下:
34.制定并启动增量同步任务:
35.增量同步任务指的是基于flink的从同步源端到消息队列(kafka)的数据变更日志采集任务。
36.任务制定包括:基于flink,配置增量同步任务环境,包括配置任务断点恢复策略、断点保存时间间隔、断点保存超时时间等。
37.创建增量同步任务的source读取端,可以基于flink提供的sourcefunction接口自行编写source代码实现source读取端,利用source读取端读取并解析同步源端数据变更日志信息,或者基于flink-cdc快速配置构建数据变更日志读取解析的source读取端;
38.创建增量同步任务的sink写入端,基于flink提供的flinkkafkaproducer实例化增量同步任务的sink写入端(kafka写入端),实现数据变更日志暂存至消息队列,可通过配置kafka消息持久化策略,延长数据变更日志有效期,
39.任务启动过程包括:
40.将以上增量同步任务编码编译打包为可执行jar包,将增量同步任务可执行jar包上传至flink集群并启动运行。
41.可采用flinkx、kettle等工具将需要同步的数据进行一次全量抽取,完成数据全量抽取。
42.制定并启动增量消费任务:增量消费任务指的是基于flink,从消息队列(kafka)消费数据变更日志然后经过数据解析、处理最后写入同步目标端的任务。
43.任务制定过程包括:基于flink,配置增量消费任务环境,包括配置任务断点恢复
策略、断点保存时间间隔、断点保存超时时间等。
44.创建增量消费任务的source读取端,基于flink提供的flinkkafkaconsumer实例化source读取端(kafka消费端),实现从消息队列消费数据变更日志,
45.可根据实际情况基于flink提供的richfunction接口或者processfunction抽象类实现自定义创建flink任务数据处理中间件算子,对同步数据进行中间处理,
46.创建增量消费任务sink写入端,基于flink提供的richsinkfunction抽象类自行编写sink代码实现增量消费任务sink写入端,利用增量消费任务sink写入端将数据变更日志流数据写入同步目标数据源端。
47.任务启动过程包括:
48.将以上增量消费任务编码编译打包为可执行jar包,将增量消费任务可执行jar包上传至flink集群,等待全量数据抽取完成再启动运行增量消费任务。
49.本发明方法构建了数据变更日志增量同步-》全量数据抽取-》数据变更日志增量消费的实时数据同步链路,在能够有效保证同步数据的实时性的同时,能够支持同步过程中的数据处理及异构数据源之间的数据同步,并有效降低恢复同步所需人力及时间成本。
50.本发明还提供一种基于flink的实时数据同步装置,包括增量同步任务模块和增量消费任务模块,
51.所述增量同步任务模块制定并启动基于flink的增量同步任务,将同步源端数据变更日志实时采集至kafka消息队列,其中基于flink配置增量同步任务的环境,创建所述增量同步任务的source读取端读取并解析同步源端数据变更日志信息,创建所述增量同步任务的sink写入端暂存同步源端数据变更日志信息至kafka消息队列,
52.所述增量消费任务模块制定并启动基于flink的增量消费任务,将kafka消息队列中的同步源端数据变更日志信息实时消费,并写入至同步目标数据端,其中基于flink配置增量消费任务的环境,创建所述增量消费任务的source读取端从kafka消息队列消费同步源端数据变更日志信息,创建所述增量消费任务的sink写入端将同步源端数据变更日志信息流数据写入同步目标数据端。
53.上述装置内的各模块之间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。
54.同样地,本发明装置构建了数据变更日志增量同步-》数据抽取-》数据变更日志增量消费的实时数据同步链路,在能够有效保证同步数据的实时性的同时,能够支持同步过程中的数据处理及异构数据源之间的数据同步,并有效降低恢复同步所需人力及时间成本。
55.需要说明的是,上述各流程和各装置中不是所有的步骤和模块都是必须的,可以根据实际的需要忽略某些步骤或模块。各步骤的执行顺序不是固定的,可以根据需要进行调整。上述各实施例中描述的系统结构可以是物理结构,也可以是逻辑结构,即,有些模块可能由同一物理实体实现,或者,有些模块可能分由多个物理实体实现,或者,可以由多个独立设备中的某些部件共同实现。
56.以上所述实施例仅是为充分说明本发明而所举的较佳的实施例,本发明的保护范围不限于此。本技术领域的技术人员在本发明基础上所作的等同替代或变换,均在本发明的保护范围之内。本发明的保护范围以权利要求书为准。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献