【发布时间】:2012-09-30 00:29:04
【问题描述】:
我的 SQL Server 中有一个表,我在其中“暂存”了从我们的 ERP 系统中提取的数据仓库。
从这个临时表(表名:DBO.DWUSD_LIVE),我构建我的维度并加载我的事实数据。
一个示例 DIMENSION 表称为“SHIPTO”,此维度具有以下列:
"shipto_id
"shipto"
"salpha"
"ssalpha"
"shipto address"
"shipto name"
"shipto city"
现在我有一个 SSIS 包,它对上述列执行 SELECT DISTINCT 以检索“唯一”数据,然后通过 SSIS 包我将“shipto_id”代理键分配给。
我当前的 TSQL 查询的一个例子是:
SELECT DISTINCT
"shipto", "salpha", "ssalpha", "shipto address", "shipto name", "shipto city"
FROM DBO.DWUSD_LIVE
这很好用,但不是“快速”,某些维度有 10 列,对这些维度进行不同的选择并不理想。
在这个维度中,我的“业务键”列是“SHIPTO”、“SALPHA”和“SSALPHA”。
如果我这样做:
SELECT DISTINCT
"shipto", "salpha", "ssalpha"
FROM DBO.DWUSD_LIVE
它产生与以下相同的结果:
SELECT DISTINCT
"shipto", "salpha", "ssalpha", "shipto address", "shipto name", "shipto city"
FROM DBO.DWUSD_LIVE
有没有更好的方法来执行这个 TSQL QUERY?我需要所有列,但只需要业务关键列上的 DISTINCT。
感谢您的帮助。
下图是我的项目在 SSIS 中的设置方式,Dimensions 是 SCD 1。
【问题讨论】:
-
如果有人知道我根据业务键和代理键从临时表中填充我的维度的更好方法,请告诉我。
-
有人对此有什么建议吗?
标签: sql tsql ssis data-warehouse dimensions