在本任务中,将在刚创建的包中添加一个平面文件连接管理器。 通过平面文件连接管理器,包可从平面文件中提取数据。 使用平面文件连接管理器,可以指定包从平面文件中提取数据时要应用的文件的名称与位置、区域设置与代码页以及文件格式,其中包括列分隔符。 另外,还可以为各个列手动指定数据类型;也可以使用“提供列类型建议”对话框,自动将提取出来的数据列映射到 数据类型。Integration Services
必须为使用的每个文件格式创建新的平面文件连接管理器。 由于本教程从具有完全相同数据格式的多个平面文件中提取数据,因此需要为包添加并配置一个平面文件连接管理器。
在本教程中,将在平面文件连接管理器中配置以下属性:
列名: 由于平面文件没有列名称,平面文件连接管理器将创建默认列名。 这些默认名称不能用于标识每个列代表的内容。 若要使这些默认名称更有用,需要将默认名称更改为与要加载平面文件数据的事实数据表匹配的名称。
数据映射: 为平面文件连接管理器指定的数据类型映射将由引用连接管理器的所有平面文件数据源组件使用。 可以使用平面文件连接管理器,或者使用“提供列类型建议”对话框来手动映射数据类型。 在本教程中,你将在“ 建议列类型 ”对话框中查看建议的映射,然后在 “平面文件连接管理器编辑器 ”对话框中手动进行必要的映射。
平面文件连接管理器提供了有关数据文件的区域设置信息。 如果计算机未配置为使用区域选项英语(美国),则必须在 “平面文件连接管理器编辑器 ”对话框中设置其他属性。
将一个平面文件连接管理器添加到 SSIS 包
右键单击 连接管理器 区域中的任意位置,然后单击“ 新建平面文件连接”。
在 “平面文件连接管理器编辑器” 对话框中,对于 连接管理器名称,请键入 示例平面文件源数据。
单击“浏览”。
在 “打开 ”对话框中,找到计算机上的 SampleCurrencyData.txt 文件。
示例数据与 SSIS 课程包一起提供。 若要下载示例数据和课程包,请执行以下作。
单击“ 下载 ”选项卡。
单击 SQL2012.Integration_Services.Create_Simple_ETL_Tutorial.Sample.zip 文件。
清除第一个数据行复选框中的列名称。
基于区域设置的属性
在 “平面文件连接管理器编辑器 ”对话框中,单击“ 常规”。
将 区域设置 和 代码页 分别设置为英语(美国)和1252。
重命名平面文件连接管理器中的列
在 “平面文件连接管理器编辑器 ”对话框中,单击“ 高级”。
在属性窗格中,进行如下更改:
将 Column 0 name 属性更改为
AverageRate.将 列 1 名称属性更改为
CurrencyID。将 Column 2 name 属性更改为
CurrencyDate.将 列 3 名称属性更改为
EndOfDayRate。
注释
默认情况下,所有四列最初都设置为字符串数据类型 [DT_STR] 且值为
OutputColumnWidth50。
重新映射列数据类型
在 “平面文件连接管理器编辑器 ”对话框中,单击“ 建议类型”。
Integration Services 根据前 200 行数据自动建议最合适的数据类型。 您还可以将这些建议选项改为增加或减少取样数据,以便指定整数数据或布尔数据的默认数据类型,或添加作为填充量添加到字符串列中的空格。
目前,不对“ 建议列类型 ”对话框中的选项进行更改,然后单击“ 确定 ”让 Integration Services 为列建议数据类型。 这会将您返回到“高级”窗格中的“平面文件连接管理器编辑器”对话框,您可以在这里查看由 Integration Services 建议的列数据类型。 (如果单击“ 取消”,则不会对列元数据提出任何建议,并且使用了默认字符串(DT_STR)数据类型。
在本教程中, Integration Services 为 SampleCurrencyData.txt 文件中的数据建议了下表第二列中显示的数据类型。 但是,目标中列所需的数据类型将在后面的步骤中定义,如下表的最后一列所示。
平面文件列 建议的类型 目标列 目标类型 平均费率 float [DT_R4] FactCurrency.AverageRate 漂浮 货币ID string [DT_STR] DimCurrency.货币备用键 nchar(3) 货币日期 日期 [DT_DATE] DimDate.完整日期备用键 (FullDateAlternateKey) 日期 日终汇率 float [DT_R4] FactCurrency.EndOfDayRate 漂浮 为
CurrencyID列建议的数据类型与目标表中字段的数据类型不兼容。 由于数据类型DimCurrency.CurrencyAlternateKey为 nchar (3),CurrencyID因此必须从字符串 [DT_STR] 更改为字符串 [DT_WSTR]。 此外,字段DimDate.FullDateAlternateKey定义为日期数据类型;因此,CurrencyDate需要从日期 [DT_Date] 更改为数据库日期 [DT_DBDATE]。在列表中,选择 CurrencyID 列并在属性窗格中,将列
CurrencyID的数据类型从字符串 [DT_STR] 更改为 Unicode 字符串 [DT_WSTR]。在属性窗格中,将列
CurrencyDate的数据类型从日期 [DT_DATE] 更改为数据库日期 [DT_DBDATE]。单击 “确定” 。