IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> FlinkCDC的2.2.0版本怎么监控库中的所有表,增加新表到已有任务? -> 正文阅读

[大数据]FlinkCDC的2.2.0版本怎么监控库中的所有表,增加新表到已有任务?

FlinkCDC的2.2.0版本怎么监控库中的所有表,增加新表到已有任务?

一、监控全表

? 千呼万唤始出来,之前预告FlinkCDC的2.2.0支持Flink1.14和添加新表,满怀希望!今天一看略显失望,添加新表,不支持动态添加,需要修改tableList之后,从ck中重启,倒是不用重新写新代码了,但是不满足我们目前的需求,失望之一。

二是,api改得有点随意了。

2.0版本监控全表,tableList不设置就行了

        DebeziumSourceFunction<String> mySQLSource = MySqlSource.<String>builder()
                .hostname(parameterTool.get("source1.mysql.jdbc.host"))
                .port(parameterTool.getInt("source1.mysql.jdbc.port"))
                .username(parameterTool.get("source1.mysql.jdbc.username"))
                .password(parameterTool.get("source1.mysql.jdbc.password"))
                .databaseList(parameterTool.get("source1.mysql.jdbc.database"))
                //可选配置,如果不指定该参数,则会读取上一个配置下的所有表数据
                //指定的时候需要使用db.table的方式明确指定
				//.tableList("reported2.epidemic_report_entty")
                .startupOptions(StartupOptions.latest())
                .deserializer(new MyDeseriallizationFun())
                .build();

到了2.2版本源码中MySqlSourceConfig类对tableList做了校验,不能为null

       this.tableList = checkNotNull(tableList);

对于如何监控所有表,文档中也没有说明。

通过尝试发现,传空串是监控全表,这你。。。行吧,api改得有点随意了,也不考虑版本兼容。。。

正确得写法是

       MySqlSource<String> mySqlSource = MySqlSource.<String>builder()
                .hostname(parameterTool.get("source1.mysql.jdbc.host"))
                .port(parameterTool.getInt("source1.mysql.jdbc.port"))
                .databaseList(parameterTool.get("source1.mysql.jdbc.database"))
//                .scanNewlyAddedTableEnabled(true)
                .connectTimeout(Duration.ofSeconds(60))
                //必选配置,空串的时候为监控全表
                //指定的时候需要使用db.table的方式明确指定
//                .tableList("")
                .tableList("")
                .username(parameterTool.get("source1.mysql.jdbc.username"))
                .password(parameterTool.get("source1.mysql.jdbc.password"))
                .startupOptions(StartupOptions.latest())
                .deserializer(new MyDeseriallizationFun())
                .build();

二、增加新表到已有的任务

另外想要加新的表,到已有的任务中,需要设置scanNewlyAddedTableEnabled(true)

1.设置savepoint

$ ./bin/flink stop $Existing_Flink_JOB_ID

Suspending job "cca7bc1061d61cf15238e92312c2fc20" with a savepoint.
Savepoint completed. Path: file:/tmp/flink-savepoints/savepoint-cca7bc-bb1e257f0dab

2.修改tablelist,增加表

 MySqlSource<String> mySqlSource = MySqlSource.<String>builder()
        .hostname("yourHostname")
        .port(yourPort)
        .scanNewlyAddedTableEnabled(true) 
        .databaseList("db") 
        .tableList("db.product, db.user, db.address, db.order, db.custom") // set captured tables [product, user, address ,order, custom]
        .username("yourUsername")
        .password("yourPassword")
        .deserializer(new JsonDebeziumDeserializationSchema()) // converts SourceRecord to JSON String
        .build();
   // your business code

3.从savepoint启动

$ ./bin/flink run \
      --detached \ 
      --fromSavepoint /tmp/flink-savepoints/savepoint-cca7bc-bb1e257f0dab \
      ./FlinkCDCExample.jar
  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-03-30 18:32:03  更:2022-03-30 18:33:26 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 5:53:47-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码