当前位置: 首页 > news >正文

NiFi :1 初识这把“十年一剑”的利器

--->更多内容,请移步“鲁班秘笈”!!<---

“现在AI和数据处理密不可分,80%的企业可以利用Apache NiFi轻松解决复杂的数据问题,快速完成场景建设。犹如花上百来块钱在家享受一顿不亚于五星级西餐厅的法式大餐。对于全栈式的数据分析师或者数据应用的Java研发工程师,NiFi让其摆脱复杂的数据工程,而是将精力放在分析和应用的创新之上。而NiFi的GUI也着实令人赏心悦目!”

—小编

Apache NiFi

说到数据平台,很多人的第一反应要么是ETL/ELT,要么是Spark或Hadoop,要么是Flink,要么是各式各样的湖仓技术,例如Delta Lake。小编多年来根据不同的业务场景规划落地不少数据平台,很清楚的明白维护一套数据处理套件成本不菲。先不说调度引擎、运算引擎、数据治理引擎和存储引擎,光是数据质量和产出效益就让很多企业管理者头疼,况且现代化的技术体系都依托云原生,这也是不小的一块投入。就算下定决心建设数据平台,技术路线抉择和人才储备则是另一大难题。要知道如何选择最合适的技术至关重要,和2B产品线的生死掌握在靠谱的产品经理手中一样。

现在AI时代已经到达,如何快速且以较低的成本进行数据处理和微治理则十分重要。毕竟现在的节奏越来越快,从商业的角度,小投入,快应用,螺旋式的加大投资成为很多人的选择。回顾过去十年,加之最近在数据领域的咨询量增加,小编认为是时候介绍一下NiFi,让它能够得到最对等的尊重。回顾这十年,NiFi走得很稳,正如它的官网所介绍的一样,NiFi是强大、可靠、简单易用的处理和分发数据的系统。

Apache NiFi是Apache软件基金会的一个软件项目,旨在自动化软件系统之间的数据流。它利用提取、转换、加载 (ETL) 的概念,基于美国国家安全局 (NSA) 之前开发的“NiagaraFiles”软件,该软件也是其现在名称的一部分——NiFi 的来源,它在2014年NSA技术转让计划的开源的清单里面。

简单而言Apache NiFi是一款开源的数据流处理工具,提供了强大的数据采集、传输、转换和处理能力。它可以帮助用户轻松地构建可扩展、高度可配置的数据流处理管道,支持从各种来源(包括本地磁盘、网络、传感器等)获取数据,并将其路由、转换、过滤和聚合后输出到各种目标(包括 Hadoop、HDFS、Kafka、Solr等)。同时,Apache NiFi 还提供了直观的可视化界面,帮助用户快速构建和管理数据流处理任务。

Apache NiFi的体系结构基于可插拔的Processor、Controller Service和自定义Extension,使其能够快速适应不同的场景和需求,同时保持高性能和可靠性。NiFi的里层还依托Java虚拟机,建立在Spring基础上。根据处理流量的大小,决定了其对系统资源的占用情况以及是否需要硬件支持。

如上图所示,NiFi支持单机和集群模式。在分布式部署的情况下,ZK作为分布式一致性的中间件。每个节点都建立在JVM的基础上,中间是各种处理数据的Processor,底层则是NiFi的数据存储仓库以及数据监管机制。

上图为数据流工程的一部分,可以进行分领域设计。简单、干净和高可靠。

数据模型

NiFi的整体框架下,数据模型被建模为FlowFile,请记住这个术语。它由内容(Content)和属性(Attribute)两部分组成。毕竟在物理世界,任何的数据消息都是由消息体和头部信息组成。一系列的处理组件在相同的规范下互相连接形成处理管道。数据会沿着管道进行流动形成数据流。同时,NiFi的组件很丰富,截止到1.27的版本已经接近400+。<不够用,没问题,可以自己定义。>

每个组件都是FlowFile进,FlowFile出。每份数据都会从流的开始传输到流的结束。默认情况下,它使用已NiFi的存储介质作为机制,例如本地磁盘,因此NiFi对于I/O的要求比较高。

FlowFile Content存储着数据主体信息,可以理解为文本内容,可以是Json格式,也可以是二进制文件等等。而FlowFileAttribute则是添加到每个FlowFile文件上面的Key-Value对,也即为键值对。

这些属性的有一部分是NiFi系统给每个FlowFile加上(例如FlowFile创建时间、FlowFile大小、uuid等等),也可以使用户自行添加的属性对,还可以是由Processor(每个处理节点)自己设置,用来标明这些数据的特定属性或状态。

每个流的数据都可以在NiFi GUI可视化直观的跟踪和显示,尤其可以追溯每份数据处理的链路图,比如源头和处理的组件,类似数据的血缘追踪。

http://www.lryc.cn/news/416612.html

相关文章:

  • Pyside6实战教程专栏目录
  • 【Dash】使用 Dash Design Kit (DDK) 创建图表
  • C++ 几何算法 - 向量点乘,叉乘及其应用
  • Taro学习记录(具体项目实践)
  • ICML 2024 | 矛与盾的较量!北大提出提示无关数据防御保护算法PID
  • Oracle聚合函数LISTAGG和WM_CONCAT简介
  • 【Unity】多种寻路算法实现 —— BFS,DFS,Dijkstra,A*
  • 十大游戏设计软件:创意实现的利器
  • Pandas高级操作:多级索引、窗口函数、数据透视表等
  • mysql源码编译启动debug
  • 吴恩达机器学习-C1W3L2-逻辑回归之S型函数
  • P-one新增火焰图-为性能测试开启新视野
  • CTF-web基础 TCP/UDP协议
  • sql常用语法总结
  • 实验八 题目描述 从键盘上输入任意一个整数(正负数皆可),判断该整数的绝对值是否为回文数。
  • IsaacLab | Workflow 中 rsl_rl 的 play.py 脚本精读
  • PYTHON专题-(8)我错了该怎么整?
  • 【自然资源】设施农业用地的学习梳理
  • 【秋招笔试】24-07-27-OPPO-秋招笔试题(后端卷)
  • JS 补充内容
  • H5+JS 4096小游戏
  • 常见中间件漏洞(二、WebLogin合集)
  • LeetCode LCR147.最小栈
  • 目标检测的算法有哪些
  • HDU多校-交通管控
  • 【C++】string类
  • Python中各类常用内置转换函数
  • LangChain与JWT:构建安全认证的桥梁
  • ai写作软件哪个好用?怎么帮自己找到好用的ai写作软件?
  • 关于gunicorn+flask+docker模型的高并发部署