是否可以在Confluent KSQL查询中使用多个左联接?尝试使用1个以上的表连接流,如果没有,解决方案是什么



流:

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,从ammas中选择a.id,左加入a.id = b.id上的appat b,其中b.idnull

但当我尝试基于以下查询将多个表与流连接时:

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

出了什么问题?谢谢

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,因此也包含此功能。有关详细信息,请参阅发布博客和文档

在实际版本中支持具有流和表的多个联接(目前我正在编写Confluent Platform 7.x(

请参阅此文档https://developer.confluent.io/tutorials/multi-joins/ksql.html

示例中有1个流和2个表目前我不知道它是否支持3个或更多的表

重要的是,与右侧的连接必须使用其主键

最新更新