Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/apache-kafka/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache kafka 是否可以在汇合的KSQL查询中使用多个左连接?尝试将流与多个表连接,如果没有,那么解决方案是什么?_Apache Kafka_Confluent Platform_Ksqldb - Fatal编程技术网

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问题。。。