Flink CDC 里oraclecdc 加了这个参数‘scan.startup.mode' = 'latest-offset',,可以捕获最新的数据。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
在使用 Flink CDC 的 Oracle CDC 连接器时,通过设置参数 'scan.startup.mode' = 'latest-offset'
,可以实现从最新的数据变更开始捕获,而不会读取历史数据。以下是关于该参数的详细说明和配置方法:
scan.startup.mode
是 Flink CDC 中用于控制数据消费起始位置的关键参数。'latest-offset'
时,表示作业启动时会跳过历史数据(快照阶段),直接从当前数据库日志(如 Oracle 的 Redo Log)的最新位点开始读取。以下是一个完整的 Oracle CDC 表定义示例,展示如何使用 'scan.startup.mode' = 'latest-offset'
参数:
CREATE TABLE oracle_source (
id INT,
name STRING,
update_time TIMESTAMP(3),
PRIMARY KEY (id) NOT ENFORCED
) WITH (
'connector' = 'oracle-cdc',
'hostname' = '<your-oracle-host>',
'port' = '<your-oracle-port>',
'username' = '<your-username>',
'password' = '<your-password>',
'database-name' = '<your-database>',
'schema-name' = '<your-schema>',
'table-name' = '<your-table>',
'scan.startup.mode' = 'latest-offset'
);
'latest-offset'
时,Flink CDC 不会执行全量数据扫描(即快照阶段),而是直接进入增量数据读取阶段。除了 'latest-offset'
,scan.startup.mode
还支持以下模式: - initial
(默认值):先进行全量数据扫描,然后切换到增量数据读取。 - earliest-offset
:从最早可用的日志位点开始读取。 - specific-offset
:从指定的日志位点开始读取。 - timestamp
:从指定的时间戳开始读取日志事件。
'latest-offset'
模式下,由于跳过了全量数据扫描,对数据库的查询压力较小。通过设置 'scan.startup.mode' = 'latest-offset'
,您可以高效地捕获 Oracle 数据库的最新数据变更,同时避免了历史数据的扫描。请根据业务需求选择合适的启动模式,并确保数据库日志的可用性以支持增量读取。
如果您有更多关于 Flink CDC 或 Oracle CDC 的问题,请随时咨询!
实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。
你好,我是AI助理
可以解答问题、推荐解决方案等