四.SSIS包的组建之连接管理器[转载]
接下来的内容我们将学习一下包中各个选项卡的使用.如:连接管理器选项卡、控制流选项卡、数据流选项卡和事件处理选项卡等等。这一篇将介绍一下连接管理器作用以及使用情况。
连接管理器的作用是连接到不同类型的数据源以提取和加载数据。任何包的开发都需要提供源数据。
下表列出了 SQL ServerIntegration Services 提供的连接管理器类型。
类型
说明
ADO
连接到 ActiveX 数据对象 (ADO) 对象。
ADO.NET
使用 .NET 提供程序连接到数据源。
CACHE
从数据流或从缓存文件 (.caw) 中读取数据,并可将数据保存到缓存文件。
EXCEL
连接到 Excel 工作簿文件。
FILE
连接到文件或文件夹。
FLATFILE
连接到单个平面文件中的数据。
FTP
连接到 FTP 服务器。
HTTP
连接到 Web 服务器。
MSMQ
连接到消息队列。
MSOLAP100
连接到 SQL ServerAnalysis Services 实例或 Analysis Services 项目。
MULTIFILE
连接到多个文件和文件夹。
MULTIFLATFILE
连接到多个数据文件和文件夹。
OLEDB
使用 OLE DB 访问接口连接到数据源。
ODBC
使用 ODBC 连接到数据源。
SMOServer
连接到 SQL Server 管理对象 (SMO) 服务器。
SMTP
连接到 SMTP 邮件服务器。
SQLMOBILE
连接到 SQL Server Compact 数据库。
WMI
连接到服务器,并指定服务器上 Windows Management Instrumentation (WMI) 管理的范围。
下面就简单的介绍一下我们常用的使用连接管理器类型。
- OLE DB 访问接口连接到数据源(数据库连接)
- 首先打开上一篇创建名为"SSISDemo"项目.
- 在连接管理器窗口中,右击选择New OLE DB Connnection项,将弹出如下窗口:
左边数据连接框显示的连接是我们已创建好的数据库连接。右边数据库连接属性框显示对应的属性信息。你也可以新建一个数据库连接。单击新建按钮,弹出如下对话框
在这对话框中,我们可以根据自己的需要填写相应的内容。本例是以连接本地AdventureWorks数据库。单击确定按钮。则会在连接管理器看到如下信息:
图中LocalHost.AdventureWorks.sa就是我们刚才创建的数据库连接。右击LocalHost.AdventureWorks.sa弹出属性框。可以根据需要修改这些属性。比如将Name属性修改为: AdventureWorks 。 到此一个 简单OLE DB连接方式建立完成。其中的一些属性含义。自己可以在后续的学习中逐步的掌握。
- FILE连接到文件或文件夹(平面文件连接)
平面文件连接管理器要比OLE DB连接方式要复杂的多。平面文件连接方式主要是连接非数据库类型的文件。下面介绍下如何创建平面文件连接。假如我们有一个名为User.txt文件。数据格式如下:
每行有两列数据。已“Tab”隔开。接下来介绍如何在连接管理器中连接这个文本文件。
- 仍然在连接管理器框中右击,选中新建平面文件连接,弹出对话框
在图中可以看到配置平面文件连接管理器需要配置连接管理器名称、常规、列、高级、预览这个属性。下面将介绍如何配置这些属性
- 连接管理器名称:为工作流中的平面文件连接提供唯一的名称。所提供的名称将在连接管理器框中显示。
- 常规选项卡:使用“平面文件连接管理器编辑器”对话框的“常规”页可以选择文件和数据格式。使用平面文件连接可以将包连接到文本文件。该选项卡中包含以下属性:文件名:键入要在平面文件连接中使用的路径和文件名。
区域设置:在区域设置下拉框中选中指定的区域位置,以便为排序以日期和时间格式提供语言特性的信息。在设计的时候最好选择英语(美国)选项
Unicode复选框:指示是否使用Unicode。如果使用Unicode则不能指定代码页。
代码页:在代码页中选中指定非Unicode文本的代码页。设计时最好选择1252(ANSI-拉丁语I)格式:在格式下拉框中选中文本的格式
属性
说明
带分隔符
各列之间由在“列”页上指定的分隔符隔开
固定宽度
列的宽度固定
右边未对齐
在右边未对齐的文本中,除最后一列之外的每一列的宽度都相同。它有行分割符分割
文本限定符:指定要使用的文本限定符。例如,可以指定文本字段必须用引号括起来。若选择文本限定符之后,就不能重新选择"无"选项,键入None以取消选择文本限定 符。
标题行分隔符:从标题行的分隔符列表中选择,或输入分隔符文本。
值
说明
{CR}{LF}
标题行由回车符和换行符的组合分隔。
{CR}
标题行由回车符分隔。
{LF}
标题行由换行符分隔。
分号 {;}
标题行由分号分隔。
冒号 {:}
标题行由冒号分隔。
逗号 {,}
标题行由逗号分隔。
制表符 {t}
标题行由制表符分隔。
竖线 {|}
标题行由竖线分隔。
要跳过的标题行数:指定要跳过的标题行数或初始数据行数(如果有的话)。
在第一个数据行中显示列名称:指示在第一个数据行中是否要求列名或提供列名。
根据常规选项卡中的这些属性以后,我们就可以根据需求设定文本显示的格式。如下图
- 列选项卡:使用”平面文件连接管理器编辑器”对话框中的”列”选项卡可以在这里设置行和列的信息。并预览相应的文件。如下图:
包含如下属性
行和列分隔符:此属性和常规选项卡中的标题行分隔符一样。可以根据需求设置行和列的显示方式。
预览: 查看平面文件中的示例数据,这些数据已按所选的选项划分为列和行.如上图。
刷新:通过单击“刷新”查看更改要跳过的分隔符后的效果。只有在更改行或列选项之后,此按钮才可见。
重置列:通过单击“重置列”可以删除除原始列之外的所有列。 只有调转到其他选项卡后,然后再回到“列”选项卡,此按钮才可见。
本示例我们在列分隔符选项中选择制表符(t),然后单击刷新按钮。
- 高级选项卡:使用“平面文件连接管理器编辑器”对话框的“高级”页,设置指定 Integration Services 如何读写平面文件中的数据的属性。可以更改平面文件中各个列的名称,并设置包括文件中每个列的数据类型和分隔符在内的属性。默认情况下,字符串列的长度为 50 个字符。可以调整这些列的长度,以免数据截断或超出列宽。还可以更新其他元数据以便与目标列兼容。例如,可以将只包含整型数据的列的数据类型更改为数值数据类型,例如 DT_I2。可以手动进行这些修改,也可以单击“选择类型”按钮,以使用“提供列类型建议”对话框来评估示例数据并自动进行其中一些更改。在高级选项卡中我们可以做如下工做:
配置各列的属性:选择左窗格中的列可在右窗格中查看列的属性。请参阅下表以了解数据类型属性的说明。列出的部分属性仅对某些平面文件格式是可配置的。
属性
说明
ColumnType
表示列是由分隔符分隔、还是固定宽度,或是右边未对齐。此属性是只读的。在右边未对齐的文件中,除最后一列之外的每一列的宽度都固定。它由行分隔符分隔。
OutputColumnWidth
指定值存储为字节数;对于 Unicode 文件,此值对应于字符数。在数据流任务中,此值用于设置平面文件源的输出列宽。
注意
在对象模型中,此属性的名称为 MaximumWidth。
DataType
从可用数据类型的列表中进行选择。
TextQualified
指示文本数据周围是否有文本限定符(例如引号字符)。
值说明
True平面文件中的文本数据是受限定的。
False平面文件中的文本数据是不受限定的。
Name
提供说明性列名。如果不输入名称,则 Integration Services 将自动创建名称,格式为“列 0”、“列 1”,依此类推。
DataScale
指定数字数据的小数位数。小数位数是指小数点后的位数。
ColumnDelimiter
从可用列分隔符的列表中进行选择。选择不可能出现在文本中的分隔符。对于固定宽度的列,将忽略此值。
值说明
{CR}{LF}列由回车符和换行符的组合分隔。
{CR}列由回车符分隔。
{LF}列由换行符分隔。
分号 {;}列由分号分隔。
冒号 {:}列由冒号分隔。
逗号 {,}列由逗号分隔。
制表符 {t}列由制表符分隔。
竖线 {|}列由竖线分隔。
DataPrecision
指定数字数据的精度。精度是指数字的位数。
InputColumnWidth
指定值以字节数进行存储;对于 Unicode 文件,该值将显示为字符数。对于分隔列,将忽略此值。
注意 在对象模型中,此属性的名称为 ColumnWidth。
新建:通过单击“新建”添加一个新列。默认情况下,单击“新建”按钮将会在列表末尾添加新列。该按钮还包括以下选项,可以在下拉列表中选择。
值
说明
添加列
在列表末尾添加新列。
在其前插入
在所选列前面插入新列。
在其后插入
在所选列后面插入新列。
删除:选择一列,然后单击“删除”来删除该列。
建议类型:使用“提供列类型建议”对话框可以计算文件中的示例数据,并获取关于每列的数据类型和长度的建议。
充分了解高级选项卡的属性后,我们将列0的Name和DataTye 属性改为CustomerID和DT_I8类型。将列1的Name和DataTye 属性改为SKUList和DT_STR类型,并将OutColumnWidth属性修改为1000。
- 浏览选项卡:单击浏览选项卡,可以看到如下图显示的数据
只要前三个选项卡配置成功后,预览一下数据显示格式就可以了。最后单击确定按钮。平面文件连接管理器就建立成功。最终在连接管理器框中显示刚才创建名为“Userout.txt“的平面文件管理器。
本节就介绍常用的两个连接管理器。其他的连接管理器可以参考这两个例子自己尝试去建立连接。