ETL學習之四:SQL Server Integration Services入門
SSIS就是微軟在SQL SERVER2005上對DTS的升級,不得不說,微軟在BI上是花了很大功夫的,包括提供了SSIS,SSAS,SSRS等多個工具,從建立資料倉儲,到從中繼資料抽取資料,到建立維度和採礦結構,採礦模型,訓練,報表模型設計,報表設計,發布,非常方便和強大。先從ETL開始,看看利用這些工具如何將中繼資料和資料倉儲聯絡起來,以下轉自MSDN:
在本課中,您將建立一個簡單 ETL 包,該包可以從單個一般檔案源提取資料,使用兩個尋找轉換組件轉換該資料,然後將該資料寫入 AdventureWorksDW 中的 FactCurrencyRate 事實資料表。在本課中,您還將學習如何建立新包、添加和配置資料來源和目標串連以及使用新的控制流程和資料流組件。
重要事項: |
本教程需要 AdventureWorksDW 樣本資料庫。有關安裝和部署 AdventureWorksDW 的詳細資料,請參閱:. |
瞭解包要求
在建立包之前,需要充分瞭解在來源資料和目標資料中使用的格式。瞭解了這兩種資料格式後,才能定義將來源資料映射到目標資料所需的轉換。
查看源
對於本教程,來源資料是一組包含在一般檔案 SampleCurrencyData.txt 中的曆史貨幣資料。來源資料有以下四列:貨幣的平均匯率、貨幣鍵、日期鍵和當天匯率。
下面是 SampleCurrencyData.txt 檔案中所包含的來源資料樣本:
1.00010001 ARS 9/3/2001 0:00 0.99960016
1.00010001 ARS 9/4/2001 0:00 1.001001001
1.00020004 ARS 9/5/2001 0:00 0.99990001
1.00020004 ARS 9/6/2001 0:00 1.00040016
1.00050025 ARS 9/7/2001 0:00 0.99990001
1.00050025 ARS 9/8/2001 0:00 1.001001001
1.00050025 ARS 9/9/2001 0:00 1
1.00010001 ARS 9/10/2001 0:00 1.00040016
1.00020004 ARS 9/11/2001 0:00 0.99990001
1.00020004 ARS 9/12/2001 0:00 1.001101211
在使用一般檔案來源資料時,需要瞭解一般檔案連線管理員如何解釋一般檔案資料,這一點很重要。如果一般檔案源是 Unicode 編碼的,則一般檔案串連管理將所有列定義為 [DT_WSTR],預設列寬為 50。如果一般檔案源是 ANSI 編碼的,則將列定義為 [DT_STR],預設列寬為 50 。您可能必須更改這些預設設定,才能使字串列類型與所使用的資料更相符。為此,您需要查看將寫入資料的目標的資料類型,然後在一般檔案連線管理員中選擇正確的類型。
查看目標
來源資料的最終目標是 AdventureWorksDW 中的 FactCurrencyRate 事實資料表。FactCurrencyRate 事實資料表有四列,並且與兩個維度資料表有關係,如下表所示。
列名 |
資料類型 |
尋找表 |
尋找列 |
AverageRate |
float |
無 |
無 |
CurrencyKey |
int (FK) |
DimCurrency |
CurrencyKey (PK) |
TimeKey |
Int (FK) |
DimTime |
TimeKey (PK) |
EndOfDayRate |
float |
無 |
無 |
將來源資料映射為與目標相容
對來源資料和目標資料的分析指出需要尋找 CurrencyKey 和 TimeKey 值。將執行這些尋找的轉換通過使用 DimCurrency 和 DimTime 維度資料表中的備用鍵來擷取 CurrencyKey 和 TimeKey 值。
一般檔案列 |
表名 |
列名 |
資料類型 |
0 |
FactCurrencyRate |
AverageRate |
Float |
1 |
DimCurrency |
CurrencyAlternateKey |
nchar(3) |
2 |
DimTime |
FullDateAlternateKey |
Datetime |
3 |
FactCurrencyRate |
EndOfDayRate |
Float |