在本课中,你将创建一个简单的 ETL 包,该包从单个平面文件源中提取数据,使用两个查找转换组件转换数据,并将该数据写入 AdventureWorksDW2012 中的 FactCurrency 事实数据表。 在本课中,你将了解如何创建新包、添加和配置数据源和目标连接,以及使用新的控制流和数据流组件。
重要
本教程需要 AdventureWorksDW2012 示例数据库。 有关安装和部署 AdventureWorksDW2012 的详细信息,请参阅 Microsoft SQL Server 产品示例:Reporting Services。
了解包要求
本教程需要Microsoft SQL Server Data Tools。
有关安装 SQL Server Data Tools 的详细信息,请参阅 SQL Server Data Tools 下载。
在创建包之前,需要充分了解源数据和目标中使用的格式。 了解这两种数据格式后,即可定义将源数据映射到目标所需的转换。
查看来源
在本教程中,源数据是一组包含在 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。 可能需要更改这些默认值,以使字符串列类型更适合数据。 为此,需要查看要写入数据的目标的数据类型,然后在平面文件连接管理器中选择正确的类型。
查看目的地
源数据的最终目标是 AdventureWorksDW 中的 FactCurrency 事实数据表。 FactCurrency 事实数据表有四列,并且与两个维度表有关系,如下表所示。
| 列名 | 数据类型 | 查找表 | 查找列 |
|---|---|---|---|
| 平均费率 | 漂浮 | 没有 | 没有 |
| 货币键 | int (FK) | DimCurrency | CurrencyKey (PK) |
| DateKey | Int (FK) | DimDate | DateKey (PK) |
| 日终汇率 | 漂浮 | 没有 | 没有 |
将源数据映射以确保与目标兼容
源数据格式和目标数据格式的分析表明 ,CurrencyKey 和 DateKey 值需要查找。 执行这些查找的转换将使用 DimCurrency 和 DimDate 维度表中的备用键获取 CurrencyKey 和 DateKey 值。
| 平面文件列 | 表名称 | 列名 | 数据类型 |
|---|---|---|---|
| 0 | FactCurrency | 平均费率 | 漂浮 |
| 1 | DimCurrency | 货币备用键 | nchar (3) |
| 2 | DimDate | FullDateAlternateKey | 日期 |
| 3 | FactCurrency | 日终汇率 | 漂浮 |
课程任务
本课程包含以下任务: