1. 概述
文件输入 文档讲述了「文件输入」算子的基本功能,「文件输入」算子支持从 FineDataLink 服务器本地和 FTP/SFTP 服务器上读取 Excel 和 CSV 文件数据,4.0.24 及之后版本,还支持批量读取同格式的 Excel 和 CSV 文件。
本文通过两个简单示例,讲解使用「文件输入」算子读取单个文件的方法。
2. 示例一:读取远程FTP/SFTP服务器数据
示例数据:2024-08-06.xlsx、CSV文件.zip
2.1 配置 FTP/SFTP 数据连接
需要先配置 FTP/SFTP 数据连接,后续步骤中通过「文件输入」算子获取FTP/SFTP服务器中的数据。详情请参见:配置FTP/SFTP数据连接
若已配置 FTP/SFTP 数据连接,检查下是否有该数据连接的使用权限。
2.2 读取 Excel 文件
本节分两个小场景讲解:「文件输入」中不使用参数、「文件输入」中使用参数。
注:各设置项详细介绍请参见 文件输入
2.2.1 文件地址不设置参数
1)新建定时任务,拖入「数据转换节」点,进入「数据转换」节点。
2)拖入「文件输入」算子,设置「文件输入」算子:
文件来源:要读取的文件所在的 FTP/SFTP 服务器。
文件类型:要读取的文件类型,本示例选择 Excel 。
注1:文件类型选择 Excel 时,支持的后缀名:.xls、.xlsx、.XLS、.XLSX
注2:Excel 需要支持满足的版本为 97~ 最新版本。
读取方式:分为两种,「文件读取」和「文件夹读取」。「文件读取」只能读取单个文件,「文件夹读取」可读取文件夹中的文件,具体介绍请参见:文件输入
文件地址:选择要读取的文件。支持使用参数,例如:/home/ftpuser/test/${time}.xlsx。也可以使用 参数赋值 进行参数设置。
sheet名:填写要读取的 Sheet 名。为空时读取第一个 sheet。
读取行列范围:设置要读取的行列范围。
起始行为字段名:勾选时,将解析到的首行数据作为字段名。不勾选时,首行将作为实际数据解析。
输出字段:分为两种,「自动获取」与「手动获取」。「自动获取」将根据解析结果直接读取字段类型,此时「自动获取」界面下不显示输出的字段。「手动获取」介绍请参见:文件输入
3)点击数据预览,如下图所示:
2.2.2 文件地址设置参数
Excel 文件名以日期命名,比如该示例执行时日期为 2024-08-07,示例表数据名称为 2024-08-06 。
1)点击「参数列表」,添加参数 time ,值为 yyyy-mm-dd-1,意为取值为 ${cyctime} 的前一天。「文件输入」算子中,该参数放在文件地址中,读取示例表数据。
2)「文件输入」算子中,文件地址手动输入值为:/data/demo_files/${time}.xlsx,输入后按 Enter 键。如下图所示:
3)点击「数据预览」,可读取 2024-08-06.xlsx 表数据。如下图所示:
2.3 读取 CSV 文件
具体设置项介绍请参见:文件输入
1)进入「数据转换」节点,拖入「文件输入」算子,设置「文件输入」算子:
列分隔符:根据指定的分隔符,分隔数据为多列。配置的分隔符需要与文件中实际的分隔符保持一致才可正常解析。可指定或自定义分隔符。
注:选择自定义时,可以手动输入自定义分隔符,可以输入多个字符作为分隔符,可以是中文字符。
行分隔符:可指定 CSV 中的行分隔符。
编码:指定 CSV 文件编码。本示例选择 UTF-8。
文本限定符:用于标识数据值的开始和结束,以避免数据中包含的特殊字符干扰 CSV 文件的解析。
读取起始行:CSV 文件可以从第 N 行开始取数。实际读取时,将从配置的起始行开始进行读取。
3)点击「数据预览」,如下图所示:
2.4 输出数据
拖入「DB表输出」算子,将数据输出即可。如下图所示:
写入方式选择「追加写入数据」。
3. 示例二:读取本地数据
示例数据参考本文第二章。
3.1 配置服务器本地目录数据连接
若需要读取或者上传本地的 Excel 和 CSV 文件数据至 FineDataLink,需要新建一个「服务器本地目录」数据连接,并将要读取的文件放到%FDL%/webroot/WEB-INF/assets/local_files路径下。具体请参见:配置服务器本地目录数据连接
若已配置「服务器本地目录」数据连接,检查下是否有该数据连接的使用权限。
3.2 读取文件
1)新建定时任务,拖入「数据转换节」点,进入「数据转换」节点。
2)拖入「文件输入」算子,设置「文件输入」算子,如下图所示:
与读取 FTP/SFTP 服务器上的文件不同的是,服务器本地目录下,文件地址中可手动上传文件。
3.3 输出数据
拖入「DB表输出」算子,将数据输出即可。如下图所示:
写入方式选择「追加写入数据」。