KSQL非交互式(无头)模式无法找到流

时间:2018-05-30 03:24:16

标签: apache-kafka confluent ksql

我试图在无头模式下测试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中。 我正在运行4.1.0 CLI verision。

1 个答案:

答案 0 :(得分:1)

在运行STREAM_NAME语句之前,您必须在/tmp/ksql-queries/queries.sql中定义输入流(此处为CREATE TABLE)。

这是因为无头KSQL集群/部署不知道您在其他交互式KSQL集群中定义的流/表。