`

SSIS 经验总结

    博客分类:
  • SSIS
阅读更多

1、在Execute SQL Task组件中创建临时表,需要使用create显示创建,不能使用select into。

 

2、Dump数据到SqlServer中,存在数据文件情况下,Bulk Insert Task组件快于Data Flow Task。在Data Flow Task中,使用OLE DB Destination快于ADO NET Destination,设置OLE数据访问模式为fast。

如:

 

3、使用Bulk Insert Task直接从源DB导出数据到目标DB,需要先使用Data Flow Task将数据导入指定文件中。虽然Bulk速度很快,但是数据导入文件的速度受IO限制,所以当数据文件不存在情况下使用Bulk并不理想。

 

4、Lookup is a case sensitive and blank space sensitive.
So need trim the lookup column data and use either UPPER/LOWER case for comparison.

 

5、数据类型对照

SSIS->DB

double-precision float [DT_R8]->FLOAT

string [DT_STR]->CHAR

four-byte signed integer [DT_I4]->INT

database timestamp [DT_DBTIMESTAMP]->DATETIME

 

6、Error:The multi-part identifier could not be bound.

解决:不使用alias别名,直接使用表名应用列

 

7、大批量数据的更新方法和速度

1)在Data Flow Task中使用OLE DB Command直接更新

具体做法可参见:http://blog.csdn.net/zjcxc/article/details/1202876

 

2)先使用Execute SQL Task 创建临时表,然后使用Data Flow Task数据导入临时表,最后使用Execute SQL Task 执行Update 语句,根据临时表更新目标表

具体做法可参见:http://bidn.com/blogs/DanMatisis/ssas/689/ssis-updating-a-table-with-a-temp-table-not-an-ole-db-command

 

3)在数据库中创建物理表,使用Data Flow Task数据导入物理表,最后使用Execute SQL Task 执行Update 语句,根据物理表更新目标表

具体做法可参见:http://www.ssistalk.com/2009/10/29/ssis-why-is-my-data-flow-so-slow-with-an-ole-db-command-component/

 

速度1<2<3

原理:

1)OLE DB Command是逐条更新,每条数据的更新都需要扫描全表,慢于后两种方法的批量数据更新

2)数据导入物理表可以使用fast load(参考上面第2条) 方式,速度快于导入临时表

 

注意:

如果使用第2种方法,必须将目标数据源的Connection的属性RetainSameConnection设置成true。这样视为保证在Execute SQL Task 中创建的临时表可以继续在Data Flow Task中使用。大家都知道数据库一个连接一旦关闭,这个连接所创建的临时表也就消失,就是这个原因。

在Data Flow Task中,使用OLE DB Destination将数据导入临时表时,必须将OLE DB Destination的属性ValidateExtranalMetadata设置成false。因为在package运行之前,临时表是不存在的,所以一旦验证package就会失败。

在OLE DB Destination中使用New按钮创建临时表时,临时表名需要使用[]括起来。如Create table [##Temptable]...

 

8、like关键字的替代方法

Column LIKE '%abc%'

SSIS Expression:

FINDSTRING([Column],"abc",1)>0

 

Column LIKE 'abc%'

SSIS Expression:
SUBSTRING([
Column],1,3) == "abc"

or

LEFT( [ Column] , X) == "value"

or

FINDSTRING([Column],"abc",1)==1

 

Column LIKE '%abc'

SSIS Expression:

RIGHT( [Column] , X) == "value"

or

LEFT(REVERSE([Column] ), X) == "value"

 

9、case when 关键字的替代方法

case when column = "a" then 1

when column = "b" then 2

else 3 end

<Expression>

column == "a"?1:column == "b"?2:3

 

10、error:cannot convert between unicode and non-unicode string data types.

Resolve:convert the column data type to DT_STR (If you know the size)/ DT_TEXT  in the data convertion transformation.

 

11、Convert Blank/Empty into NULL use Derived Column

1- set the DEFAULT(NULL) for EVERY column that needs this behaviour

2-set up some Derived Column option in the package to return NULL if the value is missing.

 

TRIM(<YourColumnName>) == "" ? (DT_STR,4,1252)NULL(DT_STR,4,1252) : <YourColumnName>

 

FYI:http://www.bidn.com/blogs/DonnyJohns/ssas/1919/handling-null-or-implied-null-values-in-an-ssis-derived-column

  • 大小: 4.5 KB
分享到:
评论

相关推荐

    SSIS基础指南 SSIS 基础指南

    无论你是否计划将SQL Server数据库转换服务(DTS)包迁移到SQL Server集成服务(SSIS)或在SQL ...这一指南主要是包括SSIS的相关基础知识、技巧帮助你进行SSIS调整,还介绍了SSIS有经验的一些用户的具体信息等等。

    SSIS 实例一个(SSIS 基本应用)

    SSIS 实例一个SSIS 实例一个(SSIS 基本应用)

    使用SQL Server作业执行SSIS包

    这个方法是执行SSIS包最常见的方法。在Management Studio下连接数据引擎,然后在Agent下找到Jobs建立作业。 借助作业里的Schedule,可以让SSIS包在一个指定的周期里进行运行。 在作业的步骤里,可以指定步骤为SSIS包...

    BI入门实例,SSIS入门实例,SSAS入门实例,SSRS入门实例微软BI,SSIS,SSAS,SSRS实战经验笔记

    全实战经验记录从技术选型到如何搭建企业数据平台bi。内容见目录: 开发方案选择 九大数据仓库方案特点 数据仓库方案选择 开发环境配置 安装配置前准备 软件准备 硬件准备 安装配置 数据库安装 VS安装 SSDT安装 ...

    SSIS版Hello World

    一个SSIS版的Hello World,很好的说明了如何使用这几种编程结构 SSIS除了提供了顺序,循环,选择编程结构,同时也提供了并行处理的能力,这点需要特别注意。包 Parallelizing1.dtsx和包Parallelizing2.dtsx说明...

    SSIS:从MsSql到Mysql

    本文档仅描述了从MS Sql 到Mysql导数据时,SSIS包搭建的过程,不具体阐述SSIS的使用。

    SSIS入门介绍及示例.docx

    推荐给想学习SSIS入门级同学!!! 1.如何创建SSIS project 2.SSIS基本控件介绍 3.两个示例  1)发送邮件  2)数据流任务(数据库-&gt;文本文档)

    SSIS传数据到Oracle

    SSIS传数据到Oracle

    SSIS资料整理大礼包

    整理了常见的一些SSIS资料,本着共同学习的目的,贡献给大家,里面包括一些实例和PPT以及部分pdf资料

    SSIS简要介绍及使用说明

    SSIS 数据仓库 sqlserver2005 集成服务

    SSIS使用手册

    SSIS使用手册包括时间戳应用、SSIS中VB代码使用及方法、SSIS脚本使用,包配置使用及SSIS基础知识讲解(数据流,控制流,容器,表达式等概念讲解)和SSIS控件的讲解,最后附带一个SSIS实例

    Introduction to SSIS and Migration of DTS to SSIS

    Introduction to SSIS and Migration of DTS to SSIS

    SSIS Package Execution Methods

    SSIS Package Execution Methods

    ssis,ssas培训

    1、“01 参考资料列表”文件夹——该文件夹包含一个名为“参考资料列表.doc”的文档,文档列出了本次考核所涉及到的五部分内容(SQL管理及T-SQL、SSIS及SSAS、网络及硬件、Oracle及DB2,其他)的知识点和考查点,...

    一步一步部署SSIS包图解教程

    Microsft SQL SERVER BI Package,一步一步部署SSIS包图解教程

    SSIS整合文档

    SQL SERVER2005的SSIS最全整合教材

    SSIS 2005 ROW_NUMBER组件

    SSIS ROW_NUMBER 组件.............

    SSIS高级设计

    SQL SERVER SSIS的高级技巧

    SSIS列子入门

    SSIS入门教程,里面的例子非常适合初学者和进阶者,共同学历,提高

    ssis(SQL Server Integration Services)

    MS SQL Server 2005 的SSIS(SQL Server Integration Services),它和其他的ETL工具,如Informatic 在对ETL的处理手法上大同小异,区别不大,都是按照ETL和DW的概念来开发和使用的。

Global site tag (gtag.js) - Google Analytics