在Data Flow中Destination从数据源或者数据处理流程中接收数据。在SSIS中数据可以导入到任何OLE DB支持的数据源,平面文件或者Analysis Service中的数据。和数据源一样Destinations也通过连接管理器来连接,不同之处是有一个数据映射界面如图4-11。
图4-11
只有在连接到数据流之后才可以配置Destinations,使用绿色箭头将数据源或者数据流和Destinations连接起来。如果在连接之前就配置Destinations会得到如图4-12的警告提示。
图4-12
数据挖掘模型接收器Data Mining Model Training
数据挖掘模型可以接收分析Analysis Service中的数据仓库中的数据,它可以分析多个数据挖掘模型。执行这种操作需要连接Analysis Service。注意:传递给数据挖掘模型的数据必须预先分类,为达到这种目的需要使用排序传输。
数据读取接收器DataReader Destination
数据读取接收器是将SSIS数据流扩展到SSIS外部,并提供数据接口供外部使用例如供报表服务使用。编辑数据读取接收器时要给它取一个合适的名字,使得在以后的后续的开发过程中更加容易的使用。在图4-13中可以看到这个接收器的名字是RowSampling Output,设置好名字等其他属性之后再InputColumn标签页面内检查你要输出到接收器的数据列。
图4-13
如果要在报表服务中使用这个接收器,需要保证有可用的SSIS连接。在报表服务中确保在RSReportDesigner.config文件中有一个包含SSIS的扩展节点<DATA>,在报表设计中将会看到一种新的连接类型SSIS,选择这种数据源,在连接请求框内输入以下类似的完全限定文件名称:
-f C:\Packages\RSSPartnerFeed.dtsx
这个是用来指定读取数据接收器为报表数据的来源。每次请求报表就会自动执行package来从数据流中获得数据。可想而知只有从package中请求得到数据,报表中才会展现数据。在部署报表之前要先调试好package,因此程序的运行速度可能会因此而减慢。
在实际应用中使用SSIS作为报表的数据源对于展现非SQL数据会非常的有用,例如想要展示一些扁平数据RSS feed,在后面部分中将会详细说明。
Dimension处理和Partition处理
Dimension处理主要处理Analysis Service中的一些Dimension,可以选择展现全部Full,添加Add(incremental)和更新Update。在Connection Manager栏中配置连接,然后会看到实际表中的Dimensions如图4-14,选择要进行process的Dimension,点击Mapping标签转到页面,将数据列从数据流中映射到Dimensions中。最后在Advanced界面中选择怎么处理错误,一般情况下这个页面保持默认值,除非有一些特殊处理。
图4-14
Partition处理有类似的选项,不同的是它是处理Analysis Service中的partition。
Excel Destination
Excel Destination和Excel数据源非常的类似,不同的是它接收数据而不是抽取数据,它的编辑页面和Excel数据源的编辑界面是相似的。
平面文件Destination
平面文件Destination用来将数据送入到一个平面文件中,和其他连接一样,这里需要新建一个文件链接。在Header选项中可以输入数据列的名字,这样在文件中就会添加一个列名行,最后在Overwrite data in the file选项可以设置是否每次执行都将数据重新写入文件。
OLE DB Destination
在SSIS中最常用的一种就是OLE DB Destination了,如图4-15。它可以将数据写入OLE DB兼容的数据对象中例如Oracle,Access,SQL Server。和数据源一样,这里也需要配置OLE DB数据连接。在Data Access Model中选择Table or View — Fast Load,在下面就会有一些单选框例如Table Lock,这种设置只是在SQL Server数据库中才会有。在Rows Per Batch option选择项中设置一次允许多少行数据执行,Maximum Insert Commit Size属性设置使用Fast Load Option时一次允许多少量(kb)的数据执行,Keep identity选项在执行时保留数据完整性。
图4-15
原始数据Destination
原数据Destination是一种不需要设置连接的速度非常快的数据对象。在编辑界面内,需要指定一个原数据文件,原数据一般是一种中转数据,写入文件之后其他的package就可以使用这种数据文件作为数据源。数据的格式简单,转换的速度非常快,在有特殊的速度要求时才会使用这种数据源。
记录集Destination
记录集Destination可以将数据转移到一个ADO数据集,例如将数据集读取到一个dataset之后,然后再使用Script task从一个变量中读取到这些数据。这种Destination不支持错误处理,这是它的一个缺点。
SQL Server 和移动Destination
SQL Server Destination是SQL数据库中最佳的应用,它使用bulk insert是的写入速度非常地快。它从数据流中获得数据然后使用bulk insert快速地将数据写入到数据库。在编辑界面可向像Bulk insert task那样编辑,例如设置executing triggers属性,lock table属性,注意这种Destination使用内存中的接口,所以它只能接受同一个服务器中的数据,也就是本机数据。最后移动Destination可以将数据导入到一个小型机或其他移动设备上。