一、RDB 模块介绍与演示
针对关系型数据库,FlinkX-RDB 封装了基于 JDBC 标准的查问与插入等公共操作,各个数据源可通过继承 FlinkX-RDB 模块实现各自逻辑,目前已反对绝大部分市面上的 RDB 数据源:
MySQL
Oracle
SqlServer
PostgreSQL
Db2
DM
Gbase
ClickHouse
SAPHANA
Teradata
Greeplum
二、脏数据原理与演示
数据同步过程中,呈现主键为空,主键抵触等脏数据导致插入失败时,依据工作配置抉择记录脏数据并继续执行后续数据插入或者间接结束任务。生产环境会依据脏数据管理模块对脏数据进行治理,存储到文件系统里,在工作完结后,能够在对应门路下查看,目前只反对 Hadoop 文件系统存储。
三、多通道原理与演示
其本质是通过 Flink 的并行度进行多线程并发读写以及数据库函数的 mod()办法划分数据,使得数据不会反复读取。开启多通道的参数如下:
reader 插件 parammeter 里配置 splitPk 切割键
setting.speed 里配置 channel 通道数量
四、自定义 sql 应用
FlinkX 通过 where 条件拼接来进行自定义过滤,自定义过滤条件依然是对 table 进行数据过滤,而自定义 sql 则是用户通过 customSql 指定 sql,将其作为子查问,其后果作为长期表进行同步。
五、增量同步
表里的数据每天都在减少只须要同步增量的数据即可。指定增量字段来结构 sql 的 where 条件语句查问增量的数据,并将最初一条数据的增量字段值存到 prometheus 中,作为下次工作的增量字段起始值,达到增量数据的每日同步。只有 RDB 类型的 reader 插件反对增量同步并且增量字段只能为数值类型或者工夫类型。
六、断点续传
断点续传应用场景是在须要资源较多的工作中,如果呈现同步失败,从新同步会消耗大量资源,因而须要在同步失败的中央开始从新同步,缩小资源的占用。断点续传次要通过 Flink 的 Check Point 机制存储工作运行时的状态以及地位信息并在 CheckPoint 时进行事务的提交,防止数据反复插入,这样在工作失败的时候,从 Check Point 处进行复原运行即可。
七、距离轮询
距离轮询场景是在表里的数据不停的插入而不做其余操作,其原理依据配置的增量标识字段去轮询数据库获取数据,如果获取到数据则更新增量标识字段的值,相当于一个无界流,增量标识字段的类型必须是数值类型或者工夫类型。
本文首发于:数栈研习社
数栈是云原生—站式数据中台 PaaS,咱们在 github 上有一个乏味的开源我的项目:FlinkX,FlinkX 是一个基于 Flink 的批流对立的数据同步工具,既能够采集动态的数据,比方 MySQL,HDFS 等,也能够采集实时变动的数据,比方 MySQL binlog,Kafka 等,是全域、异构、批流一体的数据同步引擎,大家如果有趣味,欢送来 github 社区找咱们玩~