【发布时间】:2019-01-09 11:27:52
【问题描述】:
除了增加分区外,如何在KSQL中加入不相等数量的分区持有流?
示例 Stream-1 有 3 个分区,Stream-2 有 2 个分区。在这种情况下,我们当然可以将 Stream-1 的分区数增加为 3 join。但我想知道,通过 KSQL 加入不相等分区流的任何其他方法?
【问题讨论】:
标签: apache-kafka ksqldb
除了增加分区外,如何在KSQL中加入不相等数量的分区持有流?
示例 Stream-1 有 3 个分区,Stream-2 有 2 个分区。在这种情况下,我们当然可以将 Stream-1 的分区数增加为 3 join。但我想知道,通过 KSQL 加入不相等分区流的任何其他方法?
【问题讨论】:
标签: apache-kafka ksqldb
不,不幸的是,KStream/KSQL 不支持不等分区主题的联接。
先决条件是两个主题在调用join操作之前应该有相同数量的分区,否则会失败。
您可以在此处阅读有关共同分区要求的更多信息: https://docs.confluent.io/current/ksql/docs/developer-guide/partition-data.html#partition-data-to-enable-joins
为确保共同分区,您可以使用 PARTITION_BY 子句创建新流:
CREATE STREAM topic_rekeyed WITH (PARTITIONS=6) AS SELECT * FROM topic PARTITION BY topic_key;
【讨论】: