有一个困扰我一段时间的问题。
在 ETL 过程中,如何用代理键替换主键?就像工作流程一样 - 它只是分配新的身份吗?如果是这样,以前的值如何,如何用新创建的业务键替换现有的业务键?
在我看来,一个特定的工作流程如下所示,但我还没有在实践中完成它:
- 删除 DimProduct 和 FactSales 表中的现有 PK_Product 和 FK_Product。
- 将新的 IDENTITY 列设置为 dimProduct。
- 将新列添加到 FactSales,其值来自基于先前业务键联接的新创建的 IDENTITY 列。
- 删除两个表中的旧 ProductKey 列。
- 为新创建的代理 IDENTITY 键添加约束。
- 为未来的值分配表之间的参考。
但请告诉我你在工作中是如何做到这一点的并纠正我,因为我认为我错了。