业务情况: 源:kafka topic1 中间过滤表:sn表
输出:kafka topic2
'connector' = 'upsert-kafka',
insert into topic2
select * from topic1
where topic1中的SN 不在sn表中。
验证:
数据能过滤。 但是过滤数据插入后, 又把所有数据存储到 topic2中了?
但是不使用回撤流,又不能使用not in 。有什么破解方案?
在实时计算中,使用 `NOT IN` 可能会导致性能问题,因为它需要扫描整个表或子查询结果。为了避免这种情况,您可以使用 `LEFT JOIN` 和 `IS NULL` 来实现类似的效果。以下是一个示例: ```sql INSERT INTO topic2 SELECT t1.* FROM topic1 t1 LEFT JOIN sn_table sn ON t1.SN = sn.SN WHERE sn.SN IS NULL; ``` 这个查询将 `topic1` 和 `sn_table` 进行左连接,只保留 `topic1` 中 `SN` 不在 `sn_table` 中的记录。通过使用 `LEFT JOIN` 和 `IS NULL`,您可以避免使用 `NOT IN`,从而提高查询性能。 以上为腾讯混元大模型提供,仅提供参考价值. ---杨不易呀自动回复