kettle读取文件目录下的数据结构一致的所有数据文件信息和内容

为了避免文本文件在导出的数据时过大,分别导出在多个文件文本中。怎么利用kettle读取文件目录下的数据结构一致的所有数据文件信息和内容?如下图所示:

kettle读取文件目录下的数据结构一致的所有数据文件信息和内容_第1张图片

其实在kettle中有step为Get File Names 和Text Input两个步骤,可以通过设置这两个步骤的属性来实现在文件目录下读取指定文件后缀名的文件的信息和数据。

通过这样的设置文件信息(文件名,大小,路径等)可以是一个流变量 ( Stream Variable),并且从上一个步骤中获取相应的值,这样就提供了无限的灵活性;

具体的属性设置如下:

Get File Names:选择一个文件目录,并设定目录下文件名的正则表达式。这里选择的是txt类型数据文件,因此正则表达式设为customers-.*\.txt$,选取F:\test目录下所有customers-开头并且后缀为.txt的文件

kettle读取文件目录下的数据结构一致的所有数据文件信息和内容_第2张图片

文本文件输入:下方从上一步骤获取文件名,步骤读取的文件名来自Get File Names步骤,在输入里的字段被当作文件名填写Get File Names输出的字段uri。

若是单纯的读取文件目录下指定文件数据,就不需要那么麻烦设置,直接在文本文件输入步骤中文件和规则表达式中按上图所示填写就可以了。

kettle读取文件目录下的数据结构一致的所有数据文件信息和内容_第3张图片

这里需要说明通过这种设置后文本文件输入中字段选项无法自动获取字段。不过可以先不设置从前一步骤获取文件名,利用这个步骤的自身属性先获取字段,然后再设置。

附:Pentaho Kettle Steps: Get File Names

获取文件相关信息字段信息如下

filename - 包括文件名称以及扩展名,以及文件路径的整体
short_filename - 仅仅包括文件名称以及扩展名称
path - 仅仅包括文件的路径
type ——类型:file/folder
exists
ishidden ——是否隐藏
isreadable ——是否只读
iswriteable ——是否可写
lastmodifiedtime —— 修改时间
size ——大小
extension ——扩展名
uri ——文件/目录的绝对路径
rooturi ——根路径

 

 

 

 

你可能感兴趣的:(数据结构,正则表达式,Stream,File,扩展,extension)