Flink CDC在处理Incremental Snapshot PG数据库时,默认按主键第一个column来划分chunk。如果遇到一张大表,主键是多个字段组成的,按第一个主键的column划分出现了数据倾斜的问题,可以尝试以下方法解决:
- 调整
scan.incremental.snapshot.chunk.size
参数,增加每个chunk的大小,以便容纳更多的数据。 - 使用
scan.incremental.snapshot.chunk.key-column
配置指定某个表按配置的pk组合键来划分chunk。例如,如果你想要按fdbid
和BIGINT NOT NULL
两个字段的组合键划分chunk,可以这样配置:
flink-cdc:
source:
connector:
type: ... # 您的数据源连接器类型
...
properties:
scan.incremental.snapshot.chunk.size: 8096
scan.incremental.snapshot.chunk.key-column: "fdbid, BIGINT NOT NULL"
- 如果上述方法仍然无法解决问题,可以考虑对数据进行预处理,将多字段的主键拆分成多个列,然后根据这些列的值进行分区。这样可以避免数据倾斜问题。