学生
student_id name
11 foo

学科分数
id name score std_id
100 math 97 11
101 english 98 11

有如下一个场景(假设只有一个学生)

基于binlog检测这2个表的变化, 计算这个学生的总分数, 使用了Table/SQL API join操作计算

假设insert以上数据后到达某时刻, 以上数据都进入了flink, 计算出这个学生总分数 97 + 98 = 195

但此时发现学生姓名登记错误, 于是进行了修改,
结果此时Flink中学生流中有2个事件(insert的一个+update的一个), 分数流中有2个事件, 计算的总分数就会是 2 * (97 +
98) = 390

Q: 请问这种场景下使用什么能够解决, 计算出正确的结果 97 + 98 = 193

接触flink不久, 不是太了解, 请大佬给个提示, 谢谢!!

回复