【发布时间】:2022-02-04 18:31:10
【问题描述】:
我有一个 kafka 队列,其中多个 cdc 事件来自数据库。 假设以下三个表实现了学生-课程 n:n 关联:
STUDENT
COURSE
STUDENT_COURSE
我可以有以下“业务”事件:
- 一个新学生注册了一个课程:在这种情况下,我会在我的 kafka 队列中收到 3 个事件,这些事件可以按任何顺序出现,但我想发出一个“业务”事件喜欢这个:
{type:"enroll", "student": {"name": "Jhon", "age": "..}, "course": {"name":"physics", "teacher":"Foo", ...} - 一名学生改变了他们的课程:在这种情况下,我只会在我的 kafka 队列中收到 1 个事件(在 STUDENT_COURSE 上),并且我会发起一个像这样的“商业”事件:
{"type": "change", "student": {"name": "Jhon", "age": "..}, "newcourse": {"name":"maths", "teacher":"Foo", ...} - 学生信息(例如电子邮件、电话、...)或课程信息(时间、教师...)的更新在任一表上都有 1 个事件
我的问题是我不知道如何存储和关联所说的 CDC 以一起制作业务事件,实际上我需要做这样的事情:
- 接收事件并将其存储在“不确定”状态,等待一段合理的时间,比如 10 秒
- 如果收到另一张桌子上的事件,那么我就是第 1 种情况
- 否则我在 2/3
有没有办法在flink中获得这种行为?
【问题讨论】:
标签: apache-kafka apache-flink cdc