1. 概述编辑
1.1 应用场景
某国有企业旗下有 100 多家分公司,子公司财务每月需要向总部提交各种财务预算和决算表,如资产负债表、利润表、现金流量表等数据表。总部财务需要手动对相同类型的财务报表进行数据汇总,并将其整理后向领导做出统一汇报。
现存问题:
总部财务手动汇总数据耗时较长,效率低下。
汇总的数据出问题,异常数据无法快速追踪。
本文提供方案,可自动化读取相同类型的文件,为企业降本增效。
1.2 实现思路
4.0.24 及之后版本,「文件输入」算子支持读取同格式的 Excel 和 CSV 文件。
1.3 任务展示
FineDataLink 中的数据处理过程,详情参见:https://demo.finedatalink.com/ 「场景案例>数据开发场景>批量读取文件-4.0.24及之后版本」。
2. 前提条件编辑
1)本文示例步骤适用于 4.0.24 及之后版本。4.0.24 之前版本要实现本文场景请参见:4.0.24 之前版本方案
2)需要满足条件:文件夹中的 Excel 文件需要字段名相同;文件夹中的 CSV 文件需要分隔符相同。
注:Excel 需要支持满足的版本为 97~ 最新版本
本文示例主要是通过「文件输入」算子实现的,文件输入算子的功能说明请参见:文件输入功能说明
3. 操作步骤编辑
本文示例是从 FineDataLink 服务器上,批量读取 CSV 文件数据并汇总到数据库表中。
注:本文方案支持从 FineDataLink 服务器本地和 FTP/SFTP 服务器上读取 Excel 和 CSV 文件数据。
3.1 场景模拟
某公司每月会定时上传文件到 csv 文件夹中,这些文件数据最终定时手工汇总到数据库中的某张表中,存在效率低下和容易出错的问题。
本文示例中,csv 文件夹包含两个 csv 文件。文件数据如下图所示:
3.2 准备工作
1)在 /data/demo_FR/webroot/WEB-INF/assets/local_files 目录下新建 test 文件夹,每月将需要扫描的文件上传到 test 文件夹中。如下图所示:
注:由于要 新建服务器本地目录数据连接,从 FineDataLink 本地服务器上读取 CSV/Excel 文件数据,所以存放待扫描文件的文件夹需要在%FDL_HOME%/webroot/WEB-INF/assets/local_files 下。
2)新建一个服务器本地目录数据连接,服务器本地目录选择存放 test 文件夹的路径。
3.3 读取文件夹中数据
1)新建定时任务,添加「数据转换」节点,进入「数据转换」节点内。
2)新增「文件输入」算子,读取 FDL 工程中的 test 文件夹,其他设置项默认即可。如下图所示:
注:文件输入算子的各个设置项说明请参见:文件输入算子功能说明
3)点击数据预览,可看到 test 文件夹中的文件已被读取。如下图所示:
3.4 输出数据
1)添加「DB表输出」算子,将读取到的数据汇总到数据库表中。如下图所示:
2)保存并运行任务。
3.5 设置定时调度
每月末汇总一次数据。如下图所示:
3.6 结果展示
test_1数据库中,summary 表数据如下图所示: