zoukankan      html  css  js  c++  java
  • OleDB Destination 用法

    第一部分:简介

    OleDB Destination component 是将数据流load 到destination,共有5种Data Access Mode,一般的Destination component 内部实现的原理是使用 insert 语句将数据插入到 target table 中。

    如果 OleDB Destination component 选中的 Data Access Mode 使用 Fast load 选项,那么组件使用的 sql command 发生变化,由insert 变成 bulk insert。

    如果Data Access Mode 不使用Fast Load 选项,Destination component使用 insert 子句将数据插入到database中,如果Data Access Mode 使用 Fast load 选项,Destination component 使用 bulk insert 子句将数据插入到 target table 中,fast load option 显著提高输入插入的 performance。

    1,如果 destination table 不存在,可以点击 New 按钮,component自动生成create table 的tsql 脚本,生成 destination table。

    CREATE TABLE [OLE DB Destination] (
        [code] varchar(10),
        [name] varchar(10)
    )

    MSDN上对 New 的用法介绍如下

    Create a new table by using the Create Table dialog box.

    When you click New, Integration Services generates a default CREATE TABLE statement based on the connected data source. This default CREATE TABLE statement will not include the FILESTREAM attribute even if the source table includes a column with the FILESTREAM attribute declared. To run an Integration Services component with the FILESTREAM attribute, first implement FILESTREAM storage on the destination database. Then, add the FILESTREAM attribute to the CREATE TABLE statement in theCreate Table dialog box.

    2,Fast Load 选项

    当使用Fast Load 选项时,Destination 组件使用bulk insert来批量插入数据。

    Keep identity : 当目标表中存在Identity column时,如果不选中 Keep identity,那么 目标表中的Identity Column的值是自动生成的;如果选中Keep identity,那么目标表中的ID值和数据源保持相同。

    Keep Nulls:如果目标表为某一列设置了default约束,当数据流传递null给该列时,正常情况下会触发目标表的default约束。如果不选中Keep Nulls,那么目标表使用default value来填充数据列;如果选中Keep Nulls,那么目标表保持该列为null。

    Table Lock:如果选中,那么在插入数据之前,为整个destination table 加上表级锁。

    Check Constraints:检查插入数据到destination table的数据是否符合destination table 的 constraint,如果能够确定数据符合target table的constraint,那么不选中 Check Constraints 会显著提高performance。

    当插入大量数据的时候,适当控制 tempdb 和 transaction log的大小,能提高数据插入的的performance。

    Rows per batch:配置 bulk insert 每一个batch 插入的数据行。

    Maximum insert commit size:当插入指定数量的数据行时,commit 一个 transaction。

    Any constraint failure at the destination causes the entire batch of rows defined by FastLoadMaxInsertCommitSize to fail. 

    3,Sql Command  Mode

    当从 Data Access Mode list 中选择 Sql Command 时,组件需要 sql select query 子句,而不是 insert 语句。

    组件从Select 子句中获取 target table 的数据列的MetaData,设置 column mapping, 组件按照 column mapping 将数据插入到目标中。

    4,sql command mode 不支持 parameter

    The OLE DB destination does not support parameters. If you need to execute a parameterized INSERT statement, consider the OLE DB Command transformation.

    第二部分:Msdn对 OleDB Destination 的5 种 Data Access Mode的介绍如下

    Data access mode,Specify the method for loading data into the destination.

    Option

    Description

    Table or view

    Load data into a table or view in the OLE DB destination.

    Table or view - fast load

    Load data into a table or view in the OLE DB destination and use the fast load option. For more information about the fast load data access modes, which are optimized for bulk inserts

    Table name or view name variable

    Specify the table or view name in a variable.

    Table name or view name variable - fast load

    Specify the table or view name in a variable, and use the fast load option to load the data. For more information about the fast load data access modes, which are optimized for bulk inserts

    SQL command

    Load data into the OLE DB destination by using a SQL query.

     
    Data Access Mode Dynamic Options
    Each of the settings for Data access mode displays a dynamic set of options specific to that setting. The following sections describe each of the dynamic options available for each Data access mode setting.
    Data access mode = Table or view
    Name of the table or the view

    Select the name of the table or view from a list of those available in the data source.

     
    Data access mode = Table or view – fast load
    Name of the table or view

    Select a table or view from the database by using this list, or create a new table by clicking New.

    Keep identity

    Specify whether to copy identity values when data is loaded. This property is available only with the fast load option. The default value of this property is false.

    Keep nulls

    Specify whether to copy null values when data is loaded. This property is available only with the fast load option. The default value of this property is false.

    Table lock

    Specify whether the table is locked during the load. The default value of this property is true.

    Check constraints

    Specify whether the destination checks constraints when it loads data. The default value of this property is true.

    Rows per batch

    Specify the number of rows in a batch. The default value of this property is –1, which indicates that no value has been assigned.

    Maximum insert commit size

    Specify the batch size that the OLE DB destination tries to commit during fast load operations. The value of 0 indicates that all data is committed in a single batch after all rows have been processed.

    A value of 0 might cause the running package to stop responding if the OLE DB destination and another data flow component are updating the same source table. To prevent the package from stopping, set the Maximum insert commit sizeoption to 2147483647.

    If you provide a value for this property, the destination commits rows in batches that are the smaller of (a) the Maximum insert commit size, or (b) the remaining rows in the buffer that is currently being processed.

    Any constraint failure at the destination causes the entire batch of rows defined by Maximum insert commit size to fail.

    Data access mode = Table name or view name variable
    Variable name

    Select the variable that contains the name of the table or view.

    Data Access Mode = Table name or view name variable – fast load)
    Variable name

    Select the variable that contains the name of the table or view.

    Keep identity

    Specify whether to copy identity values when data is loaded. This property is available only with the fast load option. The default value of this property is false.

    Keep nulls

    Specify whether to copy null values when data is loaded. This property is available only with the fast load option. The default value of this property is false.

    Table lock

    Specify whether the table is locked during the load. The default value of this property is false.

    Check constraints

    Specify whether the task checks constraints. The default value of this property is false.

    Rows per batch

    Specify the number of rows in a batch. The default value of this property is –1, which indicates that no value has been assigned.

    Clear the text box in the OLE DB Destination Editor to indicate that you do not want to assign a custom value for this property.

     
    Maximum insert commit size

    Specify the batch size that the OLE DB destination tries to commit during fast load operations. The default value of 2147483647 indicates that all data is committed in a single batch after all rows have been processed.

    A value of 0 might cause the running package to stop responding if the OLE DB destination and another data flow component are updating the same source table. To prevent the package from stopping, set the Maximum insert commit sizeoption to 2147483647.

     
    Data access mode = SQL command
    SQL command text

    Enter the text of a SQL query, build the query by clicking Build Query, or locate the file that contains the query text by clicking Browse.

    The OLE DB destination does not support parameters. If you need to execute a parameterized INSERT statement, consider the OLE DB Command transformation.

    Build query

    Use the Query Builder dialog box to construct the SQL query visually.

    Browse

    Use the Open dialog box to locate the file that contains the text of the SQL query.

    Parse query

    Verify the syntax of the query text.

  • 相关阅读:
    插入排序—希尔排序(Shell`s Sort)原理以及Java实现
    八大排序算法原理以及Java实现(直接插入排序)
    HTTP与HTTPS的区别
    TCP/IP详解学习笔记(4)-ICMP协议,ping和Traceroute【转】
    TCP/IP详解学习笔记(3)-IP协议,ARP协议,RARP协议【转】
    中介者模式-Mediator
    命令模式-command
    桥接模式-Bridge
    迭代器模式-Iterator
    组合模式-Composite
  • 原文地址:https://www.cnblogs.com/zhengxingpeng/p/6688061.html
Copyright © 2011-2022 走看看