我试图在表和流之间执行连接,但由于某些原因,它不起作用。
ksql> SELECT GROUP_TABLE.SOCIETY_ID, GROUP_TABLE.ID FROM GROUP_TABLE;
1 | 2
^CQuery terminated
ksql> SELECT DEVICE_STREAM.GROUP_ID FROM DEVICE_STREAM
2
^CQuery terminated
ksql> SELECT GROUP_TABLE.SOCIETY_ID FROM DEVICE_STREAM LEFT JOIN GROUP_TABLE ON DEVICE_STREAM.GROUP_ID = GROUP_TABLE.ID;
null
我期望的是1而不是空值。groupu表是通过postgresjdbc连接器从同步到kafka的主题创建的。
以上行为适用于现有数据。如果我碰巧在postgres中输入了新数据,join语句将返回正确的值
1条答案
按热度按时间djmepvbi1#
很可能是数据上的时间戳。流表联接比传统的sql联接更像是一种查找/扩充。ksqldb尽力按时间顺序处理数据。如果
DEVICE_STREAM
是在GROUP_TABLE
行,则ksqldb不会加入数据,因为该行在表中还不存在。