哈希数据交换如何与 Flink Tables 一起工作?
How does the hash data exchange works with Flink Tables?
我有两个 Table 源使用 Flink 收听 Kafka 主题。在生成的图上,这两个表之间连接的数据交换是“散列”。但是,我没有找到任何有关哈希如何工作(在特定字段上?)以及如何配置它的信息?
在 Table 联接的情况下,哈希数据交换基于联接的相等子句。例如,如果您正在做
SELECT *
FROM A, B
WHERE A.id = B.id
然后来自两个流的流记录将在 id 字段上进行哈希处理。这将保证来自 A 和 B 的具有相同 id
值的所有记录将被发送到相同的下游实例。 (这就是为什么 Flink 只支持带有相等谓词的连接——它们更容易扩展。)
在内部这变成了来自 Flink 的 DataStream API 的 keyBy
。 Table/SQL GROUP BY
的工作方式相同。
我有两个 Table 源使用 Flink 收听 Kafka 主题。在生成的图上,这两个表之间连接的数据交换是“散列”。但是,我没有找到任何有关哈希如何工作(在特定字段上?)以及如何配置它的信息?
在 Table 联接的情况下,哈希数据交换基于联接的相等子句。例如,如果您正在做
SELECT *
FROM A, B
WHERE A.id = B.id
然后来自两个流的流记录将在 id 字段上进行哈希处理。这将保证来自 A 和 B 的具有相同 id
值的所有记录将被发送到相同的下游实例。 (这就是为什么 Flink 只支持带有相等谓词的连接——它们更容易扩展。)
在内部这变成了来自 Flink 的 DataStream API 的 keyBy
。 Table/SQL GROUP BY
的工作方式相同。