问题描述
我想以一致的方式将数据存储在 DWH 中。每周我都需要从本地 sqlDB 加载 AzureDW 中的数据。 问题是我在每周得到的表中有主键。表格示例
我想设计成所有 4 条记录都存储在 DW 中。
我应该使用代理键还是有其他更好的方法?
解决方法
如果这是暂存源数据,我不会添加代理键,通常您只在维度模型中创建代理键。
如果您的数据量在每次运行过程时都以半指数增长(不太可能),我将作为 CTAS 进行处理,否则我将执行 插入 dbo.table SELECT *,SYSUTCDATETIME() AS RECORD_INSERT_DATE FROM dbo.table_external_table
因此,您只需插入所有传入数据并为插入日期添加时间戳。你的 NK 和时间戳成为你在桌子上的唯一键。
如果您的要求涉及轻松返回记录的当前版本,您可以使用 typeII SCD 模式为记录的最新版本设置结束日期,并为记录的新版本设置开始日期 + 活动标志。