Flink SQL左连接将空值插入右表,即使在显示匹配记录后也是如此

tzcvj98z  于 5个月前  发布在  Apache
关注(0)|答案(1)|浏览(61)

我一直在Apache Flink SQL中对流数据进行左连接,即将两个数据流API转换为Flink SQL,但它给出了null,例如:
表1
| ID|部|
| --|--|
| ID 1|部门1|
| ID 2|部门2|
| ID 3|部门3|
| ID 4|部门4|
表2
| ID|员工|
| --|--|
| ID 1|职员1|
| ID 2|员工2|
| ID 1|员工3|
| ID 3|员工4|
我正在对ID进行左连接:left table:table 1 right table:table 2
它的输出为
| ID|部|员工|
| --|--|--|
| ID 1|部门1|职员1|
| ID 2|部门2|员工2|
| ID 1|部门1|员工3|
| ID 3|部门3|员工4|
| ID 1|部门1| null|
n个值的数据
这个flink sql连接的行为不被理解,因为它在将值与右表匹配后为id 1提供null

Table joinResult = streamTableEnv.sqlQuery("SELECT join_source_1.id, join_source_1.dept, join_source_2.employeeName FROM join_source_1 LEFT JOIN join_source_2 ON join_source_1.id = join_source_2.id”);

字符串
期望在记录匹配后在右表中获得非空值
此外,数据是从Kafka流源消耗的
提前谢谢你的帮助

r1zhe5dt

r1zhe5dt1#

我只看到过Kafka在一个太短的保留策略启动并删除了以前可用的数据的情况下产生这样的意外结果。

相关问题