第 1 課:使用 SQL Server Integration Services (SSIS) 來建立專案和基本套件
適用於:SQL Server Azure Data Factory 中的 SSIS Integration Runtime
在這一課,您會建立一個簡單的擷取、轉換和載入 (ETL) 套件。 此套件會從單一一般檔案來源擷取資料、使用兩個查閱轉換來轉換資料,然後將轉換的資料寫入至 AdventureWorksDW2022
範例資料庫中 FactCurrencyRate 事實資料表的複本。 在本課程中,您會了解如何建立新套件、新增和設定資料來源與目的地連線,以及使用新的控制流程和資料流程元件。
在建立套件之前,您必須先了解來源資料和目的地中使用的格式。 接著,您便可以定義將來源資料對應到目的地所需的轉換。
必要條件
本教學課程倚賴 Microsoft SQL Server Data Tools,這是一組範例套件及一個範例資料庫。
若要安裝 SQL Server Data Tools,請參閱下載 SQL Server Data Tools。
下載本教學課程的所有課程套件:
瀏覽至 Integration Services 教學課程檔案 \(英文\)。
選取 [Download] \(下載\) 按鈕。
選取 [Creating a Simple ETL Package.zip] \(建立簡單的 ETL Package.zip\) 檔案,然後選取 [Next] \(下一步\)。
下載檔案之後,將其內容解壓縮至本機目錄。
若要安裝並部署
AdventureWorksDW2022
範例資料庫,請參閱<安裝及設定 AdventureWorks 範例資料庫 - SQL>。
查看資料來源
在本教學課程中,來源資料是名為 SampleCurrencyData.txt 之一般檔案中的一組歷史貨幣資料。 來源資料具有下列四個資料行:貨幣的平均匯率、貨幣索引鍵、日期索引鍵和收盤匯率。
以下是 SampleCurrencyData.txt 檔案中的來源資料範例:
1.00070049USD9/3/05 0:001.001201442
1.00020004USD9/4/05 0:001
1.00020004USD9/5/05 0:001.001201442
1.00020004USD9/6/05 0:001
1.00020004USD9/7/05 0:001.00070049
1.00070049USD9/8/05 0:000.99980004
1.00070049USD9/9/05 0:001.001502253
1.00070049USD9/10/05 0:000.99990001
1.00020004USD9/11/05 0:001.001101211
1.00020004USD9/12/05 0:000.99970009
使用一般檔案來源資料時,請務必了解「一般檔案」連線管理員如何解譯一般檔案資料。 如果一般檔案來源是 Unicode,一般檔案連接管理員會將所有資料行定義為 [DT_WSTR],預設資料行寬度為 50。 如果一般檔案來源是以 ANSI 編碼,資料行就會定義為 [DT_STR],且預設資料行寬度為 50。 您可能必須變更這些預設值,以便讓字串資料行類型更適用於您的資料。 您必須查看目的地的資料類型,然後在「一般檔案」連線管理員內選擇該類型。
查看目的地資料
來源資料的目的地是 AdventureWorksDW2022
中 FactCurrencyRate 事實資料表的複本。 FactCurrencyRate 事實資料表有四個資料行,且與兩個維度資料表之間有關聯性,如下表所示。
資料行名稱 | 資料類型 | 查閱資料表 | 「查閱資料行」 |
---|---|---|---|
AverageRate |
float |
無 | 無 |
CurrencyKey |
DimCurrency |
||
DateKey |
DimDate |
||
EndOfDayRate |
float |
無 | None |
將來源資料對應至目的地
我們的來源和目的地資料格式分析指出查閱對 CurrencyKey 和 DateKey 值而言是必要的。 執行這些查閱的轉換會使用來自DimCurrency 和 DimDate 維度資料表的替代索引鍵來取得這些值。
一般檔案資料行 | 資料表名稱 | 資料行名稱 | 資料類型 |
---|---|---|---|
0 | FactCurrencyRate |
AverageRate |
float |
1 | DimCurrency |
CurrencyAlternateKey |
nchar(3) |
2 | DimDate |
FullDateAlternateKey |
date |
3 | FactCurrencyRate |
EndOfDayRate |
float |
課程工作
這一課包含下列工作: