使用apache nifi 从数据库文件表路径拉取远程文件至远程服务器目的地址

使用nifi实现文件增量抽取

1、说明

本次nifi版本使用2.7.1,数据库使用postgresql,本次示例数据库查询结果为:

复制代码
[ {
  "path" : "aa.txt"
}, {
  "path" : "bb.txt"
} ]
2、基本思路

executeSQLRecord->SplitJson->EvaluateJsonPath->FetchSFTP(FetchFTP)->PutSFTP(PutFTP)

executeSQLRecord实现增量同步数据太麻烦,要实现增量同步,可以修改为QueryDatabaseTableRecord 来实现,关键属性:Maximum-value Columns (增量位点)如下:

3、各插件配置
executeSQLRecord

Database Connection Pooling Service 默认没有,新建:DBCPConnectionPool

DBCPConnectionPool,连接使用jdbc连接就行,配置如下 :

新建数据库查询返回使用的格式服务JsonRecordSetWriter,在executeSQLRecord的Record Writer选择使用JsonRecordSetWriter:


SplitJSON

注意:在选择relationships时,不要勾选split,因为下一步的连接关系要使用split,如果这里勾选了split就会失败。因为返回的是JSON数组,所以JsonPath Expression使用$[*]


EvaluateJsonPath

FetchSFTP

PutSFTP

后语

如果数据库路径包含文件夹,如:aa/aa.txt,源目录为:/home/test 目的目录为:/home/test_md,在配置putsftp(putftp)时,remote Path使用replace进行替换:

${path:replace('/home/test/', '/home/test_md/')}

相关推荐
赵渝强老师1 小时前
【赵渝强老师】PostgreSQL中表的碎片
数据库·postgresql
全栈老石5 小时前
拆解低代码引擎核心:元数据驱动的"万能表"架构
数据库·低代码
YuMiao7 小时前
gstatic连接问题导致Google Gemini / Studio页面乱码或图标缺失问题
服务器·网络协议
倔强的石头_1 天前
kingbase备份与恢复实战(二)—— sys_dump库级逻辑备份与恢复(Windows详细步骤)
数据库
碳基沙盒1 天前
OpenClaw 多 Agent 配置实战指南
运维
jiayou642 天前
KingbaseES 实战:深度解析数据库对象访问权限管理
数据库
李广坤3 天前
MySQL 大表字段变更实践(改名 + 改类型 + 改长度)
数据库
Sinclair3 天前
简单几步,安卓手机秒变服务器,安装 CMS 程序
android·服务器
Rockbean4 天前
用40行代码搭建自己的无服务器OCR
服务器·python·deepseek
爱可生开源社区4 天前
2026 年,优秀的 DBA 需要具备哪些素质?
数据库·人工智能·dba