Solutions · Open Source

Argus Flow

将 Apache NiFi 2.10.0 部署到生产环境所需的一切集中于一处的开源数据管道发行版。自定义扩展包(NAR)、发布包(tar.gz、RPM、容器镜像)、Kubernetes Operator,以及配置、证书与用户管理工具——把原本分散的仓库整合为单一 monorepo,由同一条构建流水线产出版本相互对齐的产物。

Apache License 2.0 · 开源Apache NiFi 2.10.0 · Java 21GitHub 仓库

连接 NiFi 数据流程所需的扩展

组合 CDC 或文件列表采集、FlowFile 处理、目标写入和运行检查。

数据从外部来源经过 NiFi 扩展处理器与队列写入目标存储的四阶段架构
采集 → 处理 FlowFile → 写入目标 → 检查运行点击图示可放大至原始尺寸。
1.采集变更或文件列表
选择 Debezium CDC,或由输入 FlowFile 属性驱动的列表处理器。
2.处理 FlowFile
连接 NiFi 队列及记录读写器,配置转换和路由。
3.写入目标系统
使用 PutIceberg、PutDeltaLake 或 PutDatabaseRecord 写入已整理的记录。
4.检查运行
通过 NiFi UI、报告任务和流程分析规则查看运行状态与配置问题。

CDC 采用至少一次投递。需要配置事件到目标记录的转换;列出文件与获取文件内容是两个步骤。

查看GitHub文档与代码

从发行包构建到 Kubernetes 运维

打包扩展并配置访问与 TLS,再通过 Operator 管理声明的集群和流程。

扩展构建、配置诊断、Kubernetes 部署以及监控变更的四阶段流程
构建 → 配置 → 声明部署 → 监控与变更点击图示可放大至原始尺寸。
1.构建发行包
将官方 NiFi 与扩展 NAR 打包为 tar.gz、RPM 或容器镜像。
2.配置访问
通过 argus-config 设置地址、TLS 和登录方式,并检查差异与诊断结果。
3.声明部署
通过 NiFiCluster 和 NiFiFlow 指定运行资源及 Registry 流程版本。
4.监控与变更
通过健康检查、重连、滚动重启和卸载流程处理运维变更。

Kubernetes 配置使用 Lease 选举领导节点,并通过 ConfigMap 管理状态。滚动重启和缩容不保证零中断或零数据丢失。

查看GitHub文档与代码

NiFi 处理器与控制器服务详情

30 种处理器负责采集、查询、转换和存储,8 种控制器服务共享连接、序列化和目录配置。

处理器30 种

处理器负责处理 FlowFile。CDC 采用至少一次投递,需配置重复、顺序和删除处理;List 类处理器需配合独立 Fetch 处理器获取文件内容。

组件分类支持功能
CaptureChangeMySQL变更数据捕获从 MySQL binlog 捕获行级变更,输出 JSON FlowFile。
CaptureChangePostgreSQL变更数据捕获通过 pgoutput 或 decoderbufs 逻辑复制捕获 PostgreSQL 行级变更。
CaptureChangeOracle变更数据捕获通过 Oracle LogMiner 捕获行级变更,支持 CDB/PDB 连接配置。
CaptureChangeSQLServer变更数据捕获读取 SQL Server CDC 表的行级变更并输出 JSON FlowFile。
ExecuteSQL数据库将 SELECT 结果流式输出为 Avro,支持参数绑定、定时运行和输入触发。
ExecuteSQLRecord数据库通过指定的 Record Writer 流式输出 SELECT 结果,支持查询参数绑定。
ExecuteFastSQL数据库多线程获取 SQL 结果并输出 CSV;二进制值转为 Base64,CLOB 转为文本。
PutDatabaseRecord数据库将记录转换为 INSERT、UPDATE、DELETE 等 SQL,支持事务及成功、重试、失败路由。
BulkOracleInsertProcessor数据库使用参数化 Oracle INSERT ALL 批量写入,可配置批次行数和查询超时。
ListS3文件列表通过输入属性指定存储桶和 Prefix,逐对象生成 FlowFile,配合 FetchS3Object 下载内容。
ListHDFS文件列表通过输入属性指定 HDFS 目录和过滤条件,将文件路径信息传给 FetchHDFS。
ListFile文件列表在处理节点上列出允许的基础目录下的本地或挂载文件,配合 FetchFile 使用。
ListSFTP文件列表通过输入属性指定 SFTP 连接目标和远程路径,输出文件列表供 FetchSFTP 使用。
ListFTP文件列表通过输入属性指定 FTP 连接目标和远程路径,输出文件列表供 FetchFTP 使用。
QueryTrinoRecordTrino 查询与维护使用 Record Writer 流式输出 Trino SELECT 结果并按行数分片;记录查询 ID 和统计信息,停止时取消查询。
ExecuteTrinoStatementTrino 查询与维护执行 CTAS、INSERT SELECT、MERGE 等单条 DDL/DML/ELT 语句,支持同步、后台和无输入定时运行。
MaintainTrinoTableTrino 查询与维护支持 Iceberg OPTIMIZE、快照过期和孤立文件清理,Delta Lake OPTIMIZE/VACUUM,Hive 分区同步;三种格式均支持 ANALYZE。
PutIceberg湖仓写入通过 Record Reader 和目录服务向已有 Iceberg 表追加记录;需匹配表结构,CDC 更新和删除需另行处理。
PutDeltaLake湖仓写入使用 Delta Kernel 向路径型表追加 Parquet 并提交日志;可创建缺失表,基础范围为基本类型及 file/HDFS。
PutKudu湖仓写入向 Kudu 写入记录,可配置操作类型、批次和 Flush 模式,支持逐列时间戳格式及小时偏移。
SelectHive3QLHive 集成将 HiveQL SELECT 结果流式输出为 Avro 或 CSV,支持定时运行、输入触发及结果行数属性。
PutHive3QLHive 集成执行 FlowFile 中的 HiveQL DDL/DML,通过 hiveql.args 属性绑定占位参数。
PutHive3StreamingHive 集成通过 Hive 3 Streaming API 写入记录,支持静态分区值或记录中的分区字段。
UpdateHive3TableHive 集成根据输入结构创建缺失的 Hive 表或添加列、分区,用于写入前的表结构准备。
TriggerHiveMetaStoreEventHive 集成根据输入路径及 put/delete 属性触发 Hive Metastore 通知,需配置通知监听器。
PutORC文件格式通过 Record Reader 读取记录,写入指定文件系统路径的 ORC 文件。
PutParquet文件格式按指定结构将记录写为 Parquet,临时文件写入成功后重命名为最终文件。
MergeParquet文件格式合并 HDFS 上的 Parquet 文件并输出结果路径,可配置提交合并后保留或删除原文件。
MultilineCsvParser转换与外部命令流式解析含多行字段的 CSV,可配置分隔符、编码、引号、表头和列数,错误输入转入失败分支。
PrePostExecuteStreamCommand转换与外部命令将 FlowFile 内容传给外部命令,并支持配置前置和后置命令。

控制器服务8 种

控制器服务共享连接、读写和目录配置。表中名称与 NiFi 中选择的实际组件名称一致。

组件分类支持功能
CSVReader记录读取器与写入器将 CSV 行读为记录,支持按表头推断结构或显式结构及时间戳格式配置。
TimestampFormatAvroRecordSetWriter记录读取器与写入器输出二进制 Avro,可配置结构属性中的时间戳格式、小时偏移和压缩。
TimestampFormatParquetRecordSetWriter记录读取器与写入器输出 Parquet,可配置结构属性中的时间戳格式、小时偏移和 INT96 字段。
Hive3ConnectionPool数据库连接为 Hive 处理器提供 Hive 3 JDBC 连接池及 Kerberos 集成。
VendorHive3ConnectionPool数据库连接使用外部厂商 Hive JDBC 驱动提供连接池,支持服务级驱动路径和 Kerberos;需另行提供驱动 JAR。
HiveCatalogServiceIceberg 目录连接 Hive Metastore 管理 Iceberg 表元数据,作为 PutIceberg 的目录服务。
HadoopCatalogServiceIceberg 目录在 HDFS 等支持原子重命名的文件系统上提供 Iceberg 目录。
StandardTrinoConnectionService数据库连接提供兼容 DBCPService 的非池化 Trino JDBC 连接,支持 NONE/PASSWORD/JWT/Kerberos/OAuth2、会话属性及外部驱动 JAR。

以具体 NiFi 流程理解 PostgreSQL CDC

连接逻辑复制、JSON 变更事件、目标转换与恢复处理。

将 CaptureChangePostgreSQL 的本地偏移量和 JSON 事件连接到转换及 PutDatabaseRecord 或 PutIceberg 的 CDC 图
捕获变更 → 检查事件 → 转换目标记录 → 重试与恢复点击图示可放大至原始尺寸。
1.配置逻辑复制
准备权限、复制槽、publication 和持久化本地偏移量。
2.检查事件
检查 before、after、op 和 cdc.key 等 FlowFile 属性。
3.匹配目标语义
区分当前状态的 UPSERT/DELETE 与追加变更历史。
4.设计恢复
配置目标的失败与重试队列,并对重新传递的事件去重。

CDC 文档描述至少一次传递。去重、顺序与删除需显式配置;PutIceberg 的追加写入不会自动合并或执行 CDC 更新与删除。

查看GitHub文档与代码

部署、安全、运维检查与版本比较

整理公开发行版的运维能力及 Enterprise 支持服务。

展示 Argus Flow 打包与 Kubernetes 运维、配置与数据库认证、报告任务与规则及版本比较的图
构建部署 → 配置访问 → 检查运维 → 选择支持点击图示可放大至原始尺寸。
1.组装发行版
打包 13 个 bundle 与 21 个 NAR;Kubernetes 使用 Lease 选举与 ConfigMap 状态。
2.配置访问
诊断地址、TLS 和登录,按需启用数据库认证与授权。
3.检查运维
使用 5 类报告任务与 6 条静态规则检查运行时及流程配置。
4.选择支持
选择自行运维的 Community 或提供 SLA、迁移与定制开发的 Enterprise。

扩展、打包、Operator 和工具均为公开 Community 能力。Enterprise 增加 SLA 与专业服务;厂商驱动另行提供。滚动重启与缩容不保证无中断或无数据损失。

查看GitHub文档与代码
Apache License 2.0 · 开源

以开源方式发布的 NiFi 生产发行版

Argus Flow 以 Apache License 2.0 在 GitHub 上公开。从扩展包源码到发布打包、Kubernetes Operator 与运维工具全部开源,企业可以自行审计代码、按自身环境扩展,并在隔离网络中完全自主运行。

  • 商用无限制的 Apache 2.0
  • 上游归属与许可证头在构建中自动校验
  • 本地化与隔离网络自主运行