3

我在 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');

提前致谢。

4

1 回答 1

6

如果您将主题作为主题阅读,TABLE则主题中的消息必须具有密钥集。如果键是null,记录将被静默删除。KSQLTABLE中的键是主键,null不是主键的有效值。

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

于 2018-03-02T02:51:10.167 回答