反馈已提交

网络繁忙

基于时间增量读取文件

  • 文档创建者:Wendy123456
  • 历史版本:6
  • 最近更新:Carly 于 2023-10-17
  • 1. 概述

    1.1 应用场景

    FTP 服务器上的文件不定期自动更新,每次通过新建文件更新数据。用户希望自动读取这些文件的所有信息并将信息存储到数据库表中。

    1.2 实现思路

    文件输入 算子+参数实现。

    「文件输入」算子每天读取新增的文件数据,将数据同步到数据库表中。

    2. 前提条件

    1)若需要读取本地的 Excel 和 CSV 文件数据至 FineDataLink,需要新建一个「服务器本地目录」数据连接,并将要读取的文件放到%FDL%/webroot/WEB-INF/local_files/路径下,并且有该数据连接的使用权限。具体请参见:配置服务器本地目录数据连接

    2)若需要读取远程 FTP/SFTP 服务器 Excel 和 CSV 文件数据,需要配置 FTP/SFTP数据连接,并且有该数据连接的使用权限。具体请参见:配置FTP/SFTP数据连接

    本方案适用于 4.0.24 及之后版本。

    注:本文示例是从 FineDataLink 服务器本地读取文件。

    3. 示例一:基于文件修改时间判断新增文件

    本示例适用于:文件夹中的文件名称中不包含文件新增时间,以新增文件的方式新增数据,不更新原有文件数据。

    示例数据:csv文件.zip

    3.1 设置参数

    1)新建定时任务。

    2)点击参数设置,设置参数 time ,值为yyyy-mm-dd,代表取 ${cyctime} (任务执行时间) yyyy-mm-dd 格式的值。如下图所示:

    注:${cyctime} 为定时任务在 调度配置 中设置的每次运行的时间节点,格式为 yyyy-mm-dd hh:mm:ss

    65.png

    3.2 读取文件夹内数据

    1)拖入「数据转换」节点,进入「数据转换」节点。

    2)拖入「文件输入」算子,选择要读取的文件夹,「文件筛选」处设置文件修改时间大于参数 time ,筛选出新增文件。

    如果设置每天晚上 11 点开始执行任务,那么每天此处筛选的就是从今天 0 点到今晚 11 点新增的文件。(所以需要保证每天晚上 11 点到 12 点之间不再新增文件

    「文件修改时间」说明如下:

    • 理解示例:比如某文件夹中昨天的表是 A 和 B,今天新增表 C ,更新表 B 中的数据,「文件筛选」中筛选「文件修改时间」为今天的表,可筛选出表 C 和表 B(表 B 中的所有数据,非今天更新的数据)。

    • 精确度仅到分钟,暂时无法精确到秒级别。

    注:「文件输入」算子具体设置项介绍请参见:功能说明

    52.png

    3)点击「数据预览」,可看到新增的文件数据已被读取。如下图所示:

    53.png

    3.3 数据输出

    1)拖入「DB表输出」算子,将新增数据输出到数据库表中。如下图所示:

    18.png

    2)写入方式选择「追加写入数据」,将全部数据写入到目标表中。如下图所示:

    17.png

    3)点击右上角「保存」按钮。

    3.4 定时执行

    点击「调度配置」,定时执行任务。如下图所示:

    注:下图中设置每天 23:30:55 执行任务,需保证该时间到晚上 24 点之前,无新增文件生成。

    1685329949439678.png

    3.5 结果展示

    1685093327271220.png

    4. 示例二:基于文件名称判断新增文件

    本示例适用于:文件名中包含文件新增时间,以新增文件的方式新增数据,不更新原有文件数据。

    示例数据:2023-05-29库存.xls

    本示例执行时间为 2023-05-29 ,筛选出 2023-05-29 新增的文件。

    4.1 设置参数

    1)新建定时任务。

    2)点击参数设置,设置参数 time ,值为yyyy-mm-dd,代表取 ${cyctime} (任务执行时间) yyyy-mm-dd 格式的值,目的是筛选任务执行时当天新增的文件。如下图所示:

    注:${cyctime} 为定时任务在 调度配置 中设置的每次运行的时间节点,格式为yyyy-mm-dd hh:mm:ss

    59.png

    4.2 读取文件夹内数据

    1)拖入「数据转换」节点,进入「数据转换」节点。

    2)拖入「文件输入」算子,选择要读取的文件夹,「文件筛选」处设置要读取的文件名称中包含参数 time ,筛选出新增文件。

    如果设置任务定时执行时间为每天晚上 11 点开始执行,那么每天此处筛选的就是从今天 0 点到今晚 11 点新增的文件。(需要保证每天晚上 11 点到 12 点之间不再新增文件

    注:「文件输入」算子具体设置项介绍请参见:功能说明

    60.png

    3)点击「数据预览」,可看到新增的文件数据已被读取。如下图所示:

    1685327625106629.png

    4.3 数据输出

    1)拖入「DB表输出」算子,将新增数据输出到数据库表中。如下图所示:

    19.png

    2)写入方式选择「追加写入数据」,将全部数据写入到目标表中。如下图所示:

    17.png

    3)点击右上角「保存」按钮。

    4.4 定时执行

    点击「调度配置」,定时执行任务。如下图所示:

    注:下图中设置每天 23:30:55 执行任务,需保证该时间到晚上 24 点之前,无新增文件生成。

    1685327860289612.png

    4.5 结果展示

    1685328048225781.png

    附件列表


    主题: 数据开发
    • 有帮助
    • 没帮助
    • 只是浏览
    • 评价文档,奖励 1 ~ 100 随机 F 豆!

    鼠标选中内容,快速反馈问题

    鼠标选中存在疑惑的内容,即可快速反馈问题,我们将会跟进处理。

    不再提示

    10s后关闭

    联系我们
    在线支持
    获取专业技术支持,快速帮助您解决问题
    工作日9:00-12:00,13:30-17:30在线
    页面反馈
    针对当前网页的建议、问题反馈
    售前咨询
    采购需求/获取报价/预约演示
    或拨打: 400-811-8890 转1
    qr
    热线电话
    咨询/故障救援热线:400-811-8890转2
    总裁办24H投诉:17312781526
    提交页面反馈
    仅适用于当前网页的意见收集,帆软产品问题请在 问答板块提问前往服务平台 获取技术支持