历史版本12 :循环多次读取Linux环境文件同步数据 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

1. 概述编辑

1.1 应用场景

某国有企业旗下有 100 多家分公司,子公司财务每月需要向总部提交各种财务预算和决算表,如资产负债表、利润表、现金流量表等数据表。总部财务需要手动对相同类型的财务报表进行数据汇总,并将其整理后向领导做出统一汇报。

现存问题:

  • 总部财务手动汇总数据耗时较长,效率低下。

  • 汇总的数据出问题,异常数据无法快速追踪。

本文提供方案,可自动化读取相同类型的文件,为企业降本增效。

1.2 实现思路

4.0.24 及之后版本,「文件输入」算子支持读取同格式的 Excel 和 CSV 文件。

1.3 任务展示

FineDataLink 中的数据处理过程,详情参见:https://demo.finedatalink.com/ 「场景案例>数据开发场景>批量读取文件」。

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 文件。文件数据如下图所示:

1681463131595357.png

3.2 准备工作

1) /data/demo_FR/webroot/WEB-INF/assets/local_files 目录下新建 test 文件夹,每月将需要扫描的文件上传到 test 文件夹中。如下图所示:

1685080847412312.png

注:由于要 新建服务器本地目录数据连接,从  FineDataLink 本地服务器上读取 CSV/Excel 文件数据,所以存放待扫描文件的文件夹需要在%FDL_HOME%/webroot/WEB-INF/assets/local_files 下。

2)新建一个服务器本地目录数据连接,服务器本地目录选择存放 test 文件夹的路径。

43.png

3.3 读取文件夹中数据

1)新建定时任务,添加「数据转换」节点,进入「数据转换」节点内。

2)新增「文件输入」算子,读取 FDL 工程中的 test 文件夹,其他设置项默认即可。如下图所示:

注:文件输入算子的各个设置项说明请参见:文件输入算子功能说明

44.png

3)点击数据预览,可看到 test 文件夹中的文件已被读取。如下图所示:

45.png

3.4 输出数据

1)添加「DB表输出」算子,将读取到的数据汇总到数据库表中。如下图所示:

46.png

2)保存并运行任务。

3.5 设置定时调度

每月末汇总一次数据。如下图所示:

1685088503203897.png

3.6 结果展示

test_1数据库中,summary 表数据如下图所示:

1685088663277495.png