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

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

流:

describe ammas;

 Field   | Type                        
-------------------------------------  
 ROWTIME | BIGINT           (system)  
 ROWKEY  | VARCHAR(STRING)  (system)   
 ID      | INTEGER                      
 -------------------------------------

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

ksql> show tables;

Table Name | Kafka Topic | Format    | Windowed 
-------------------------------------------------
ANNAT      | anna        | DELIMITED | false    
APPAT      | appa        | DELIMITED | false    
-------------------------------------------------

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

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

出什么问题了?谢谢。

wfveoks0

wfveoks01#

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

CREATE STREAM out1 AS 
  SELECT * FROM ammas cd 
           LEFT JOIN appat ab 
             ON ab.id = cd.id 

CREATE STREAM out_final AS 
  SELECT * FROM out1 o 
           LEFT JOIN annat aa ON o.id =cd.id;

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

相关问题