【问题标题】:Handle Changes in multiple tables used in creation of dimension处理用于创建维度的多个表中的更改
【发布时间】:2021-01-29 20:12:53
【问题描述】:

我正在做数据仓库项目,需要以下帮助

OLAP 表:

产品尺寸表: Product_id、category_id、category_name、brand_id、brand_name、manufacturer_id、manufacturer_name

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

**Product_info, id, product_name,category_id,brand_id,manufacturer,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 快照

Product_id、category_id、category_name、brand_id、brand_name、manufacturer_id、manufacturer_name 1,33,Noodles,45, Nestle,455,nestele_pvt_ltd

假设品牌名称从 nestle 更改为 nestle-us,我们将如何跟踪这一变化,因为我们仅基于 product_info update_ts 捕获更改??

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

请提出建议。

【问题讨论】:

    标签: amazon-redshift data-warehouse dimensions dimensional-modeling


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多