zoukankan      html  css  js  c++  java
  • SSIS2008组件使用测试

    SSIS2008组件使用测试

    Author: Amy.Qiu

     

    Control Flow

    1.         Foreach Loop Container

    Eg. 循环Excel文件。

    a. 配置foreach, 双击后选择Collection-> Enumerator-> Foreach File Enumerator;

    Variable Mappings-> Variable.@ExcelFilePath(要给个初始值)

    b. Connection Managers: 新建Excel Connection Manager, 设置

    Properties-> Expressions-> ExcelFilePath-> Variable.@ExcelFilePath

    c. Excel Source-> Destination

    Eg. 循环Flat Files

    操作类似循环Excel. Flat文件源与OLEDB Destination如有CodePage不相符,需设置

    Destination->Advanced Editor->AlwaysUseDefaultCodePage->True.

     

    2.         Sequence Container ,  Execute SQL ,  variables,  Package Configurations,  Transaction

    a.       Sequence Container可用作使IS设计模块化。

    b.       Sequence Container可用作事务处理。开启事务->TransactionOption->Required。所有组件默认TransactionOptionSupported支持,即参与父级开启的事务。

    c.       Package Configurations配置包信息,eg: 存储变量值。当使用变量时,首先读取包配置,赋值给变量。

    d.       Execute SQL:使用变量,SQL语句中用“?”代替变量,Parameter Mapping中设置对应变量,Parameter Name设置为012…分别对应第1个问号,第2个问号。。。

     

    3.         Analysis Services

    a.       Analysis Services Process->Process Analysis ServicesDataBase, 可以单独process cube或某个维度。我没找到能Process 本地SSAS工程。

    b.       Analysis Services Execute DDL->xmla语言,也是连接Analysis ServicesDataBase

    如:<Batch xmlns="http://schemas.microsoft.com/analysisservices/2003/engine">

     <Parallel>

        <Process xmlns:xsd="http://www.w3.org/2001/XMLSchema"

    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

          <Object>

            <DatabaseID>Analysis Services Tutorial</DatabaseID>

          </Object>

          <Type>ProcessFull</Type>

          <WriteBackTableCreation>UseExisting</WriteBackTableCreation>

        </Process>

     </Parallel>

    </Batch>

     

    4Bulk Insert Task

             a. Flat File插入DB

     

    5Execute Package Task

    Package设置,Connection->帐号设置为能登入Integration Services. DataBase可以不选或为任意DBPackageIntegration Services.Stored Packages.MSDB.Maintenance PlansPackage.

     

    6. Execute Process Task

    执行本地可执行文件.exe,  .com,  .bat,  .cmd

     

    7. Execute SQL Task: 执行SQL语句或存储过程。

    设置连接

    a. 设置SQL来源类型,直接输入/文件/变量

    b. 输入输出参数用“?”代替,参数对应在Parameter Mapping中设置。

    c. 结果集,None/Row/Set/xml

     

    8. File System Task

    操作文件目录,可以删除文件,复制文件,重命名文件等。

     

    9. Send Mail Task

    配置SMTP Server. mail.

     

    10. Transfer Database Task

    可实现在线复制或离线移动BD

    测试中,在线复制,当table中的sql_variant数据类型时,复制数据时报错。

     

    11. Transfer SQL Server Objects Task

    COPY DB Objects, 可以设置当目标存在时,先删除。

    测试中,当Table有分区的时候,COPY表结构报错.

     

    12. Web Service

    a. 设置Http Connection. New Connection->Http->Server URL:

    http://localhost:3992/WebService/Service.asmx

    b. 设置WSDL File路经

    c. 设置Input->Web Service方法

    d. 设置 Output->用变量接收

     

    13. Script Task

    可接收变量,编程

     

    14. WMI Task

    WMI Data Reader Task: WQL 查询返回应用程序日志事件中的项或查询返回操作系统的快速修补工程 (QFE) 更新列表等,至Flat File中。(Excel不能接收)

    如:SELECT * FROM Win32_NTLogEvent WHERE LogFile = 'Application' AND

    (SourceName='SQLISService' OR SourceName='SQLISPackage') AND TimeGenerated > '20050117'

     

    WMI Event Watcher: 查询监视 CPU 使用率超过 40% 的通知等,可使用于条件判断。

    如:SELECT * from __InstanceModificationEvent WITHIN 2 WHERE TargetInstance ISA

    'Win32_Processor' and TargetInstance.LoadPercentage > 40

     

    15. Maintenance Plan Task.

    (16) Notify Operator Task: MailSQL操作员。类似有Send Mail Task.

    封装EXECUTE msdb.dbo.sp_notify_operator。配置好DataBase Mail后,该组件我没找到在哪里设置Profile Name

     

    16. 控制流的路径

    可以编辑路径Constraint

    (1) Constraint options: Evaluation operation: 选择操作可为约束、表达式、或约束与表达式的组合。约束可选值为成功、失败或完成。表达式,如:@i==1

    (2) Multiple constraints: Logical AND, Logical OR, 指一个控件接收多方源路径时,这些源路径的关系约束,如:可设置当源中的某个成功,即运行该目标组件。

     

    Data Flow

    17.数据流的路径

    可设置Data Viewers, 使用该方法可实时查看经过的数据。

     

    18. Data Flow Task

    (1) Audit: 增加一些Package信息列,如Machine Name, User Name

    (2) Character Map: 字符转换,转换大小写等。

    (3) Conditional Split: 分流,根据Condition条件把数据分组,编写condition时,可使用右上方的Functions.

    (4) Copy Column: 复制列

    (5) Derived Column: 可对列进行表达式操作,然后覆盖当前列或作为新列输出。

    (6) Data Conversion: 数据类型转换。因为Data Flow 路径连接的数据类型要一致。

    (7) Sort: 排序,常用于Merge Join之前。

    (8) Lookup: 查找。有类似于Merge Join,设置当查找不到数据时,组件失败或重定向行或忽略错误,忽略错误可能会造成数据丢失。两个数据源连接的columns数据类型要一致。

    (9) OLE DB Command: 对数据流中的每一行运行一条 SQL 语句。Column Mappings,配置?号对应参数。

    (10) Lookup + OLE DB Command: 可用于处理缓慢变化维度,Lookup成功数据行用OLE DB

    Command更新数据库,Lookup不成功的行插入数据库。也可用Merge Join + OLE DB

    Command处理缓慢变化维度.

    (11) Slowly Changing Dimension: 渐变维度转换协调数据仓库维度表中的记录更新与插入。设置Key Type, 需设置Business key, 用于Joincolumns, 其他为‘Not a key column’即需要更新数据的columns.

    (12) Merge Join: 要求输入列一定是经过排序的。可使用下列方法之一对此数据进行排序:

    a. 在源中,在用于加载数据的语句中使用 ORDER BY 子句。

    b. 在数据流中,在合并转换或合并联接转换之前插入一个排序转换。

    必须为向合并转换和合并联接转换提供数据的源或上游转换设置两个重要的排序属性:

    数据源中输出的 IsSorted 属性,指示数据是否已排序。此属性必须设置为 True。将 IsSorted 属性的值设置为 True 时不会对数据进行排序。此属性仅向下游组件提示数据之前已经过排序。

    输出列的 SortKeyPosition 属性,指示单个列是否已排序、其排序顺序以及多个列的排序顺序。必须为已排序数据的每一列设置此属性。

    如果使用排序转换对数据进行排序,则排序转换将按合并转换或合并联接转换的要求设置这两个属性。即,排序转换将其输出的 IsSorted 属性设置为 True,并设置其输出列的 SortKeyPosition 属性。

    (13) Merge: 将两个排序后的数据集合并为一个数据集。合并转换与 Union All 转换类似。在下列情况下需使用 Union All 转换:a.转换输入未排序。b.合并的输出无需排序。c.转换的输入超过两个。

    (14) Union All: 要求输入流对应列的数据类型一致。

    (15) 抽样

    Percentage Sampling: 通过选择转换输入行的百分比来创建样本数据集

    Row Sampling: 用于获取输入数据集的随机选择子集

    (16) Aggregate: group by某些列,对另外一些列作聚合操作。

    (17) Pivot: 设置输入列的 PivotUsage 属性,以指定每列在透视过程中承担的角色。

    PivotUsage 的有效值是 012 3

    0表示此列未经透视,将列值传递到转换输出。

    1表示此列为设置键的一部分,该设置键将一行或多行标识为一个集的组成部分。将所有具有同一设置键的输入行组合到一个输出行。

    2表示列为透视列。从每个列值至少创建一列。

    3表示将来自此列的值放入作为透视的结果而创建的列中。

    (18) Unpivot: 将需要Unpivot的列选上,未经透视列只需Pass Through. Destination设置

    Unpivot归一列的列名,Pivot Key Value即为该列Unpivot后的值,Pivot Key value column name设置透视结果列名。

    (19) Row Count: Three steps are needed to configure your row count.

    1. Create a variable of integer type (the default, so that's easy) at a scope where you can see it from your DataFlow task.

    2. Now add your Row Count component to the DataFlow at the point in the process where you would like to count rows.

    3. Edit the Row Count component and set its VariableName property to the name of the variable you created.

    When you execute the Data Flow, the number of rows which pass through the Row Count component are written to the named variable. However, it's important to note that the variable value does not change until the Data Flow has completed.

    This is the same for all SSIS package variables referenced in the Data Flow,

    even when using the Script component, the values are locked when execution of the Data Flow starts and they are only updated at the end.

    (20) Multicast: 多播转换,即将数据复制多份。

    (21) Fuzzy: 执行数据清理任务

    a. Fuzzy Grouping: 模糊匹配对具有相似值的行进行分组。近似匹配数据的方法基于用户指定的相似性得分。

    b. Fuzzy Lookup: 模糊查找转换使用模糊匹配返回引用表中一个或多个接近的匹配项。

    (22) Export Column: 读取数据流中的数据,并将数据插入到文件中。指定数据列和包含要向其写入数据的文件的路径的列。从包含文本数据或图像数据的输入列的列表中进行选择。数据源的所有行都应包含“提取列”和“文件路径列”的定义。从包含文件路径和文件名的输入列的列表中进行选择。

    (23) Term Extraction: 从转换输入列的文本中提取字词,然后将这些字词写入转换输出列。

    Term Lookup: 从转换输入列的文本中提取的字词与引用表中的字词进行匹配,然后计算出查找表中的字词在输入数据集中出现的次数,并将计数与引用表中的此字词一并写入转换输出的列中。

  • 相关阅读:
    orcle id和执行计划(转)
    mysql 授权
    nginx+php 安装手册
    为 MySQL 增加 HTTP/REST 客户端:MySQL UDF 函数 mysql-udf-http 1.0 发布
    Nginx提示502和504错误的解决方案
    error while loading shared libraries: xxx.so.x"错误的原因和解决办法
    lnmp memcache出问题
    Nginx下实现pathinfo及ThinkPHP的URL Rewrite模式支持
    Nginx代理与负载均衡配置与优化
    curl+ post/get 提交
  • 原文地址:https://www.cnblogs.com/Ammy/p/1711943.html
Copyright © 2011-2022 走看看