zoukankan      html  css  js  c++  java
  • SSIS中的容器和数据流—数据目的

    在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可以将数据导入到一个小型机或其他移动设备上。

    作者:Tyler Ning
    出处:http://www.cnblogs.com/tylerdonet/
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,如有问题,请微信联系冬天里的一把火

  • 相关阅读:
    Mysql登录错误:ERROR 1045 (28000): Plugin caching_sha2_password could not be loaded
    Docker配置LNMP环境
    Docker安装mysqli扩展和gd扩展
    Docker常用命令
    Ubuntu常用命令
    单例模式的优缺点和使用场景
    ABP 多租户数据共享
    ABP Core 后台Angular+Ng-Zorro 图片上传
    ERROR Error: If ngModel is used within a form tag, either the name attribute must be set or the form control must be defined as 'standalone' in ngModelOptions.
    AbpCore 执行迁移文件生成数据库报错 Could not find root folder of the web project!
  • 原文地址:https://www.cnblogs.com/tylerdonet/p/2011193.html
Copyright © 2011-2022 走看看