在使用 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 参数也仅在特定情况下生效。如果您需要获取全量数据,可能需要考虑其他方法,如增加并发流任务、优化查询、使用索引等来提高性能。