处理用于创建维度的多个表中的更改

问题描述

我正在从事数据仓库项目,需要在下面提供帮助

OLAP表:

产品尺寸表: 产品ID,类别ID,类别名称,品牌ID,品牌名称,制造商ID,制造商名称

OLTP表: 每个表都包含create_ts和update_ts,用于跟踪表中的创建和更新。

** Product_info,id,product_name,category_id,brand_id,制造商,create_ts,update_ts

Product_category_mapping:id,product_id,category_id,create_ts,update_ts

品牌:ID,名称,create_ts,update_ts

制造商:id,名称,create_ts,update_ts **

要跟踪任何表中的所有更改,应反映在维度表中。

例如:

当前OLAP快照

产品ID,类别ID,类别名称,品牌ID,品牌名称,制造商ID,制造商名称 1,33,Noodles,45,nestle,455,nestele_pvt_ltd

假设品牌名称nestle更改为nestle-us,在仅基于product_info update_ts捕获更改时,我们将如何跟踪呢?

我们应该考虑所有4个表更改吗?

请提出建议。

解决方法

如果在作为DW来源的任何表中数据发生变化,则需要将其包括在提取逻辑中。

对于像这样的参考数据,您可以在其中包含许多构成单个“目标”表的表,我经常采用的一种方法是在源数据库中的所有这些表之间创建一个视图,其中包括所需的所有列来访问DW,但是只有一个update_ts列是使用SQL GREATEST函数计算的,您可以在其中传递视图中所有表的update_ts列。然后,您只需要将此单列与“上次提取日期”进行比较即可确定是否需要处理任何更改