6

我是ksql的新手。我只是在玩阅读 kafka 主题到流中,效果很好。

此外,尝试从 kafka 主题创建表并失败。意识到我需要在 kafka 主题中设置一个键,该键被视为 ksql 表中的主键。所以我尝试从流创建表,但也失败了。查询/脚本:

CREATE TABLE DETAILS_TABLE AS SELECT SEQ, Server1, ServerId, NumberUri, SERVERID2, SERVER2 FROM details_stream WINDOW TUMBLING (SIZE 1 MINUTES);
Invalid result type. Your SELECT query produces a STREAM. Please use CREATE STREAM AS SELECT statement instead.

有人可以解释它是否可能吗?如果是,我哪里错了?谢谢。

4

1 回答 1

8

正如 Matthias 所说,您需要指定一个(有效的)聚合查询。

所以这会起作用:

CREATE TABLE DETAILS_TABLE AS \
SELECT SEQ, Server1, ServerId, NumberUri, SERVERID2, SERVER2, COUNT(*) AS TOTAL \
FROM details_stream WINDOW TUMBLING (SIZE 1 MINUTES) \
GROUP BY SEQ, Server1, ServerId, NumberUri, SERVERID2, SERVER2;

就像任何 SQL 方言一样,如果要进行聚合,则必须对GROUP BY 所有字段进行聚合,否则将没有语法意义。

于 2018-05-05T19:24:14.953 回答