我有一个 SSIS ETL 包,它将一个 CSV 文件加载到一个包含 100 多列会计数据的临时表中,我们正在根据这些数据创建一个数据仓库。
从 100 多列数据中,我们可以确定创建“产品”维度所需的列...
示例数据..
product_id,product_name,product_description
'1','computer','power pc'
'2','case','atx case'
'1','computer','power pc'
'3','cpu'intel'
'3','cpu'intel'
所以,我所做的是创建了一个 DIM.PRODUCT 表,即...
CREATE TABLE DIM.OFFICE (
"product_key" int IDENTITY (1,1) NOT NULL, -- Surrogate Key
"product_id" varchar(150) NOT NULL, -- Business Key
"product_name" varchar(150) NOT NULL,
"product_Description" varchar(150) NOT NULL,
)
我们知道示例数据中的“产品 id”唯一标识了产品,因此#1 的产品 id 将始终具有 product_name = computer,product_description = power pc。
暂存表有 300 万条记录,我如何从暂存表中填充我的维度,以便稍后在填充事实表时查找它。
维度是类型 1 维度,产品 id #1 将始终为“computer”、“power pc”。
以前我一直在使用 SELECT DISTINCT "product id","product_name","product_description" 来仅从临时表中获取不同的值,并将其加载到维度中,但我发现这种方法会对资源系统征税填充尺寸时。
有没有更好、更有效(性能方面)的方法来做到这一点?(使用 TSQL 或 SSIS)..
我们正在运行 SQL 2008 SP3.. 并计划很快升级到 SQL 2012。