我在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');
提前致谢。
答案 0 :(得分:4)
如果您将主题读作TABLE
,则主题中的消息必须具有密钥集。如果密钥为null
,则会以静默方式删除记录。 KSQL中的密钥TABLE
是主键,null
对于主键没有有效值。
此外,键属性的消息中的值必须与键相同(注意,架构本身是根据消息的值定义的)。例如,如果您有一个架构<A,B,C>
并且将A
设置为关键字,则主题中的消息必须为<key,value> == <a,<a,b,c>>
。否则,您将得到不正确的结果。