【IT168技术文档】
下面我们开始介绍一个普通而又平凡使用的流程
从工具栏中向控制流加入“数据流任务”,如下图
在连接管理器中,右键点击,选择“新建平面文件链接”
出现如下图,填写连接管理器的名称以及文件路径和文件名
说到此处,我们需要介绍一下有关平面文件连接的一些内容:
如上图所示,区域设置,代码页和Unicode选项是设置导入文件的字符集已经区域代码的,如果涉及到本地区之外的项目开发就需要多多注意了,考虑到当地的系统和语言设置,否则导出来的字符就会是乱码,比如日本的区域设置就应该是日语(日本) ,代码页就是932的代码,我们中国简体都是936中文
在格式栏中,可以根据导入平面文件的格式要求进行设置
系统提供了如上图所示的格式方法
1. 带分隔符
2. 固定宽度
3. 右边未对齐
带分隔符
这个分隔符的种类,按照实际情况进行,在设置格式之前最好能够清楚的知道平面文件的格式,否则会导致错误或者导入不正确的数据
对于的文本限定符,如果现在导入的表如下
create table t_test02 (a char(2), b int, c numeric(5,2) )
导入文本如下
'222','2324','232.44' '111','1114','911.44'
那么你的格式就可以选“带分隔符”,文本限定符就是“’”,分隔符就是“逗号{,}”
有的文本的第一行或者前几行是导入文本的一些说明信息,那么你就可以设置你要跳过的标题行数,
如果第一行是显示列的名称,就可以在“在第一个数据行中显示列名称”的选项中打勾
重要提示:
1. 在做ETL的需求和设计前,做好确定导入的数据文件的格式,不是每一种数据文件都可以使用分隔符来导入的,有的文件的字段内容设计到一些特殊的符号,比如财务账号就有可能是有$,有的地址信息中是有逗号,分号,冒号或者制表符号等等,具体还需要针对每一个文件的情况。如果可以的限制其他数据源导出数据格式的话,可以采用文本限制符号的方式来做比较稳妥,比如每个字段前后都加上^`~,或者其他的字符组合,比如上面的文本信息就可以加上:
^`~222^`~,^`~2324^`~,^`~232,44^`~
^`~111^`~,^`~1114^`~,^`~911,44^`~
加上了少有的符号后,会极大的减少ETL过程中由于数据不完整或者字符错位导致的错误。
2. 如果列中的数据不必是源数据类型分配的全角形式,那么最好更改列的数据类型。使每个数据行尽可能窄有助于优化传输数据时的性能,因为每行越窄,数据从源移动到目标就越快。
固定宽度
有的文本文件采用固定宽度的做法,每一行的数据都是定长的,采用固定宽度的方式导入数据比较合适(特别是有的文本数据是没有回车换行的),用列分隔的方式固定,如下图的黑线和红线,红线是用来分隔每一行数据的宽度,黑线是分隔每一列的宽度.