【发布时间】:2019-04-17 15:24:45
【问题描述】:
如何确定 KSQL 何时将我的数据从 Kafka 主题完全加载到我的表中?
目标:选取 2 个 Kafka 主题,加入它们并将结果写入一个新的 Kafka 主题。
示例:
我正在使用 Ksql 的 Rest API 发出以下命令。
CREATE TABLE MyTable (A1 VARCHAR, A2 VARCHAR) WITH (kafka_topic='topicA', key='A1', value_format='json');
CREATE STREAM MyStream (B1 varchar, B2 varchar) WITH (kafka_topic='topicB', value_format='json');
CREATE STREAM MyDestination WITH (Kafka_topic='topicC', PARTITIONS = 1, value_format='json') AS SELECT a.A1 as A1, a.A2 as A2, b.B1 as B1, b.B2 as B2 FROM MyStream b left join MyTable a on a.A1 = b.B1;
问题:topicC只有topicB的数据,所有连接的值都是空的。
虽然我从 create table 命令收到了 SUCCESS 状态,但似乎数据还没有完全加载到表中。因此,第三条命令的结果只有流中的数据,不包括表中的数据。如果我在执行 join 命令之前人为延迟,那么生成的主题将正确地包含来自两个主题的数据。如何确定我的表何时加载,执行 join 命令是否安全?
【问题讨论】:
标签: apache-kafka ksqldb