kettle庖丁解牛第5篇之文本文件输入

Posted 飞哥大数据

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了kettle庖丁解牛第5篇之文本文件输入相关的知识,希望对你有一定的参考价值。

引言

上一篇文章中,我们介绍了kettle这款软件的主要界面,让大家对kettle有了一个大体的印象。本篇文章我们来讲解组件:文本文件输入

转换

转换(transaformation)是ETL解决方案中最主要的部分,它处理抽取、转换、加载各种对数据行的操作。

创建转换

我们要做的ETL操作,全是在转换中设计的,所以我们要先创建一个转换。

kettle庖丁解牛第5篇之文本文件输入_kettle

kettle庖丁解牛第5篇之文本文件输入_文本文件输入_02

保存转换

kettle庖丁解牛第5篇之文本文件输入_kjb_03

给你新建的转换,起个名字,并保存

kettle庖丁解牛第5篇之文本文件输入_kettle_04

kettle庖丁解牛第5篇之文本文件输入_kettle_05

文本文件输入

可通过此组件读取大量不同的文本文件,可指定读取的文件列表,或者用正则表达式表示的目录列表,适用于读取txt与csv文件。

kettle庖丁解牛第5篇之文本文件输入_文本文件输入_06

kettle庖丁解牛第5篇之文本文件输入_kjb_07

a、文件名称指定

1、文件标签指定数据源文件,点击“浏览”按钮,浏览本地的txt文件。点击"增加"按钮,你可以添加一个文件到"选择文件"中,如下所示:

kettle庖丁解牛第5篇之文本文件输入_转换换_08

kettle庖丁解牛第5篇之文本文件输入_文本文件输入_09

kettle庖丁解牛第5篇之文本文件输入_kjb_10

kettle庖丁解牛第5篇之文本文件输入_转换换_11

2、你也可以用指定正则表达式通配符的形式来搜索文件。正则表达式比简单的用"?"和"*" 通配符更有效。

文件名

正则

选择的文件

/dafeige/

.*userdata.*/.txt

所有在/dafeige/目录下的并且文件名包含userdata、以txt为后缀的文件。

/dafeige/

AAA.*

所有在/dafeige/目录下的并且文件名以AAA 开头的文件。

/dafeige/

[A-Z][0-9].*

所有在/dafeige/目录下的并且文件名以字母开头、紧接着一个数字的文件。

kettle庖丁解牛第5篇之文本文件输入_kjb_12

b、内容指定

1、内容标签允许你指定正在读取的文本文件的格式

kettle庖丁解牛第5篇之文本文件输入_转换换_13

2、下面是标签的选项列表

选项

描述

文件类型

可以是CSV 或者Fixed length(固定长度)

分隔符

在文本的单行中,一个或多个字符将被用来分隔字段,

比较有代表性的是;或者一个tab 制表符。

文本限定符

一些字段能够被一对允许分隔的字符来封闭。封闭字符

串是可选的。

逃逸字符

如果你的数据中有逃逸字符,就指定逃逸字符(或者逃

逸字符串)。如果\\作为逃逸字符,文本’Not the nine

o\\clock news.(’作为封闭字符),将被解析成Not

the nine oclock news.

头部/头部行数量

如果你的文本文件有头部行就使用这个。你可以指定头

部行出现的次数。

尾部/尾部行数量

如果你的文本文件有尾部行就使用这个。你可以指定尾

部行出现的次数。

包装行/包装行数量

利用这个来处理被某些页限制包装的数据行。注:头部

和尾部从来不考虑被包装。

分页布局/每页行数/文档头部行

在行打印机上打印的时候,你可以用这个选项作为最终

的手段。用头部行的数量来跳过介绍性的文本,用每页

的行数来定位数据行。

压缩

如果你的文件是ZIP 文件或者GZIP 归档文件,就启用

这个。注:此刻归档文件中仅仅第一个文件被读取。

没有空行

不往下一步发送空行。

文件名字段名称

包含文件名的字段名称。

输出包含行数

如果你想行数作为输出的一部分,可以启用这个。

行数字段名称

包含行数的字段名称。

根据文件获取行数

允许每个文件重置的行数。


格式

可以是DOSUNIX 或者混合模式。UNIX 行终止可以是

回车,DOS 中可以是回车或者换行。如果你选择混合模

式,将不会验证。

编码方式

指定文本文件编码方式。如果不设置就使用系统默认的

编码方式。如果想用Unicode,可以指定UTF-8 或者

UTF-16。第一次使用的时候,Spoon 将搜索系统,寻找

可用的编码。

记录数量限制

设置读取记录的行数。0 代表读取所有的。

解析日期时是否严格要求

如果你想严格的解析数据字段,可以禁用这个选项。如

果启用的时候,Jan 32nd 将变成Feb 1st

本地日期格式

在本地日期常常被解析为“February wnd,2006”的形

式,在用法语本地化的系统中日期将不会被解析,因为

在法语本地化中February 不能理解。

添加文件名

如果你想文件名作为输出的一部分,可以启用这个。

c、错误处理

当错误发生的时候,错误处理标签允许你指定这个步骤将重新做些什么。

kettle庖丁解牛第5篇之文本文件输入_kjb_14

下面是标签的选项列表

选项

描述

忽略错误

如果在解析的时候忽略错误,就指定这个选项。

忽略错误文件

使用这个选项来跳过那些出现错误的文件。

错误文件字段名

在输出流行中增加一个字段,这个字段将包含错误发生的文件字段名。

文件错误信息字段名

在输出流行中增加一个字段,这个字段将包含错误发生的文件信息

跳过错误行

使用这个选项来跳过那些出现错误的行。你可以生成另外的文件来包含发生错误的行号。如果不跳过错误行,解析错误字段将是空的。

错误计数字段

在输出流行中增加一个字段,这个字段将包含错误发生的行数。

错误字段文件名

在输出流行中增加一个字段,这个字段将包含错误发生的文件名。

错误文本字段名

在输出流行中增加一个字段,这个字段将包含解析错误发生字段的描述。

告警文件目录

当警告发生的时候,它们将被放进这个目录。文件名将是<警告目录>/文件名.<日期时间>.<警告文件扩展>

错误文件目录

当错误发生的时候,它们将被放进这个目录。文件名将是<错误文件目录>/文件名.<日期时间>.<错误文件扩展>

失败行数文件目录

当解析行的时候发生错误,行号将被放到这个目录。文件名将是<错误行目录>/文件名.<日期时间>.<错误行扩展>

d、过滤

在过滤标签中,你可以指定文本文件中要过滤的行。

kettle庖丁解牛第5篇之文本文件输入_转换换_15

下面是标签的选项列表

选项

描述

过滤字符

搜索字符串。

过滤位置

在行中过滤字符串必须存在的位置。0 是起始位置,如果你指定一个小于0 的值,过滤器将搜索整个字符。

停止在过滤器

如果你想在文本文件遇到过滤字符的时候,停止处理,就指定Y

积极匹配

是: 将符合过滤器的数据保留, 否: 不保留符合过滤器的数据

e、字段

设定要导入的字段。

kettle庖丁解牛第5篇之文本文件输入_文本文件输入_16

下面是标签的选项列表

选项

描述。

名称

设置要在输出流中显示的字段名称。

类型

字段类型(StringDateNumber 等)。

格式

控制输入数据的格式(整数、有小数位、日期格式等)

位置

不用管它

长度

对于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篇之文本文件输入的主要内容,如果未能解决你的问题,请参考以下文章

kettle庖丁解牛第27篇之多种数据源统一输出

kettle庖丁解牛第14篇之JSON输入

kettle庖丁解牛第10篇之表输入

kettle庖丁解牛第28篇之oracle数据迁移到mysql库

kettle庖丁解牛第20篇之JSON输出

kettle庖丁解牛第21篇之SQL文件输出

(c)2006-2024 SYSTEM All Rights Reserved IT常识