是否可以在汇合的ksql查询中使用多个左连接?尝试与多个表连接流,如果没有,那么解决方案是什么?

dddzy1tm  于 2021-06-19  发布在  Kafka
关注(0)|答案(1)|浏览(536)

流:

  1. describe ammas;
  2. Field | Type
  3. -------------------------------------
  4. ROWTIME | BIGINT (system)
  5. ROWKEY | VARCHAR(STRING) (system)
  6. ID | INTEGER
  7. -------------------------------------

对于运行时统计信息和查询详细信息,请运行: DESCRIBE EXTENDED <Stream,Table>; 表-01:

  1. ksql> show tables;
  2. Table Name | Kafka Topic | Format | Windowed
  3. -------------------------------------------------
  4. ANNAT | anna | DELIMITED | false
  5. APPAT | appa | DELIMITED | false
  6. -------------------------------------------------

尝试加入流与表-01的比较工作正常。创建流finalstream作为select a.idammas 左连接 appat ba.id = b.id 哪里 b.idnull .
但当我尝试基于以下查询将多个表与stream连接时:

  1. ksql> SELECT * FROM ammas cd LEFT JOIN appat ab ON ab.id = cd.id LEFT JOIN annat aa ON aa.id =cd.id;
  2. ServerError:io.confluent.ksql.parser.exception.ParseFailedException
  3. Caused by: null

出什么问题了?谢谢。

wfveoks0

wfveoks01#

ksql目前(v5.3)只支持每个语句一个连接操作。如果您想执行多个连接,您必须在多个语句中“菊花链”它们,例如。

  1. CREATE STREAM out1 AS
  2. SELECT * FROM ammas cd
  3. LEFT JOIN appat ab
  4. ON ab.id = cd.id
  5. CREATE STREAM out_final AS
  6. SELECT * FROM out1 o
  7. LEFT JOIN annat aa ON o.id =cd.id;

2020年11月更新:ksqldb v0.9中添加了支持多路连接的ksqldb。confluent platform 6.0包含ksqldb 0.10.2,因此也包含此功能。有关详细信息,请参阅发布日志和文档。

相关问题