Flink CDC中oracle cdc 启动一直在输出抓取表结构,不是我想要schema的也抓,都十几分钟了也没有要停的意思,这个能跳过吗?
Flink CDC 中的 Oracle CDC 模块在启动时会自动获取所有需要同步的表的元数据信息,包括表名、列名、数据类型等等。这个过程需要与数据库进行交互,并且需要一定的时间。因此,在启动 Oracle CDC 模块时,会输出一些抓取表结构的日志信息,这是正常的行为,不需要过多关注。
如果你发现 Oracle CDC 抓取了一些不需要同步的表的元数据信息,可能是因为你在配置 Oracle CDC 时指定了不正确的表过滤条件。在 Flink CDC 中,可以通过 table.whitelist 和 table.blacklist 参数来指定需要同步的表或者不需要同步的表。如果指定的表过滤条件不正确,可能会导致 Oracle CDC 抓取了一些不需要同步的表的元数据信息。因此,在配置 Oracle CDC 时,需要确保表过滤条件的正确性和完整性。
这里提供一些常用的表过滤条件的示例:
table.whitelist: 只同步指定的表,其他表不同步。例如:
Copy
table.whitelist = mydb.mytable1,mydb.mytable2
table.blacklist: 同步除指定的表以外的所有表。例如:
Copy
table.blacklist = mydb.mytable3,mydb.mytable4
需要注意的是,表过滤条件中的数据库名称和表名称需要使用点号(.)分隔。如果表名中包含了特殊字符,需要使用反引号(``)将表名括起来。例如:
Copy
table.whitelist = mydb.mytable-with-special-characters
另外,如果你想要查看 Oracle CDC 抓取表结构的日志信息,可以将日志级别设置为 DEBUG。在 Flink CDC 中,可以通过设置 --log.level 参数来指定日志级别。例如:
Copy
./bin/flink run --log.level DEBUG
其中, 表示其它的启动
根据您的描述,当使用 Flink CDC 进行 Oracle CDC 同步时,启动过程中一直在输出抓取表结构,并且包括了您不想要的 schema。如果您希望跳过这个过程,可以尝试以下方法:
1. 使用 table.include
参数:在 Flink CDC 的配置中,可以使用 table.include
参数来指定需要同步的表。通过设置该参数,只会抓取并同步您明确指定的表,而忽略其他表的结构信息。例如:
properties table.include = my_schema.my_table
上述示例中,只会抓取和同步名为 my_table
的表,忽略其他表的结构信息。
2. 使用 catalog.pattern
参数:如果您的 Oracle 数据库中有多个 schema,您可以使用 catalog.pattern
参数来进行模式匹配,仅抓取特定模式下的表结构。例如:
properties catalog.pattern = my_schema%
上述示例中,只会抓取和同步以 my_schema
开头的模式下的表结构,其他模式下的表将被忽略。
请注意,以上方法需要根据您具体的场景和需求进行调整。确保正确配置了 Flink CDC 的相关参数后,重新启动任务,应该就能跳过抓取您不想要的表结构信息。
同时,我注意到您提到了一个相关的 GitHub Issue 和 Apache JIRA,可能与您遇到的问题相关。建议您参考这些资源中的讨论和解决方案,以获取更多帮助和指导。
https://github.com/ververica/flink-cdc-connectors/issues/2263, 可以看下我在issue的回复,这个问题找到了一样的问题,https://issues.apache.org/jira/browse/FLINK-17444,此回答整理自钉群“Flink CDC 社区”
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。