Apache kafka 是否可以在汇合的KSQL查询中使用多个左连接?尝试将流与多个表连接,如果没有,那么解决方案是什么?
流:Apache kafka 是否可以在汇合的KSQL查询中使用多个左连接?尝试将流与多个表连接,如果没有,那么解决方案是什么?,apache-kafka,confluent-platform,ksqldb,Apache Kafka,Confluent Platform,Ksqldb,流: describe ammas; Field | Type ------------------------------------- ROWTIME | BIGINT (system) ROWKEY | VARCHAR(STRING) (system) ID | INTEGER -----------------------------
describe ammas;
Field | Type
-------------------------------------
ROWTIME | BIGINT (system)
ROWKEY | VARCHAR(STRING) (system)
ID | INTEGER
-------------------------------------
对于运行时统计信息和查询详细信息,请运行:descripe EXTENDED代码>
表-01:
ksql> show tables;
Table Name | Kafka Topic | Format | Windowed
-------------------------------------------------
ANNAT | anna | DELIMITED | false
APPAT | appa | DELIMITED | false
-------------------------------------------------
与表-01相比,尝试加入流正在按预期工作。
在a.id=b.id
上选择a.id
从ammas
a左连接appat b
创建流最终流,其中b.id
为null
但当我尝试基于以下查询将多个表与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
出什么事了?谢谢。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,因此也包括此功能。有关详细信息,请参阅和。根据我的分析:当前不支持在单个语句中进行多个联接。您可以通过编写多个KSQL语句来完成同样的任务:创建中间流作为SELECT*来自ammas cd LEFT JOIN appat ab ON ab.id=cd.id SELECT*来自中间流cd LEFT JOIN ANAT aa ON aa.id=cd.IDI这在v0.13.0中仍然正确吗?好像…@mjahr我已经更新了我的答案谢谢。无论如何,我走错了方向,似乎有一个连接问题而不是KSQL问题。。。