flink cdc配置从最早或者最新的地方开始消费数据

495 阅读1分钟

****FlinkCDC1.x版本跳过全量阶段
针对1.x讲解。
cdc默认分两个阶段:全量阶段和增量阶段
全量阶段就会有锁,那么我们也可以跳过锁,去直接进行增量同步binlog变化,这样就避免了锁库的缺陷。

适用于你不需要历史数据,同步最新数据即可的情况。
设置如下参数即可:
```
scan.startup.mode=latest-offset
```
这个参数默认是initial,表示带快照的初始化。
注意一个问题,这2个参数`scan.startup.mode`和`debezium.snapshot.mode`效果是一样的,是互相冲突的,如果你两个参数都设置了,那么`scan.startup.mode`不生效。

例:

   properties.put("snapshot.mode", "schema_only");

   SourceFunction sourceFunction = MySQLSource.builder()
.hostname("localhost")
.port(3306)
.tableList("test.table1")
.username("user")
.password("password")
.debeziumProperties(properties)
.deserializer(debeziumDeserializationSchema) // converts SourceRecord to String
.build();

更多配置可以参考debezium官网

debezium.io/documentati…