制作ssis注意事项

1, Integration Services Project有很多Control Flow Items,通过组合他们之间执行的先后关系,完成一定的工作 几种常用的item分别是Scirpt Task, Sql Task, DataFlow Task, Execute Process Task

2, 可以在Control Flow的设计页面右键添加Variables, Script Task如果要访问全局变量,需要在编辑时在ReadOnlyVariables和ReadWriteVariables两种类型中预先定义,然后电机Design Script按钮,进入编辑脚本.

3, DataFow Task Item

在Integration Services Project中,一旦创建了一个Data Flow任务,它将会生成新的数据流。正如Controller Flow(控制器流)负责处理程序包的主工作流那样,数据流负责处理数据的转换。几乎所有能够操作数据的组件都可以归类到数据流类别。当数据在数据流中的每一步中流动时,数据将根据所进行的转换内容而发生变化。如图1-7所示,使用派生列转换后将生成一个新的列,然后这个新列对于后续的转换或者目的地都可用。

在本节中将简短讨论每种数据源、目的地以及转换。在第3、4章将对本节内容进行更详细的介绍。

1.6.1  源
源(source)是用户所指定的源数据位置,数据从源被拉到数据泵中。源通常指向SSIS中的Connection Manager(连接管理器)。通过指向连接管理器,用户可以在整个程序包中重用连接,因为只需要在一个位置修改连接即可。在SSIS中,一共有6种可以使用的源。

●       OLE DB源(OLE DB source):连接到几乎所有的OLE DB数据源,例如SQL Server、Access、Oracle或DB2,等等。

●       Excel源(Excel Source):专门负责接收来自Excel电子表格数据的源。这种源也可以使得运行针对Excel电子表格的SQL查询更为容易,以限制希望通过数据流的数据范围。

●       平面文件源(Flat File Source):连接到定界的或固定宽度的文件。

●       原始文件源(Raw File source):一种由原始文件目的地(Raw File Destination)所创建的专门文件格式。原始文件源通常表示传输过程中的数据,而且读取非常快捷。

●       XML源(XML source):可以获取来自XML文档的数据。

●       DataReader源(DataReader source):DataReader源是一个ADO.NET连接,非常类似于在自己的应用程序代码中使用DataReader接口连接到数据库时在.NET Framework中所看到的连接。

数据流元素 - xucn - 我的小屋

1.6.2  目的地
在数据流中,目的地接收来自数据源和来自转换过程的数据。SSIS的灵活体系结构可以发送数据到几乎任何OLE DB兼容的数据源或者到某个平面文件。和源一样,目的地是通过连接管理器来管理的。在SSIS中,可以使用以下类型的目的地:

●       数据挖掘模型培训(Data Mining Model Training):这种目的地通过将来自数据流的数据传递到目的地来培训某个分析服务(Analysis Services)挖掘模型。

●       DataReader目的地(DataReader Destination):允许将数据提交给其他的外部进程,例如报告服务(Reporting Services)或自己的.NET应用程序。该目的地使用ADO.NET DataReader接口来完成这一工作。

●       维度处理(Dimension Processing):加载并处理某个分析服务维度。它可以执行维度的完全更新或增量更新。

●       Excel目的地(Excel destination):将来自数据流的数据输出到某个Excel电子表格。

●       平面文件目的地(Flat File destination):使得用户可以将数据写入到某个定界或固定宽度的文件。

●       OLE DB目的地(OLE DB destination):将数据输出到某个OLE DB数据连接,例如SQL Server、Oracle或Access。

●       分区处理(Partition Processing):使得用户可以执行分析服务分区的增量更新或完全更新处理过程。

●       原始文件目的地(Raw File Destination):这种目的地负责输出稍后可以用于原始文件源的数据。这是一种非常专业化的格式,而且输出非常快捷。

●       记录集目的地(Recordset Destination):将记录写入到ADO记录集。

●       SQL Server目的地(SQL Server Destination):使用这种目的地可以最有效地将数据写入到SQLServer。

●       SQL Server移动目的地(SQL Server Mobile Destination):将数据插入到运行于掌上电脑(Pocket PC)上的SQL Server。

1.6.3  转换
转换(transformation)是数据流的关键组件,负责将数据转变为所希望的格式。例如,用户可能希望对数据进行排序或聚合。可以使用两种转换来完成这一任务。在SSIS中,有关转换的最大好处是所有过程都是在内存中完成的,而且不再需要像SQL Server 2000 DTS中所必须进行的精心脚本编程。在第4章和第6章将详细讨论转换。以下是SSIS中可用的完整转换列表:

●       聚合(Aggregate):聚合来自转换过程或源的数据。

●       审核(Audit):这种转换负责将审核信息提供给程序包。这些审核信息包括诸如软件何时运行以及由谁所运行之类的信息。

●       字符映射表(Character Map):这种转换可以进行字符数据转换,例如将数据从小写转换为大写。

●       条件拆分(Conditional Split):根据所符合的特定条件来拆分数据。例如,这种转换可以设置为当State(州)列等于Florida(佛罗里达)时沿不同的路径发送数据。

●       复制列(Copy Column):将某个列的副本加入到转换输出。稍后可以对副本进行转换,而保留原始数据用于审核。

●       数据变换(Data Conversion):将某列的数据类型变换为其他的数据类型。

●       数据挖掘查询(Data Mining Query):执行针对分析服务的数据挖掘查询。

●       派生列(Derived column):创建一个根据表达式所计算得到的新派生列。

●       导出列(Export Column):这种转换允许用户将列从数据流导出到某个文件。例如,可以使用这种转换将某个包含图像的列写入到文件。

●       模糊分组(Fuzzy Grouping):通过查找可能重复的行来清理数据。

●       模糊查询(Fuzzy Lookup):根据模糊逻辑来匹配并标准化数据。例如,该转换可以将名称jon转换为john。

●       导入列(Import Column):从文件读取数据并把它加入到某个数据流。

●       查询(Lookup):对稍后要用于转换过程的数据执行查询。例如,可以使用这种转换根据邮政编码来查询某个城市。

●       合并(Merge):将数据流中的两个排序数据集合并为单个数据集。

●       合并联接(Merge Join):使用一个联接功能将两个数据集合并为单个数据集。

●       组播(Multicast):将数据的一个副本发送到工作流中增加的路径。

●       OLE DB命令(OLE DB Command):针对数据流中的每一行执行一个OLE DB命令。

●       百分比采样(Percentage Sampling):通过使用数据流中总行数的百分比来从数据流捕获数据采样。

●       透视(Pivot):将位于某列上的数据透视到一个非相关的格式。透视某个表,意味着可以按照多种方式来划分数据,这与在OLAP和Excel中很相似。

●       行数(Row Count):将行数从数据流保存到变量中。

●       行采样(Row Sampling):通过使用数据流中总行数从数据流捕获数据采样。

●       脚本组件(Script Component):使用脚本转换数据。例如,可以使用这种转换将专门的业务逻辑应用于数据流。

●       缓慢变化维度(Slowly Changing Dimension):协调某个缓慢变化维度中的数据的条件插入或更新。

●       排序(Sort):通过给定的列对数据流中的数据进行排序。

●       术语提取(Term Extraction):提取文本数据中的名词或形容词。

1.6.3 Script Component

可以使用脚本组建灵活修改输入输出, 通过修改row的列值达到修改输出的目的. 这里要注意的是如果要在script component中修改variable, 需要重写方法. 也可以通过灵活设置exclusiongroup非0来使用DirectRowToOutput达到filter row的目的.

Public Overrides Sub FileInput_ProcessInputRow(ByVal Row As FileInputBuffer)
        If Row.Col001 <> "HDR" And Row.Col001 <> "TLR" Then
            Row.CrtTime = Now
            Row.FileName = Me.Variables.FileName
            If Row.Col002 = "Y" Or Row.Col014 = "N" Then
                Row.ChequeFrm = "0"
            Else
                Row.ChequeFrm = "1"
            End If

            Row.PostStatus = "P"
            Row.SplitTktFlag = Row.Col001
         
            Row.DirectRowToOutput()

            value = "abcd"
        End If
    End Sub

    'override postexecute method to update the variables 
    Public Overrides Sub PostExecute()
        Variables.TLR = value
        MyBase.PostExecute()
    End Sub

1.7  Connection Manager

在建立Connection Manager后,可以通过script修改connection string来重新设置连接, 要根据native sql和ole net等类型注意连接串的format,

●       术语查询(Term Lookup):查找从文本中提取的术语,然后引用某个引用表中的值。

●       联合所有(Union All):将多个数据集合并到单个数据集。

●       逆透视(Unpivot):将数据从非标准格式逆透视为某种关系格式。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值