【发布时间】:2020-02-18 21:58:48
【问题描述】:
我有一个表(假设是员工),其中包含大约 130 列描述员工记录的不同属性/特征。现在我有多个下游系统需要数据作为文件(批处理),这些文件定期运行(每 12 小时或 1 天)。
每个消费者只对某些列值感兴趣,而不是对整个员工记录集感兴趣。 例如。消费者 1:需求列 1、2、5、10、15、100、121、130 消费者 2:需要 3、4、15、125、126
等等。目前有 10-12 个不同的消费者需要不同的列集。
有趣的是,每个消费者只对基于该消费者感兴趣的列的 DELTA 信息感兴趣。 例如。因此,仅当第 1、2、5、10、15、100、121、130 列发生变化时,消费者 1 才应获得 DELTA。
是否有任何 CDC 或任何其他工具可以帮助我们实现这一要求?
PS:以下解决方案已被考虑并正在计划中。不知道该选哪一个:
维护 Employee 的前一天(历史)数据表,然后在 Oracle 中使用减号 ('-') 运算符来捕获差异。例如。 (Select Col 1, Col2, Col5, Col10.. from current-day-employee) - (Select Col 1, Col2, Col5, Col10.. from previous-day-employee)。
未考虑此选项,因为 (1) current-day-employee 表中的数据不断从源实时更改,并且 (2) 必须为每个下游消费者创建表。
请提出一个工具或解决方案。
【问题讨论】:
-
您好 Ravish,如果我的回答是“是否有任何 CDC 或任何其他工具可以帮助我们实现这一要求?”,请告诉我。我怀疑我已经概述了一种让我们的产品满足它的方法,但请让我知道我给出的答案。
标签: database oracle apache-kafka cdc