kettle庖丁解牛第5篇之文本文件输入
Posted 飞哥大数据
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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、内容指定
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 | 空值如何处理。 |
默认 | 字段为空的时候的默认值。 |
去空字符串以上是关于kettle庖丁解牛第5篇之文本文件输入的主要内容,如果未能解决你的问题,请参考以下文章 |