Apache NiFi 教程

⚡ 智能摘要

Apache NiFi 教程解释了这款开源数据集成平台,它旨在实现系统之间自动化、可靠的数据流。 Less涵盖架构、处理器、术语、功能、安装、用例、优点、缺点以及生产部署的最佳实践。

  • 🔁 基于流程的设计: NiFi 使用可视化画布来构建由路由队列连接的可配置处理器的数据流。
  • ????️ 分布式 Archi結構: Web 服务器、流量控制器和存储库相结合,实现了可扩展、容错的数据传输。
  • ⚙️ 丰富的处理器库: 数百个处理器处理 Kafka、MQTT、REST API、数据库、文件系统和云资源。
  • 🔒 强大的安全性: TLS、多租户授权和加密存储库可加强企业数据治理。
  • 📊 端到端溯源: 每个 FlowFile 都是 trac从源头到目的地,用于审计、调试和合规性检查。
  • 🤖 AI 流水线就绪: 将 NiFi 与 LLM 端点和向量数据库结合,实现检索增强型生成工作流程。

Apache NiFi 教程

Apache NiFi 教程摘要

本 apache NiFi 教程涵盖了从零开始的所有基础到高级主题。您将学习 NiFi 定义、历史、架构、功能、安装过程、用例等概念。您还将了解为什么需要使用 apache NiFi 以及运行 apache NiFi 的最佳实践。

什么是 Apache NiFi?

阿帕奇尼菲 是一款开源软件,用于自动化和管理系统之间的数据流。它是一个功能强大且可靠的系统,用于处理和分发数据。它提供基于 Web 的用户界面来创建、监控和控制数据流。它具有高度可配置和可修改的数据流流程,可在运行时修改数据。

Apache NiFi 可以通过开发自定义组件轻松扩展。

为什么使用 Apache NIfi?

以下是使用 Apache Nifi 的原因:

  • 允许您进行数据提取,从众多数据源将数据拉入 NiFi 并创建流文件
  • 它提供实时控制,帮助您管理任何源和目标之间的数据移动
  • 在企业层面可视化 DataFlow
  • 提供通用工具和扩展
  • 允许您利用现有的库和 Java 生态系统功能
  • 帮助组织将 Nifi 与现有基础设施集成
  • NiFi 旨在以集群形式横向扩展,从而保证数据传输
  • 在提供见解和内联文档的流程公告中可视化和监控性能、行为
  • 帮助您单独或在组级别启动和停止组件
  • 它可以帮助您监听、获取、拆分、聚合、路由、转换和拖放数据流

Apache NiFi 的历史

  • 美国国家安全局历时八年开发
  • 2014 年- 捐赠给 Apache 软件基金会 Foundation
  • 2015 年——NiFi 成为 Apache 项目套件的正式组成部分
  • 此后,Apache NiFi 每 6-8 周发布一次新更新

镍铁 Archi质地

Apache NiFi 具有经过深思熟虑的架构。一旦从外部源获取数据,它就会在 Apache NiFi 架构中以 FlowFile 的形式表示。

镍铁 Archi质地
镍铁 Archi质地

以下是 NiFi 架构的关键组件

Nifi 组件 描述
流文件 FlowFile 是附加了元信息的原始数据。它不仅允许您处理 CSV 或其他基于记录的数据,还允许您处理图片、视频、音频或任何其他二进制数据。
流文件处理器 执行作为 NiFi 中数据流构建块的工作。
流量控制器 记录进程的连接方式。它管理所有进程使用的线程及其分配。
Web服务器 Web 服务器托管 NiFi 基于 HTTP 的命令和 API。
延期 有许多类型的 NiFi 扩展可以在 JVM 内运行和执行。
连接升级包 充当包含队列的处理器与影响数据路由位置的关系之间的链接。
背压 通过控制队列中存储的流文件的数量或数据大小来阻止系统超负荷。
进程组 进程组是一组进程及其连接的集合,借助端口接收和发送数据。
流文件存储库 在 FlowFile 存储库中,NiFi 会保留这些信息。 track 表示它拥有的关于流中处于活动状态的给定 FlowFile 的详细信息的状态。
内容库 内容存储库是给定 FlowFile 的实际内容字节存在的区域。
来源存储库 出处存储库是收集所有出处事件数据的区域。

Apache NiFi 功能

  • NiFi 支持缓冲所有排队数据,并提供背压能力,因为这些队列可能达到指定的限制
  • NiFi 允许设置一个或多个优先级方案
  • 为许多数据源提供连接处理器
  • 支持任何运行 Java
  • 适合连接受限的地方
  • 支持故障排除和流程优化
  • 提供基于角色的身份验证/授权
  • 允许下载、恢复和重播单个文件
  • 构建您的处理器、控制器服务等
  • 提供内容加密、通过安全协议进行通信
  • 实现快速开发和有效测试
  • 允许开发简单的单功能组件,这些组件可以重复使用和组合以形成更复杂的流程
  • 允许类加载器隔离,以便更轻松地管理依赖项

如何安装 Apache NiFi

以下是 Apache NiFi 安装的分步过程

步骤1) 在MyCAD中点击 软件更新 链接,

并点击“继续订阅”

安装 Apache NiFi

步骤2) 在下一页上,

点击“接受条款”

安装 Apache NiFi

步骤3) 你会看到这个页面,

感谢您订阅该产品!我们正在处理您的请求。

安装 Apache NiFi

步骤4) 5分钟后刷新页面。

点击“继续配置”

安装 Apache NiFi

步骤5) 在下一页上,

保持默认设置并点击“继续启动”

安装 Apache NiFi

步骤6) 在下一页上,

点击启动。您可能需要创建一个密钥

安装 Apache NiFi

步骤7) 您将会看到此成功消息。

恭喜!此软件的一个实例已成功部署在 EC2 上!

安装 Apache NiFi

步骤8) 注意,

EC2 实例的实例 ID 和公共 DNS

安装 Apache NiFi

步骤9) 在安全组中,

将所有流量规则添加到入站和出站

安装 Apache NiFi

步骤10) 要访问 Nifi,

只需使用 URL

http://publicdns:8080/nifi

在我们的例子中它变成

http://ec2-100-26-156-57.compute-1.amazonaws.com:8080/nifi/

用户: 行政

密码: 实例 ID

安装 Apache NiFi

步骤11) 你会看见,

NiFi 主屏幕

安装 Apache NiFi

Nifi 用例

以下是 Apache NiFi 用例列表:

行业 用法
保险
  • 风险与承保分析
  • 索赔分析
  • 基于使用的保险
  • 新产品开发
卫生保健
  • 病人单一视图
  • 实时生命体征监测
  • 电子病历 (EMR) 优化
  • 供应链优化
电信
  • 客户的单一观点
  • CDR分析
  • 动态带宽分配
制造业生产环境
  • 预防性维护
  • 供应链优化
  • 质量控制
石油和天然气工业
  • 实时监测
  • 单一视图 OperaTION
  • 预测性维护
  • Archi数据与分析
  • 非结构化数据分类
金融服务
  • 反洗钱
  • 欺诈识别
  • 风险数据管理

运行 Apache NiFi 的最佳实践

  • 非常适合在 NiFi 中分离测试/开发/生产环境
  • 您应该将流程分解为流程组
  • 使用命名约定、使用注释和标签
  • 将你的项目分为三个部分:采集、测试和监控
  • 对变量使用唯一的名称

Nifi 的缺点

  • 需要精确的安全性和合规性控制
  • 使用 Apache NiFi 时,你需要非常了解底层系统
  • 必须维护数据的保管链
  • 交通/信息传递可能还不够
  • 数据访问需求超出了可用的传输资源
  • 并非所有数据都是平等的
  • SSL 和主题级授权可能不够

常见问题

NiFi 提供可视化、低代码的数据流,并内置路由和转换功能。Kafka 作为消息传递骨干;Airflow 用于编排批处理作业。NiFi 经常在 Kafka 和下游目标之间移动数据。

是的。NiFi 可以摄取流式数据,调用模型端点,并将预测结果路由到存储。它结合 Kafka、MiNiFi 和向量数据库,构建端到端的 AI 和检索增强型生成工作流。

AI 工具可以建议处理器链、生成表达式语言片段并解释流程模式。它们能够加快开发速度,并帮助新手理解 NiFi 的配置和路由逻辑。

FlowFile 是流经 NiFi 的数据。它包含内容以及元数据、血缘关系和路由信息等属性,处理器利用这些信息在数据流中做出决策。

NiFi 支持 TLS、多租户授权、LDAP、Kerberos、OIDC 和加密存储库。基于角色的策略限制了哪些用户可以查看、修改或操作特定的数据流。

NiFi 可以通过集群进行水平扩展,通过增加核心进行垂直扩展,还可以通过反压队列进行扩展。边缘的 MiNiFi 代理将数据传输到中央 NiFi 集群。

NiFi 是一个功能齐全的服务器,拥有丰富的 Web 用户界面,用于设计数据流。MiNiFi 是一个轻量级代理,运行在网络边缘,并将数据转发给 NiFi。

初学者几天就能搭建出第一个流程。而要掌握集群、安全、自定义处理器和高吞吐量调优,则需要两到四个月的生产项目经验。

总结一下这篇文章: