SSIS Design1: 源数据提取

Posted 悦光阴

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SSIS Design1: 源数据提取相关的知识,希望对你有一定的参考价值。

数据量的大小由两个方面决定:行的宽度和数据行的数量,为了减少ETL运行的时间,可以从源数据的提取上做优化,从数据源的输入上控制数据的质量和大小,减少转换和IO。

一,减少行的宽度

1,只加载需要的数据列

在Data Flow中,源适配器允许选择加载的Table 或View,虽然有复选框,从而过滤掉不需要的数据列,但是,问题是,过滤过程发生Client,换句话说,所有的列从DB中被传递到SSIS 源适配器(产生大量的IO开销),然后在SSIS中删除选中额数据列。建议使用SQL Command,在select 子句中只加载需要的数据列。

2,在提取数据期间将数据转换为窄的数据类型

数据锐化是指将数据值转换为可以充分表示其值的最小数据类型,例如,如果有一个column,数据类型是int,值只有 0 和 1,那么将数据类型转换为bit更好,在64bit系统中,每行的长度至少减少3byte。

3,删掉字符串类型两端的空格

使用ltrim(rtrim(String_Column))

二,减少数据行数

1,使用Where条件,限制返回的数据行数

使用DateTime,row_version等字段来实现增量更新,而不是将重复的数据重复加载

2,使用Where条件,过滤无效的数据

对于一些无效的数据,可以使用where 子句直接过滤,保证进入ETL的都是有效的数据。

三,在提取数据期间

1, 解决幻数

幻数是一个用来表示未知或NULL值的值在没有NULL的DB中,例如,Column 使用 not null 定义,幻数是必需的。

2,数据排序

在SQL Server中对数据排序,会比在SSIS中使用 sort 转换更高效。

 

以上是关于SSIS Design1: 源数据提取的主要内容,如果未能解决你的问题,请参考以下文章

ssis 找不到任何具有 odbc 连接的表

在SSIS任务中避免使用Jade Db源连接超时

SSIS - 连接到新数据库

SSIS之数据流任务

SQL - 使用 SSIS 的增量插入?

SSIS - 修复源数据中数据类型不正确的数据