读书人

关于SSIS处置csv文件

发布时间: 2012-11-25 11:44:31 作者: rapoo

关于SSIS处理csv文件

以下内容转自:http://blog.sina.com.cn/s/blog_620e630f0100vaen.html

?

SSIS中处理平面文件的时候需要一个Flat File Source的组件,我们可以在SSIS Connection manager for Flat Files进行定义。这里的Flat File可以是txt,csv,xls等格式的文件。下面就以一个实际的例子给大家说明。

Example:?????????关于SSIS处置csv文件注意看下面:
关于SSIS处置csv文件

File name:???键入要在平面文件连接中使用的路径和文件名????????? Locale:??????? 指定区域设置,以便为排序以及日期和时间格式提供语言特定的信息 Code page:? 指定非 Unicode 文本的代码页,这里因为我的整个开发环境是英文的所以默认为 ANSI - Latin I Format:?????? 指示文件是否使用带分隔符、固定宽度或右边未对齐的格式。

说明

Delimited

??????????????? 各列之间由在“列”页上指定的分隔符隔开。

Fixed width

??????????????? 列的宽度固定。

Ragged right

??????????????? 在右边未对齐的文件中,除最后一列之外的每一列的宽度都固定。它由行分隔符分隔。

Header row delimiter:

?

值说明

{CR}{LF}

标题行由回车符和换行符的组合分隔。

{CR}

标题行由回车符分隔。

{LF}

标题行由换行符分隔。

Semicolon?{;}

标题行由分号分隔。

Colon{:}

标题行由冒号分隔。

Comma?{,}

标题行由逗号分隔。

Tab{t}

标题行由制表符分隔。

VerticalBar{|}

标题行由竖线分隔。

Header rows to skip:? 指定要跳过的标题行数或初始数据行数(如果有的话) Column names in the first data row: 指示在第一个数据行中是否要求列名或提供列名

在进行了一些设置后,我们看到的例子:

关于SSIS处置csv文件

实际上我们需要得到的数据应该是这样的:

Date????????????????????????????????????????????Most Popular Site Sections???????????????????????????????????????????????? Page Views

Feb 1?2009????????????????????????????????? hotel serch results??????????????????????????????????????????????????????????????? 520417

分析:

    CSV逗号分隔值文件(Comma Separated value),是一种用来存储数据的纯文本文件格式,通常用于电子表格或数据库软件。源文件中的数据??? Feb 1,2009???????????????????????? hotel search results???????????? 520,417Page Views 一列的数据是科学计数,而且逢科学计数就有{"}出现

怎样解决这个难题,最初想到的办法是借助临时表,于是就有了对于csv文件中{,}和{"}的处理这篇文章。后来查阅了很多资料,如下有很多对csv文件处理的文章都有不错的借鉴之处。

    SSIS CSV(1)SSIS CSV(2)

这样的方法都是先把源数据导入一列然后对这个列进行操作,还不是很理想。最后客户建议了一下,觉得这样的方法太棒了。其实我们在处理数据的时候忽视了Text Qualifier属性

Text Qualifier: 指定要使用的文本限定符。例如,可以指定文本字段必须用引号括起来。

OK.这样问题就迎刃而解了。????????????
?关于SSIS处置csv文件

请注意上面红色标识的部分。

处理后的文件如下:

关于SSIS处置csv文件

这样数据就和我们期望的很接近了,接下来的事情就可以借助Derived Column这个组件来处理,然后倒入目的表就OK. 关于怎样使用Derived Column处理的例子请等待.

读书人网 >其他数据库

热点推荐