SSIS包的组建之连接管理器
上一篇我们通过一个示例来介绍一下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“的平面文件管理器。
本节就介绍常用的两个连接管理器。其他的连接管理器可以参考这两个例子自己尝试去建立连接。
SSIS包的组建之连接管理器的更多相关文章
- 在SSIS 的 64 位版本中不支持 Excel 连接管理器
Microsoft sql server 2008 R2——> SQL SERVER Business Intelligence Development Studio 使用EXCEL数据源或目标 ...
- 在SSIS 的 64 位版本中不支持 Excel 连接管理器[转]
Microsoft sql server 2008 R2——> SQL SERVER Business Intelligence Development Studio 使用EXCEL数据源或目标 ...
- SOFA 源码分析 — 连接管理器
前言 RPC 框架需要维护客户端和服务端的连接,通常是一个客户端对应多个服务端,而客户端看到的是接口,并不是服务端的地址,服务端地址对于客户端来讲是透明的. 那么,如何实现这样一个 RPC 框架的网络 ...
- httpclient 连接管理器
连接操作器 连接操作是客户端的底层套接字或可以通过外部实体,通常称为连接操作的被操作的状态的连接. OperatedClientConnection接口扩展了HttpClientConnection接 ...
- openfire研究之部署连接管理器(connection manager)
http://blog.sina.com.cn/s/blog_7325f5150101bafh.html 一. Openfire Connection Manager 简介 Openfire Conn ...
- SSIS包的开发
在上一章节中我们初步了解了SSIS体系结构以及如何创建一个SSIS包.现在就介绍一下如何在创建的包中使用各个选项卡.打开上一章节创建的SSIS包.整个界面风格如下: 在整个包中包含了控制流选项卡.数据 ...
- 如何在 ETL 项目中统一管理上百个 SSIS 包的日志和包配置框架
一直准备写这么一篇有关 SSIS 日志系统的文章,但是发现很难一次写的很完整.因为这篇文章的内容可扩展的性太强,每多扩展一部分就意味着需要更多代码,示例和理论支撑.因此,我选择我觉得比较通用的 LOG ...
- c#控制台調用SSIS包互传值
有时候不仅仅需要在内部执行package包,多数情况下,是需要在外部进行调用,比如,需要一个批处理或者控制台程序进行外部调用SSIS包,而往往这个包所配置的连接字符串是经过加密处理的,所以当外部调用S ...
- 变量在SSIS包中的使用
2010~2011年经常使用SSIS包采集加工数据,后来换了工作就很少使用.最近又开始用那玩意采集数据,努力回想之前是怎样操作的,网上各种找各种纠结.趁这次使用记录下日常操作步骤,以备以后不时之需. ...
随机推荐
- 【原创】学习CGLIB动态代理中遇到的问题
代码清单1 CGLIB动态代理 package wulj.proxy.cglibProxy; import java.lang.reflect.Method; import net.sf.cglib. ...
- HTML代码的美感
每当我访问精美的网站,我都情不自禁地会去查看源代码.这就好比你拥有一副X光眼镜,能够看到任何人--甚至透视他们的遮羞布.这简直是天经地义的事情嘛!我迫不及待地想了解,这个精美的网站,是不是由同样具有美 ...
- 怎样使用Chrome模拟手机浏览器測试移动端网站
作者:zhanhailiang 日期:2014-10-10 环境说明: Chrome 37.0.2062.124 m 1. 通过[菜单→工具→开发人员工具|Javascript控制台]或[快捷键Ctr ...
- java中使用axis发布和调用webService及dom4j解析xml字符串
工作中需要调用webService服务,这里记录一下如何在java中发布和调用webService. 需要的jar包: webService服务端: import javax.jws.WebMetho ...
- new AnnotationConfigApplicationContext(MyBean.class)时,发生了什么?
当我们run一段代码,像下面这样两行.spring究竟做了什么些,让整个容器准备就绪,交付给用户直接可用的各种特性.为了弄清楚,默默梳理记录下来. public static void main (S ...
- C# Invoke 使用 异步委托
如果使用多线程,应该会遇到这样的一个问题,在子线程中想调用主线程中(Form1)控件,提示报错! 可以使用Invoke方法调用. this.Invoke(new MethodInvoker(() =& ...
- Ubuntu中输入输出重定向及管道技术简述
输出 1.标准输出 定义:程序在默认情况下输出结果的地方(stdout). 2.输出重定向 定义:用于把数据的输出转移到另一个地方去. 3.Ubuntu中例子 $ls > ~/ls_out # ...
- Linux Shell编程 sort、wc命令
sort命令:字符串排序 sort 命令可以依据不同的数据类型来进行排序.sort 将文件的每一行作为一个单位,相互比较.比较原则是从首字符向后,依次按 ASCII 码值进行比较,最后将它们按升序输出 ...
- Linux基本命令 压缩命令
1.压缩命令 ================================================================================== 命令名称:gzip ...
- 【HackerRank】Ice Cream Parlor
Sunny and Johnny together have M dollars which they intend to use at the ice cream parlour. Among N ...