我试图在无头模式下测试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版本。
1条答案
按热度按时间omjgkv6w1#
必须定义输入流(此处:
STREAM_NAME
)在你的/tmp/ksql-queries/queries.sql
在运行CREATE TABLE
声明。这是因为无头ksql集群/部署不知道您在另一个交互式ksql集群中定义的流/表。