幼敏悟过人,读书辄成诵。这篇文章主要讲述kettle庖丁解牛第5篇之文本文件输入相关的知识,希望能为你提供帮助。
引言上一篇文章中,我们介绍了kettle这款软件的主要界面,让大家对kettle有了一个大体的印象。本篇文章我们来讲解组件:文本文件输入
转换转换(transaformation)是ETL解决方案中最主要的部分,它处理抽取、转换、加载各种对数据行的操作。
创建转换
我们要做的ETL操作,全是在转换中设计的,所以我们要先创建一个转换。
保存转换
给你新建的转换,起个名字,并保存
文本文件输入可通过此组件读取大量不同的文本文件,可指定读取的文件列表,或者用正则表达式表示的目录列表,适用于读取txt与csv文件。
a、文件名称指定
1、文件标签指定数据源文件,点击“浏览”按钮,浏览本地的txt文件。点击"增加"按钮,你可以添加一个文件到"选择文件"中,如下所示:
2、你也可以用指定正则表达式通配符的形式来搜索文件。正则表达式比简单的用"?"和"*" 通配符更有效。
文件名
| 正则
| 选择的文件
|
/dafeige/
| .*userdata.*/.txt
| 所有在/dafeige/目录下的并且文件名包含userdata、以txt为后缀的文件。
|
/dafeige/
| AAA.*
| 所有在/dafeige/目录下的并且文件名以AAA 开头的文件。
|
/dafeige/
| [A-Z][0-9].*
| 所有在/dafeige/目录下的并且文件名以字母开头、紧接着一个数字的文件。
|
b、内容指定
【kettle庖丁解牛第5篇之文本文件输入】1、内容标签允许你指定正在读取的文本文件的格式
2、下面是标签的选项列表
选项
| 描述
|
文件类型
| 可以是CSV 或者Fixed length(固定长度)。
|
分隔符
| 在文本的单行中,一个或多个字符将被用来分隔字段,
比较有代表性的是;
或者一个tab 制表符。
|
文本限定符
| 一些字段能够被一对允许分隔的字符来封闭。封闭字符
串是可选的。
|
逃逸字符
| 如果你的数据中有逃逸字符,就指定逃逸字符(或者逃
逸字符串)。如果\\作为逃逸字符,文本’Not the nine
o\\’clock news.’(’作为封闭字符),将被解析成Not
the nine o’clock news.
|
头部/头部行数量
| 如果你的文本文件有头部行就使用这个。你可以指定头
部行出现的次数。
|
尾部/尾部行数量
| 如果你的文本文件有尾部行就使用这个。你可以指定尾
部行出现的次数。
|
包装行/包装行数量
| 利用这个来处理被某些页限制包装的数据行。注:头部
和尾部从来不考虑被包装。
|
分页布局/每页行数/文档头部行
| 在行打印机上打印的时候,你可以用这个选项作为最终
的手段。用头部行的数量来跳过介绍性的文本,用每页
的行数来定位数据行。
|
压缩
| 如果你的文件是ZIP 文件或者GZIP 归档文件,就启用
这个。注:此刻归档文件中仅仅第一个文件被读取。
|
没有空行
| 不往下一步发送空行。
|
文件名字段名称
| 包含文件名的字段名称。
|
输出包含行数
| 如果你想行数作为输出的一部分,可以启用这个。
|
行数字段名称
| 包含行数的字段名称。
|
根据文件获取行数
| 允许每个文件重置的行数。
|
格式
| 可以是DOS、UNIX 或者混合模式。UNIX 行终止可以是
回车,DOS 中可以是回车或者换行。如果你选择混合模
式,将不会验证。
|
编码方式
| 指定文本文件编码方式。如果不设置就使用系统默认的
编码方式。如果想用Unicode,可以指定UTF-8 或者
UTF-16。第一次使用的时候,Spoon 将搜索系统,寻找
可用的编码。
|
记录数量限制
| 设置读取记录的行数。0 代表读取所有的。
|
解析日期时是否严格要求
| 如果你想严格的解析数据字段,可以禁用这个选项。如
果启用的时候,Jan 32nd 将变成Feb 1st。
|
本地日期格式
| 在本地日期常常被解析为“February wnd,2006”的形
式,在用法语本地化的系统中日期将不会被解析,因为
在法语本地化中February 不能理解。
|
添加文件名
| 如果你想文件名作为输出的一部分,可以启用这个。
|
c、错误处理
当错误发生的时候,错误处理标签允许你指定这个步骤将重新做些什么。
下面是标签的选项列表
选项
| 描述
|
忽略错误
| 如果在解析的时候忽略错误,就指定这个选项。
|
忽略错误文件
| 使用这个选项来跳过那些出现错误的文件。
|
错误文件字段名
| 在输出流行中增加一个字段,这个字段将包含错误发生的文件字段名。
|
文件错误信息字段名
| 在输出流行中增加一个字段,这个字段将包含错误发生的文件信息
|
跳过错误行
| 使用这个选项来跳过那些出现错误的行。你可以生成另外的文件来包含发生错误的行号。如果不跳过错误行,解析错误字段将是空的。
|
错误计数字段
| 在输出流行中增加一个字段,这个字段将包含错误发生的行数。
|
错误字段文件名
| 在输出流行中增加一个字段,这个字段将包含错误发生的文件名。
|
错误文本字段名
| 在输出流行中增加一个字段,这个字段将包含解析错误发生字段的描述。
|
告警文件目录
| 当警告发生的时候,它们将被放进这个目录。文件名将是<
警告目录>
/文件名.<
日期时间>
.<
警告文件扩展>
。
|
错误文件目录
| 当错误发生的时候,它们将被放进这个目录。文件名将是<
错误文件目录>
/文件名.<
日期时间>
.<
错误文件扩展>
。
|
失败行数文件目录
| 当解析行的时候发生错误,行号将被放到这个目录。文件名将是<
错误行目录>
/文件名.<
日期时间>
.<
错误行扩展>
。
|
d、过滤
在过滤标签中,你可以指定文本文件中要过滤的行。
下面是标签的选项列表
选项
| 描述
|
过滤字符
| 搜索字符串。
|
过滤位置
| 在行中过滤字符串必须存在的位置。0 是起始位置,如果你指定一个小于0 的值,过滤器将搜索整个字符。
|
停止在过滤器
| 如果你想在文本文件遇到过滤字符的时候,停止处理,就指定Y。
|
积极匹配
| 是: 将符合过滤器的数据保留, 否: 不保留符合过滤器的数据
|
e、字段
设定要导入的字段。
下面是标签的选项列表
选项
| 描述。
|
名称
| 设置要在输出流中显示的字段名称。
|
类型
| 字段类型(String、Date、Number 等)。
|
格式
| 控制输入数据的格式(整数、有小数位、日期格式等)
|
位置
| 不用管它
|
长度
| 对于Number:有效数的数量。
对于String:字符的长度。
对于Date:打印输出字符的长度(例如4 代表返回年份)。
|
精度
| 对于Number:浮点数的数量。
对于String,Date,Boolean:未使用。
|
货币类型
| 用来解释如$10,000.00 的数字。
|
小数
| 小数点可以是”.”(10;
000.00)或者”,”(5.000,00)。
|
分组
| 分组可以是”.”(10;
000.00)或者”,”(5.000,00)。
|
Null If
| 空值如何处理。
|
默认
| 字段为空的时候的默认值。
|
去空字符串
推荐阅读
|