Неинтерактивный (безголовый) режим KSQL не может найти поток - PullRequest
0 голосов
/ 30 мая 2018

Я пытаюсь проверить ksql в режиме без головы.Я добавил запрос Create Table в файл запроса и запустил сервер,

$path-to-ksql/bin/ksql-server-start \
  $path-to-ksql/etc/ksql/ksql-server.properties \
  --queries-file /tmp/ksql-queries/queries.sql \
  >path-to-logdirectory/ksql-server-1_`date '+%Y%m%d_%H_%M_%S'`.log 2>&1 &

Файл запроса имеет следующий запрос.

create table TABLE_NAME  as
  select a, min(b)
  from STREAM_NAME
  WINDOW TUMBLING (size 1 minute)
  group by a;

Однако в журналах я получаю следующее исключение.

Exception in thread "main" io.confluent.ksql.parser.exception.ParseFailedException: Parsing failed on KsqlEngine msg: STREAM_NAME does not exist.
        at io.confluent.ksql.KsqlEngine.parseQueries(KsqlEngine.java:278)
        at io.confluent.ksql.KsqlEngine.createQueries(KsqlEngine.java:593)

Однако, когда я выполняю тот же запрос в интерактивном режиме, он выполняется хорошо.ПРИМЕЧАНИЕ. Поток уже существует в ksql.Я использую версию CLI 4.1.0.

1 Ответ

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

Вы должны определить входной поток (здесь: STREAM_NAME) в вашем /tmp/ksql-queries/queries.sql до выполнения оператора CREATE TABLE.

Это потому, что безголовый кластер / развертывание KSQL не знает о потоках/ таблицы, которые вы определили в другом интерактивном кластере KSQL.

...