Можно ли создать таблицу ksql из потока ksql? - PullRequest
0 голосов
/ 05 мая 2018

Я новая пчела в ksql. Я просто играю с темами 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.

Может кто-нибудь объяснить, возможно ли это или нет? Если да, то я не так? Спасибо.

1 Ответ

0 голосов
/ 05 мая 2018

Как говорит Матиас, вам нужно указать (действительный) агрегатный запрос.

Так что это будет работать:

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 всех полей, иначе это не имеет синтаксического смысла.

...