通过文件抽取组件,可以读取单个或多个文本文件、指定读取的文件列表或者用正则表达式表示的目录列表。该组件可支持抽取服务端本地文件或目录、FTP文件或目录、SFTP文件或目录、HTTP文件。
双击画布中的文件抽取组件,弹出文件抽取窗口。
输入步骤名称,名称要求为非空,2到50个字符。
分别配置文件、内容、错误处理、字段等页签下的相关参数项。配置完成后,单击<确定>按钮即可完成配置。
预览:在选中文件,且在“字段”页签成功获取字段或者手动输入字段后,则可以操作<预览>按钮;单击该按钮,可以根据设置的预览行数预览数据;若出现文字乱码,请尝试在“内容”页签下更换编码方式。
显示文件名:在利用正则表达式获取文件名时,单击<显示文件名>可显示满足正则表达式的文件名,并可以选择读取文件。文件名展示页面支持文件的名称过滤和正则过滤。
文本抽取组件其中的获取字段得到的值是按照行列索引,无法替换顺序。请不要随意删除或者修改获取到的字段顺序。
对于zip文件的抽取,暂不支持自动获取字段,请手动增加相应字段。
文件页签的“要求”参数项如果填写“是”,则预览和实际运行抽取任务时的错误处理会将文件输出写入到指定目录,请适时清理。
文件或目录:定义文件名字或整个目录或目录下的文件。可定义服务端本地文件或目录、FTP文件、SFTP文件、HTTP文件。选择要抽取的文件类型,根据输入框中的示例格式填写文件或目录。如果是服务端本地文件,路径需要设置为/usr/local/dig/data,相应的文件需要拷贝到di-web容器或di-executor容器中。拷贝操作可参见数据集成服务端本地文件上传及下载
增加:填写正确的文件或目录、规则表达式、正则表达式(排除)后,单击<增加>按钮可把填写的内容添加到下面“选中的文件”表格中。也可直接单击<增加>按钮,在下面的“选中的文件”表格中增加一行,然后直接在表格中填写。
浏览:当定义为FTP文件或目录时,该选项可用。单击<浏览>按钮可选择FTP类型的数据源连接。
正则表达式:用正则表达式来适配定义的文件目录中的文件。例如:可读取所有以.txt为后缀的文件。
正则表达式(排除):用正则表达式排除规则表达式中的一部分不需要的文件。
一些简单的正则表达式用法如表-1。
选项 |
描述 |
说明 |
/dirA/ |
.*userdata.*\.txt |
在目录/dirA/中找到所有名字中包含userdata并且以.txt为后缀的文件 |
/dirB/ |
AAA.* |
在目录/dirB/中找到所有名字以AAA开头的文件 |
/dirC/ |
[ENG:A-Z][ENG:0-9].* |
在目录/dirC/中找到所有名字以大写字母开头,且同时后面跟着数字的文件,即所有以(A0-Z9)开头的文件 |
选择中文件:表格中包含了选中的文件列表以及属性定义。如果一个文件是需要的,但却不存在,那么就会生成错误。
操作:用于删除此行数据。
必须存在:定义当前文件是否必须存在,如果选择“是”,则必须存在该文件;如果选择“否”,表示该文件不是必要的。
包含子目录:如果选中的是一个目录,则该参数生效,定义是否包含子目录下的文件。
从以前的步骤接受文件名:启用选项可从先前步骤获取文件名。
从以前的步骤接受字段名:启用此选项可将步骤中的所有先前字段添加到步骤输出中。
步骤读取的文件名来自:从中读取文件名的步骤。
在输入里的字段被当作文件名:在此步骤中查找以确定要使用的文件名。
分隔符:指定在文本中分隔字段的字符,例如 ; 或者制表符。
文本限定符:指定在文本中限定字段的字符。
逃逸字符:指定文本中的转义字符。
头部:如果想有一个头部行,使这个选项可用(头部行数量可自定义)。
尾部:如果想有一个尾部行,使这个选项可用(尾部行数量可自定义)。
压缩:如果数据文件是在压缩文件中,需要选择对应的压缩文件类型。此时,只读取压缩文件中的第一个文件。非压缩文件时选择None。
分页布局:在处理用于在行式打印机上打印的文本时,请使用这些选项作为最后的手段。
每页记录行数:每一个分页记录的行数。
文档头部行:跳过所设置的头部行数并不向下一步骤传递。
没有空行:如果想过滤文件中的空行应使此选项可用。
在输出中包含文件名:在输出中选一个自定义字段作为文件名的字段。
文件名字段:自定义字段作为文件名的字段。
输出包含行数:在输出中自定义字段作为行号数字段。
行数字段名称:在输出中作为行号数的自定义字段。
按文件取行号:允许为每一个文件重新设置行号。
格式:设置文件的行分隔符格式。DOS格式可用于抽取Windows系统生成的文件,Unix格式可用于抽取Windows、Unix以及Mac系统下生成的文件(非Unix格式的文件建议先转换为Unix格式),mixed格式可用于抽取Windows、Unix以及Mac OS X版本的系统下生成的文件。
编码方式:指定文件使用的编码。如果空白表示使用操作系统缺省的编码。
记录数量限制:限制从文件中读取的数据行数,该配置项减去头部行数量才是实际读取行数。0表示不限制,小于头部行数量时至少读取一行。
解析日期时宽容要求:缺省勾选。对于非法的日期数据,勾选时可自动转换为合法数据,否则将提示错误。比如20180230在勾选时可自动解析为20180302,不勾选时将提示日期有误。
本地日期格式:用于解析已经完整写入的日期。
添加文件名:将文件名添加到结果文件名列表。
忽略错误:如果在获取数据时发生错误,可以选择忽略错误继续获取后面的数据,反之,将停止获取数据。
忽略错误文件:忽略错误文件,否则将运行失败。
异常文件字段名:记录文件在打开时出现异常情况的文件名称字段,通过指定false流步骤输出。
文件异常信息字段名:记录异常文件的异常信息字段,通过指定false流步骤输出。
跳过错误行:如果在读取一行数据时发生错误,可以选择忽略错误返回一行空数据并继续读取后面的数据。
错误计数字段:将字段添加到输出流行; 此字段包含该行上的错误数。
错误字段字段名:将字段添加到输出流行; 此字段包含发生错误的字段名称。
错误文本字段:将字段添加到输出流行; 此字段包含已发生的解析错误的描述。
告警文件目录:生成警告时,将存放到此目录(目录必须存在,否则报错。文件名系统会自行创建,其拓展名默认是warning)。
错误文件目录:发生错误时,将存放到此目录(目录必须存在,否则报错。文件名系统会自行创建,其拓展名默认是error)。
失败的记录数文件目录:当某一行发生解析错误时,行号将存放在此目录(目录必须存在,否则报错。文件名系统会自行创建,其拓展名默认是line)。
操作:用于删除此行数据。
过滤字符串:要搜索的字符串。
过滤器位置:过滤器字符串必须位于该行的位置。零(0)是该行中的第一个位置。如果在此处指定低于零(0)的值,则在整个字符串中搜索过滤器字符串。
停止在过滤器:如果要在遇到过滤字符串时停止处理当前文本文件,请在此处指定是。
积极匹配:如果要处理与过滤器匹配的行,请在此处指定是;如果要忽略此类行,则指定否。
获取字段:从文件中获取字段。如果选择从前面的步骤获取文件名,则该功能失效,只能手动增加字段。文件中字段名为空或取消勾选内容页签下“头部”配置项,未定义字段名时获取到的字段默认定义为field1、field2、field3。
操作:用于删除此行数据。
名称:字段名称。
类型:包括字符串、数值、日期、布尔、整型、二进制、时间戳、高精度类、网址。
格式:对指定类型(如日期、时间、精度数值)进行格式化转化。
长度:输出字段内容的长度限制。
Number类型:有效数的数量。
String类型:字符串的长度。
精度:输出字段内容的精度限制。
Number类型:浮点数的数量。
String、Date、Boolean类型:未使用。
小数:小数点,可以是一个“.”或者“,”。
分组:指定分组符号,分组可以是“.”或“,”。
Null if:当字段内容为指定内容时,输出为空。
默认:当字段内容为空时,输出默认值。
去除空字符串方式:对于内容两端的空格的处理方式。
重复:是否保留重复的内容,如果选择是,则自动将空白内容填充为上一行的内容,可用于对合并单元格的抽取。
文件名字段:如果不为空,则在抽取结果中添加一个字段,字段值为文件名。
扩展名字段:如果不为空,则在抽取结果中添加一个字段,字段值为文件的扩展名。
路径字段:如果不为空,则在抽取结果中添加一个字段,字段值为文件的路径。
假设输入文件的全路径为:D:\abc\test.json 或 /opt/test.json
则该文件的路径为:D:\abc 或 /opt
文件大小字段:如果不为空,则在抽取结果中添加一个字段,字段值为文件的大小。
是否为隐藏文件字段:如果不为空,则在抽取结果中添加一个字段,值为Y或N,分别表示该文件是或不是隐藏文件。
最后修改时间字段:如果不为空,则在抽取结果中添加一个字段,字段值为该文件的最后修改时间,格式为 yyyy/MM/dd HH:mm:ss.SSS。
URI字段:如果不为空,则在抽取结果中添加一个字段,字段值为该文件的URI。
假设输入文件的全路径为:D:\abc\test.json 或 /opt/test.json
则该文件的URI:file:///D:/abc/test.json 或 file:///opt/test.json
Root URI字段:如果不为空,则在抽取结果中添加一个字段,字段值为该文件的Root URI。
假设输入文件的全路径为:D:\abc\test.json 或 /opt/test.json