1. 概述编辑
1.1 版本说明
FineDataLink 版本 | 功能变动 |
---|---|
4.0.14 | - |
1.2 应用场景
用户在搭建数仓时,希望能从 FineDataLink 服务器本地或者共享目录中读取 Excel 、CSV 文件数据。
同时可以通过 FDL 将Excel 、CSV 文件直接上传至 FDL 服务器本地。
1.3 功能说明
FineDataLink 支持「文件输入」功能。
支持Excel和CSV文件读取,允许用户从 FineDataLink 服务器本地和 FTP/SFTP 服务器上读取 Excel 和 CSV 文件数据。
支持用户快速上传文件至有权限的 FDL 服务器本地目录中。
2. 前提条件编辑
在使用功能前,需要首先创建数据连接。
若需要读取远程 FTP/SFTP 服务器 Excel 和 CSV 文件数据,可参见:配置FTP/SFTP数据连接
若需要读取或者上传本地的 Excel 和 CSV 文件数据至 FineDataLink,可参见:配置服务器本地目录数据连接
3. 读取远程FTP/SFTP 服务器数据编辑
使用数据:2022-11-30.xlsx
3.1 设置读取条件
新建任务并新建「数据转换」节点,如下图所示:
进入编辑界面,选择「文件输入」,设置数据来源为 FTP/SFTP,选择文件类型为「Excel」,如下图所示:
注:Excel需要支持满足的版本为97~最新版本。
选择服务器文件地址,如下图所示:
文件地址支持使用参数,例如用户想要每次读取当前时间前一天生成的 Excel 数据,则可以设置参数,然后在文件地址中使用该参数:/home/ftpuser/test/${time}.xlsx,如下图所示:
注:当然也可以使用 参数赋值进行参数设置。
然后选择当前文件的「sheet名」,如下图所示:
注:sheet名称也支持使用参数。
然后可以进行行列读取范围的设置,本示例选择读取所有数据,如下图所示:
若选择 csv 文件格式,可以指定分隔符和编码,如下图所示:
注:选择自定义时,可以手动输入自定义分隔符,可以输入多个字符作为分隔符,可以是中文字符。
最后勾选首行是否为字段名称,勾选时,将解析到的首行数据作为字段名,不勾选时,首行将作为实际数据解析,如下图所示:
点击数据预览即可看到读取好的 Excel 或者 CSV 数据,如下图所示:
注:预览数据量默认最多20行;使用前5000行数据中出现的字段与首行列数(如果指定了首行为字段名称)取并集,作为预览时展示的字段,且仅取数采样前5000条数据,但请不要担心,在输出数据时为全量输出。
注2:如果首行字段为合并单元格的情况,将合并单元格进行拆分后,以「字段名称+数字」的方式对拆分后的字段命名,如三个单元格合并后的首行单元格为「姓名」,则命名为姓名、姓名1、姓名2..:
注3:如果CSV首行字段有重名情况,以「字段名称+数字」的方式对重复字段命名,如重复字段为姓名,则重复字段命名为姓名1、姓名2...。
注4:未勾选首行包含字段名时,字段名称以「column+数字」的方式对解析出的字段依次命名,如colum、column1、column2...。
3.2 输出数据
然后即可对取出的数据进行处理并将数据输出至指定数据库,如下图所示:
3.3 效果查看
在数据库中即可看到写入的数据表20221130,如下图所示:
4. 读取本地数据编辑
4.1 新建文件输入
新建任务并新建「数据转换」节点,如下图所示:
进入编辑界面,选择「文件输入」,设置数据来源为「服务器本地目录」,选择指定数据连接,如下图所示:
选择文件类型和地址、以及后续的使用操作与文档 3.1 、3.2 节一致,此处不在赘述,如下图所示:
4.2 读取本地文件
若用户想要读取本地文件,则可以点击「本地文件」读取本地文件至FineDataLink 中,如下图所示:
文件地址中会显示上传文件位置,同样也支持引用参数,文件地址显示的位置是数据连接指定的文件相对起始路径,比如数据连接为%FDL%/webroot/WEB-INF/local_files/员工下的数据,则此时显示的相对文件路径为local_files/员工,如下图所示:
然后即可选择文件 sheet 以及读取行数等等,操作步骤与 3.1 节相同。
5. 读取的 Excel 数据条件编辑
单元格格式与读取后字段的关系说明:
Excel单元格格式 | 解析字段格式 |
---|---|
常规 | 基于原始值判断,可解析成FDL支持的类型,则自动解析,无法解析视为字符串。 |
数值 | 数值 |
货币 | 字符串 数值 |
会计专用 | 字符串 数值 |
日期、时间 | 日期或时间戳 只有年月日解析成日期、含有日期时间解析成时间戳。 |
百分比 | 数值 |
分数 | 数值 |
科学计数法 | 数值 |
文本 | 字符串 |
1)CSV字段类型问题
CSV读取后,输出只有字符串和数字两种类型,数字需要保证不丢精度。对于时间类型,如2022-11-10类型的时间,解析为字符串;时间戳类型的时间解析成数字。
2)合并单元格读取问题
对于合并的单元格,拆分单元格读取,复制值到每个拆分后的单元格进行读取。
3)字段为空的情况
如果标题字段存在空值,则将空值以「column+数字」的方式补充。
如果数字字段存在空值,填NULL
4)不支持 Excel 的多选Sheet读取。
5)不支持文件名通配符。
6)不支持读取设密码的Excel文件。