问题1:问下各位老师,Flink CDC中OracleSource 的 设置 每次拉取批次大小参数是这样的吗?感觉没生效。我按 debezium 官方有配置项来的,貌似没生效 问题2:那位老师,抽几分钟解答下。OracleSource 是怎么设置限流的,测试中发现数据量太大,把内存打爆了。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
在Flink CDC中,OracleSource
的每次拉取批次大小可以通过 Debezium 提供的相关参数进行配置。根据知识库中的信息,Debezium 支持通过自定义参数来调整 Binlog 拉取的行为。以下是一些关键点和建议:
debezium.*
参数传递自定义配置。例如:
'debezium.snapshot.fetch.size' = '1024'
这个参数用于控制每次从 Oracle 数据库中拉取数据的批次大小。
debezium.snapshot.fetch.size
未生效,您可以尝试调整其他相关参数,例如:
'scan.incremental.snapshot.chunk.size'
:控制增量快照的分块大小,默认值为 8096 行。'debezium.max.batch.size'
:控制每次从数据库中读取的最大事件数。在 Flink CDC 中,OracleSource
的限流功能可以通过多种方式实现,以避免因数据量过大而导致内存不足的问题。以下是详细的解决方案和配置方法:
SET parallelism.source = 2;
'source.rate-limit' = '1000'
这个参数可以限制每秒从 Oracle 数据库中拉取的记录数。
enable_resource_manager
:启用或禁用 Resource Manager,默认值为 on
。total_mem_limit_rate
:限制集群内存使用的百分比,默认值为 95%。mem_release_policy
:指定内存释放策略,例如优先中断空闲进程或活跃进程。taskmanager.memory.process.size: 4g
SELECT * FROM your_table WHERE rownum <= 1000 OFFSET 0;
currentEmitEventTimeLag
:判断数据同步是否延迟。TaskManager Memory Usage
:观察内存使用情况。debezium.snapshot.fetch.size
),并验证其是否生效。如果问题仍未解决,可以尝试调整其他相关参数或升级版本。