KSQL表没有显示数据但是具有相同结构的Stream返回数据

时间:2018-03-01 19:14:23

标签: apache-kafka ksql

我在KSQL中创建了一个表,同时查询它没有返回任何数据。然后我在同一主题上创建了一个具有相同结构的流,我可以查询数据。

我在这里缺少什么。我需要这个作为加入流的表。

CREATE TABLE users_table \
(registertime bigint, userid varchar, regionid varchar, gender varchar) \
WITH (value_format='json', kafka_topic='users_topic',key='userid');

CREATE STREAM users_stream \
(registertime bigint, userid varchar, regionid varchar, gender varchar) \
 WITH (value_format='json', kafka_topic='users_topic');

提前致谢。

1 个答案:

答案 0 :(得分:4)

如果您将主题读作TABLE,则主题中的消息必须具有密钥集。如果密钥为null,则会以静默方式删除记录。 KSQL中的密钥TABLE是主键,null对于主键没有有效值。

此外,键属性的消息中的值必须与键相同(注意,架构本身是根据消息的值定义的)。例如,如果您有一个架构<A,B,C>并且将A设置为关键字,则主题中的消息必须为<key,value> == <a,<a,b,c>>。否则,您将得到不正确的结果。