是否可以从 ksql 流创建 ksql 表? [英] Is it possible to create ksql table from ksql stream?

查看:28
本文介绍了是否可以从 ksql 流创建 ksql 表?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我是 ksql 的新手.我只是将 kafka 主题读到流中,效果很好.

I'm a new bee to ksql. I'm just playing with read kafka topics to streams and it works great.

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

Also, trying to create a table from kafka topic and failed. Realized that I need to have a key set in kafka topic which is considered as primary key in ksql table. So I tried creating table from stream instead, but failed too. Query/Script:

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.

有人可以解释一下是否可能吗?如果是,我哪里出错了?谢谢.

Can someone explain if its possible or not? If yes, wher am I going wrong? Thanks.

推荐答案

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

As Matthias says, you need to specify a (valid) aggregate query.

所以这行得通:

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 所有 字段,否则没有语法意义.

Just as any SQL dialect, if you are doing an aggregation, you have to GROUP BY all of the fields, otherwise it makes no syntactical sense.

这篇关于是否可以从 ksql 流创建 ksql 表?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆