背景
主要测试梳理一下flinkx的基本使用,以及一些场景的特性
flinkx基本使用
- 使用前准备:在windows环境下载源码git clone https://github.com/liukunyuan/flinkx.git ,执行lib目录下的install_jars.bat,用于下载maven仓库没有的依赖包。接着执行打包命令,maven:
mvn clean package -Dmaven.test.skip=true
。gradle:gradle assembleDebug
。将flinkx上传到linux的服务器上。上述操作也可直接在linux中执行。 - 配置:在conf/flink-conf.yaml中添加rest.bind-port: 8888
- 编写同步任务:一个简单的任务示例
- 运行任务:
nohup [flinkx安装目录]/flinkx/bin/flinkx -mode local \
-job [同步任务所在目录]/xxx.json \
-pluginRoot [flinkx安装目录]/plugins \
-flinkconf [flinkx安装目录]/flinkconf/ \
-confProp "{\"flink.checkpoint.interval\":60000}" > log.txt 2>&1 &
- web界面:http://ip:8888/
flinkx特性
-
自动创建目标表: 执行同步任务后,当配置的目标表不存在时进行自动创建。flinkx目前仅hive支持自动创建目标表,其他数据源不支持。
-
增量采集: 实现增量采集的前提需要有一个递增的字段,并且这个字段必须声明在reader的column中。可以选择主键id或者按照时间等递增的字段。实现增量采集的配置很简单,在同步任务的reader中通过increColumn执行增量采集的字段,通过startLocation指定开始采集的位置,若不指定startLocation则为全量采集。
-
CDC增量采集: flinkx支持CDC增量采集,只同步据上一次采集之后源表发生变化的数据。实现CDC增量采集首先需要配置setting中restore.isStream为true来开启实时同步,还需要在reader中通过cat指定数据发生变化的类型(DELETE,INSERT,UPDATE)。值得注意的是mysql通过binlog插件实现CDC增量采集时是支持监听并采集多表的。
<