背景
flinkcdc 2.0版本上线了一个新功能–支持动态加表这个是很有用的feature,本文介绍在开发中如何使用。
设想下假如你一个 CDC pipeline 监控了 4 张表,突然有天业务需求需要再加几张表,你肯定不想另起作业 (浪费资源),那么这个
feature 可以让你在当前作业直接增加需要监控的表。新增表都是先做全量再优雅地切换到增量,遇到新增监控表时不用新起作业,极大地节约了资源
flinkcdc 使用 flink-sql 的方式每同步一张表都需要启动一个新的作业,因此不存在同一个作业中 新增表的问题。该feature主要针对 api 的方式。flinkcdc 只能作为 source 用于采集数据,常用的使用方法如下:
private static MySqlSource<String> createMysqlSource(ParameterTool param) {
return MySqlSource.<String>builder()
.hostname(param.get(ConfigConstant.SOURCE_MYSQL_HOST)) // mysql host, 127.0.0.1
.port(param.getInt(ConfigConstant.SOURCE_MYSQL_PORT)) // mysql port, 3306
.username(param.get(ConfigConstant.SOURCE_MYSQL_USERNAME)) // username
.password(param.get(ConfigConstant.SOURCE_MYSQL_PASS)) // pass
.databaseList("aa") //库名
.tableList(

文章介绍了FlinkCDC2.0版本新增的动态加表功能,允许在现有作业中直接添加监控的表,避免资源浪费。通过修改代码启用.scanNewlyAddedTableEnabled(true),并在作业中指定数据库和表名,可以实现新增表的全量和增量同步。如果遇到问题,如未同步新表,可能需确保配置正确,特别是启动选项应设为initial。

4万+

被折叠的 条评论
为什么被折叠?



