ink CDC 中在获取mysql 表数据的时候,如果多张表 join 时全量获取数据还是 一批 一批获取数据? 设置debezium.min.row.count.to.stream.results 在Join能生效吗?
Flink CDC 中在获取mysql 表数据的时候,如果多张表 join 时全量获取数据吗?[阿里云]
「点点赞赏,手留余香」
还没有人赞赏,快来当第一个赞赏的人吧!
ink CDC 中在获取mysql 表数据的时候,如果多张表 join 时全量获取数据还是 一批 一批获取数据? 设置debezium.min.row.count.to.stream.results 在Join能生效吗?
在使用 Ink CDC 获取 MySQL 表数据时,当多个表进行 JOIN 操作时,默认情况下是一批一批获取数据的,而不是全量获取。
通过设置
debezium.min.row.count.to.stream.results
参数可以控制在 JOIN 操作中批次数据返回的最小行数。该参数用于优化流式传输结果的性能,仅在结果集达到指定行数时才会发送给消费者。这意味着如果 JOIN 查询的结果集行数未达到debezium.min.row.count.to.stream.results
的值,那么结果将会被缓存起来,直到达到或超过该值后再发送给消费者。需要注意的是,
debezium.min.row.count.to.stream.results
参数对 JOIN 操作的影响有限。它更适用于单表查询或简单的 SELECT 查询,而对于复杂的 JOIN 查询可能不会产生明显的效果。这是因为 JOIN 操作通常涉及多个表,数据量较大,且需要进行数据匹配和整合,无法通过调整该参数来完全避免全量获取数据的需求。综上所述,在多张表进行 JOIN 操作时,Ink CDC 默认是一批一批获取数据,并且设置
debezium.min.row.count.to.stream.results
参数也仅在特定情况下生效。如果您需要获取全量数据,可能需要考虑其他方法,如增加并发流任务、优化查询、使用索引等来提高性能。