ksql steam表左连接部分(静默)无法填充值

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

我正在把一条小溪和一张table连接起来。联接的结果仅部分成功。一些值被准确地填充,而另一些值为空。我检查以确保表和流中都存在这些值,并且用于连接的列是这两个值的键。
我使用confluent加载使用jdbc从mssql中的表读取的主题。
然后我使用ksql从相应的主题创建流和表,数据都是json格式的。
表中丢失数据的时间戳比流的时间戳早。

create stream casecode_contract_stream as select ct.projectid, ct.casecode, cs.isTrue from contract_stream cs left join casecode_table ct on cs.projectid = ct.projectid;    

select * from casecode_contract_stream limit 1;
1532034321292 | 706083 | null | null | true

ksql> select * from casecode_contract_stream where casecode is not null limit 1;
1532034321292 | 705147 | 705147 | data1 | true

select * from casecode_table where projectid = 705147;
1532033878462 | 705147 | 705147 | data1 

select * from casecode_table where projectid = 706083;
1532033878463 | 706083 | 706083 | data2 

select * from contract_stream where projectid = 705147;
1532034321292 | 705147 | 705147 | true

select * from contract_stream where projectid = 706083;
1532034321292 | 706083 | 706083 | true

有什么建议吗?

7vux5j2d

7vux5j2d1#

结果取决于(不确定的)处理顺序。这是一个已知的问题,正在进行中,以使处理顺序更具确定性。
在将记录添加到表端之前,可能会处理流端的记录。对于这种情况,当您指定左连接时,流记录将以null连接。

相关问题