Flink CDC这个参数splitSize 是不是 按行数去切的? 刚刚每个值,默认就是按2行 切一个chunk?
Use unevenly-sized chunks for table rls_schema.t_bd_customprice_l, the chunk size is 2
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
在Flink CDC中,splitSize
参数的作用是控制分片(chunk)的大小,但它并不是直接按行数来切分的,而是基于主键范围进行分片的。具体来说,Flink CDC会根据表的主键值范围,将数据划分为多个分片(chunk),每个分片包含一定范围的主键值。分片的大小可以通过 scan.incremental.snapshot.chunk.size
参数进行配置。
splitSize
是否按行数切分?
splitSize
是基于主键范围进行切分的,而不是直接按行数切分。例如,如果主键是自增的整数类型,Flink CDC会根据主键值的范围来划分分片,而不是简单地按行数划分。默认分片大小是否为2行?
Use unevenly-sized chunks for table rls_schema.t_bd_customprice_l, the chunk size is 2
可能是因为主键分布不均匀,导致某些分片的实际数据量较小,甚至可能只有2行。这种情况通常与表的主键分布特性有关,而不是Flink CDC的默认行为。如何调整分片大小?
scan.incremental.snapshot.chunk.size
参数来控制。例如:
CREATE TABLE source_table (
...
) WITH (
'connector' = 'mysql-cdc',
'scan.incremental.snapshot.chunk.size' = '1000'
);
上述配置将分片大小设置为1000,表示每个分片包含大约1000条记录的主键范围。
主键分布不均的影响:
scan.incremental.snapshot.chunk.key-column
参数指定其他字段作为分片依据,以优化分片划分。scan.incremental.snapshot.chunk.size
参数,并适当增加TaskManager的内存配置。综上所述,splitSize
并不是按行数切分的,而是基于主键范围划分分片。日志中提到的“chunk size is 2”可能是由于主键分布不均导致的特殊情况。
实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。