基于Flink实现postgreSQL到HIVE的数据同步方法技术

技术编号:38205760 阅读:20 留言:0更新日期:2023-07-21 16:52
本发明专利技术适用于大数据实时数据流处理技术领域,提供一种基于Flink实现postgreSQL到HIVE的数据同步方法,包括:对postgreSQL开启WAL权限,建立Flink Job,并在源端配置并监听WAL日志信息;对WAL日志信息进行解析,按照增删改分类并转换为对象数据;把对象数据发送给目标端;目标端接收数据并写入HDFS分布式文件系统中。本发明专利技术能通过HDFS分布式文件系统上传数据提高数据的写入能力,支持多个HIVE数据库表的同时写入操作,保证对流式数据处理的低延迟、高性能,通过Flink的checkpoint机制实现数据的断点续传,以高效的实现postgreSQL实时数据到HIVE库的实时同步功能。据到HIVE库的实时同步功能。据到HIVE库的实时同步功能。

【技术实现步骤摘要】
基于Flink实现postgreSQL到HIVE的数据同步方法


[0001]本专利技术属于大数据实时数据流处理
,尤其涉及一种基于Flink实现postgreSQL到HIVE的数据同步方法。

技术介绍

[0002]目前对postgreSQL到HIVE(Hive是基于Hadoop的一个数据仓库工具)库的数据同步存在以下问题:由于postgreSQL库类似于mysql库,通过解析事务日志,实时采集动态的增量日志,目前无法实时采集修改、删除操作的数据到HIVE数据源;传统的把数据写入HIVE库的方式是通过JDBC(Java Database Connectivity,Java数据库连接)的方式将数据写入到对应的目标表中,在高并发大数据量的情况下,无法保证数据的吞吐量和数据的完整性,可能存在数据丢失的情形;HIVE数据库对数据的删除和修改操作的支持不友好,数据传输的效率低,延迟高;postgreSQL的WAL(write ahead log,预写式日志)记录了数据库中所有表的增量日志,当采集数据到HIVE库的任务中断时,无法保证下次任务重启时,对数据的续传;对WAL的流式数据同步时,无法保证数据同步的高效性。

技术实现思路

[0003]鉴于上述问题,本专利技术的目的在于提供一种基于Flink实现postgreSQL到HIVE的数据同步方法,旨在解决现有方法可能存在数据丢失、数据传输效率低延迟高以及数据中断后无法续传的技术问题。
[0004]本专利技术采用如下技术方案:一种基于Flink实现postgreSQL到HIVE的数据同步方法包括下述步骤:步骤S1、对postgreSQL开启WAL权限,建立Flink Job,并在Flink Job源端,配置并监听WAL日志信息;步骤S2、在所述Flink Job源端,对所述WAL日志信息进行解析,把WAL日志信息按照增删改分类并转换为对象数据;步骤S3、把所述对象数据发送给Flink Job目标端;步骤S4、所述Flink Job目标端接收数据,并写入HDFS分布式文件系统中。
[0005]进一步的,所述步骤S1具体过程如下:S101、更改postgreSQL对应WAL权限的配置,使得postgreSQL支持事务日志的记录;S102、建立Flink Job,对所述Flink Job建立集成Flink的读数据组件,重写Flink对应接收源端数据的接口;S103、在所述读数据组件中,监听postgreSQL的WAL日志信息,并将相应的监听配置信息记录在脚本文件。
[0006]进一步的,上述步骤S102中,建立Flink Job后,在初始化阶段通过所述Flink Job的CheckPoint功能获取上一次数据采集时保存的偏移量信息,修正述WAL日志订阅的位置。
[0007]进一步的,上述步骤S102中,读数据组件还通过所述Flink Job的CheckPoint记录对所述WAL日志信息进行解析时的日志消费的偏移量。
[0008]进一步的,所述步骤S2的具体过程如下:S201、在所述读数据组件中,监听得到的WAL日志信息,记录的是操作数据的事务日志,包括新增、修改、删除数据操作,按照操作的类型分类处理;S202、对于新增的数据,转换为对象数据,在对象数据中添加type属性,并赋值为insert;S203、对于修改的数据,解析得到修改后的数据,并将其转换为对象数据,在对象数据中添加type属性,并赋值为update;S204、对于删除的数据,解析得到修改后的数据,并将其转换为对象数据,在对象数据中添加type属性,并赋值为delete。
[0009]进一步的,所述步骤S3的具体过程如下:S301、建立集成Flink的写数据组件,重写Flink写数据的接口;S302、在读数据组件中,将处理后的对象数据以json格式发送给写数据组件;S303、读数据组件持续监听数据源的WAL日志信息。
[0010]进一步的,所述步骤S4的具体过程如下:S401、写数据组件接收到对象数据后,根据数据结构和数据源表信息,在HDFS分布式文件系统中建立HIVE数据分区表,并记录分区表在HDFS中的存储路径;S402、建立HIVE数据分区表后,写数据组件根据HDFS分布式文件系统的存储路径,将数据写入到该存储路径;S403、写数据组件,持续监听读数据组件。
[0011]进一步的,上述步骤S402中,通过所述Flink Job中开启CheckPoint后,写数据组件按照存储路径HIVE库写入时使用二阶段提交,预提交阶段时将.data目录中生成的数据文件复制到正式目录中并标记复制的数据文件,提交阶段时删除.data目录中标记的数据文件,回滚时删除正式目录中标记的数据文件。
[0012]本专利技术的有益效果是:首先,本专利技术基于Flink流数据计算框架,对流式数据的高效处理,保证数据的低延迟,实现数据的一致性;其次,本专利技术通过 实时采集postgreSQL库的WAL日志信息并解析,按照增删改分类管理日志信息,为后续写数据提供便利;第三,由于HIVE库对修改和删除数据的支持性不高,本专利技术通过在对数据对象加入状态类型字段,区分数据的操作类型,以实现修改、删除数据的写入HIVE库。
附图说明
[0013]图1是本专利技术实施例提供的基于Flink实现postgreSQL到HIVE的数据同步方法的流程图;图2是本专利技术实施例提供的步骤S2的流程示意图;图3是本专利技术实施例提供的步骤S4的流程示意图。
具体实施方式
[0014]为了使本专利技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本专利技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本专利技术,并不用于限定本专利技术。
[0015]为了说明本专利技术所述的技术方案,下面通过具体实施例来进行说明。
[0016]如图1所示,本实施例提供的基于Flink实现postgreSQL到HIVE的数据同步方法,包括下述步骤:步骤S1、对postgreSQL开启WAL权限,建立Flink Job,并在Flink Job源端,配置并监听WAL日志信息。
[0017]所述步骤S1具体过程如下:S101、更改postgreSQL对应WAL权限的配置,使得postgreSQL支持事务日志的记录。
[0018]在同步postgreSQL库的数据时,通过更改WAL权限的配置开启WAL日志,具体操作如下:1)修改wal_level参数,设置等级为replica;2)修改archive_mode参数,设置为on;3)修改archive_command 参数,设置为

/bin/cp
ꢀ‑
i %p /pgdata/10/archive_wal/%f

;4)修改完配置后,重启postgreSQL库。
[0019]S102、建立Flink Job,对所述Flink Job建立集成Flink的读数据组件,重写Flink对应接收源端数据的接口。本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于Flink实现postgreSQL到HIVE的数据同步方法,其特征在于,所述数据同步方法包括下述步骤:步骤S1、对postgreSQL开启WAL权限,建立Flink Job,并在Flink Job源端,配置并监听WAL日志信息;步骤S2、在所述Flink Job源端,对所述WAL日志信息进行解析,把WAL日志信息按照增删改分类并转换为对象数据;步骤S3、把所述对象数据发送给Flink Job目标端;步骤S4、所述Flink Job目标端接收数据,并写入HDFS分布式文件系统中。2.如权利要求1所述基于Flink实现postgreSQL到HIVE的数据同步方法,其特征在于,所述步骤S1具体过程如下:S101、更改postgreSQL对应WAL权限的配置,使得postgreSQL支持事务日志的记录;S102、建立Flink Job,对所述Flink Job建立集成Flink的读数据组件,重写Flink对应接收源端数据的接口;S103、在所述读数据组件中,监听postgreSQL的WAL日志信息,并将相应的监听配置信息记录在脚本文件。3.如权利要求2所述基于Flink实现postgreSQL到HIVE的数据同步方法,其特征在于,上述步骤S102中,建立Flink Job后,在初始化阶段通过所述Flink Job的CheckPoint功能获取上一次数据采集时保存的偏移量信息,修正述WAL日志订阅的位置。4.如权利要求3所述基于Flink实现postgreSQL到HIVE的数据同步方法,其特征在于,上述步骤S102中,读数据组件还通过所述Flink Job的CheckPoint记录对所述WAL日志信息进行解析时的日志消费的偏移量。5.如权利要求4所述基于Flink实现postgreSQL到HIVE的数据同步方法,其特征在于,所述步骤S2的具体过程如下:S201、在所述读数据组件中,...

【专利技术属性】
技术研发人员:许雷杨志祥郭朝霞刘鑫谢倩皮辉杨小涛夏璐蔡烨彬
申请(专利权)人:中船重工武汉凌久高科有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1