Flink CDC tableList写的正则表达式,任务启动后如果有新增的表符合正则flinkcdc能动态采集到吗?
话说你们写回答的能不能用点心,最起码自己试过了再来回答把。
你们的回答我都试了, 正则表达式没有一个是正确的。
亲测如下正则表达式可用:
source:
type: mysql
hostname: 192.168.1.92
port: 3306
username: root
password: xxx
tables: test_ar_sync_sr.\.*
server-id: 5400-5404
server-time-zone: Asia/Shanghai
sink:
type: starrocks
name: StarRocks Sink
jdbc-url: jdbc:mysql://192.168.1.82:9030
load-url: 192.168.1.82:8030
username: root
password: ""
table.create.properties.replication_num: 1
pipeline:
name: Sync MySQL Database to StarRocks
parallelism: 2
至于题主说的任务已经启动,而后修改job config 是否会按照新得配置加载任务, 没有尝试过。
在 Flink CDC 中,tableList
参数用于指定需要采集的表名列表。你可以在 tableList
中使用正则表达式来匹配符合条件的表名。
Flink CDC 支持使用正则表达式来动态采集表,只要正则表达式能够准确地匹配到符合条件的表名即可。这使得你可以根据特定的命名规则或模式来选择需要采集的表。
以下是一个示例,展示了如何在 tableList
中使用正则表达式进行动态采集:
cdc.source.table-list = my_database.my_table_.*
上述示例中,my_database.my_table_.*
是一个正则表达式,它将匹配以 my_table_
开头的所有表名。
请确保你的正则表达式能够正确匹配到你希望采集的表名,并检查 Flink CDC 的配置是否正确地将该正则表达式应用到了 tableList
参数。
需要注意的是,正则表达式的性能可能与表名数量和复杂度相关。如果需要采集大量的表,或者正则表达式非常复杂,可能会对 CDC 任务的性能产生一定的影响。因此,在设计正则表达式时,请尽量考虑性能和效率方面的问题。
在 Flink CDC 中,可以使用正则表达式来指定需要抽取的表。这有助于在有大量表的情况下,快速筛选需要抽取的表,提高任务的性能。
Flink CDC 支持使用 Java 正则表达式来匹配表名。您可以在 tableList 配置项中使用正则表达式来指定需要抽取的表。例如,假设您有以下三张表:
Copy
db1.table1
db1.table2
db2.table3
如果您只想抽取 db1 数据库下的所有表,可以使用以下正则表达式:
Copy
db1..*
这个正则表达式将匹配 db1 数据库下的所有表,包括 db1.table1 和 db1.table2。
需要注意的是,Flink CDC 中使用的是 Java 正则表达式,因此需要符合 Java 正则表达
Flink CDC 的 tableList 可以写正则表达式,以便动态采集符合正则表达式的表。但是,如果添加了新表,需要修改 tableList 之后从 checkpoint 中重启 Flink 作业才能生效 。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。