Kettle之“获取文件名”

  收到的需求是这样的:有几百个文本文件,每个文件内容的格式相同,都是有固定分隔符的两列,每个文件有几千行记录。现在需要把这些文件的内容导入一个表,除了文件中的两列,还要存一列记录对应的文件名。
  作为一个搞数据库的,导入数据本来是小事一桩,可这有几百个文件要手工逐个处理未免太麻烦了,于是想起了Kettle。Kettle的转换处理数据流,其中有一个“获取文件名”的输入对象,可以使用它在导入文件数据时添加上文件名字段,而且支持正则表达式同时获取多个文件名,正好适用此场景。下面为实现步骤。

1. 新建一个转换,包含“获取文件名”、“文本文件输入”、“表输出”三个步骤,如下图所示。

Kettle之“获取文件名”_第1张图片

2. “获取文件名”如下图所示。

Kettle之“获取文件名”_第2张图片

注意:正则表达式的*前面要加一个“.”,否则报错。

3. “文本文件输入”如下面两图所示。

Kettle之“获取文件名”_第3张图片

Kettle之“获取文件名”_第4张图片

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

4. “表输出”如下面两图所示。

Kettle之“获取文件名”_第5张图片

Kettle之“获取文件名”_第6张图片


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

你可能感兴趣的:(BI,MySQL)