可能会是以下问题导致的:
1、左表的主键没有用作 join key,会导致换 key 之后收不到 -U 消息 (该问题在 vvr 6.0 已经修复,建议升级版本解决),如果是必须使用6.x以下版本建议:
1.1如果左表本身没有更新(-D,+U)就不会影响,如果是这样,建议优化成不用 cdc,以 append 形式消费后按 user_id 去重。
1.2如果左表有更新,则:如果左表 id 和 user_id 一一对应的话,建议 PK 加上 user_id;如果不是的话,需要在 join 前以 user_id 去重(即手动换 key)。
2、右表 DDL 中定义了 proctime 非确定性计算列,这样使得右流的 -U 无法撤回之前的 +I 消息,详情
参见文档。
有以下建议:
2.1右表不要定义 proctime。
2.2如果右表是流水表(即业务含义上主键的最新一条记录就是满足条件的记录),那就按主键排序取最新数据来 join。