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可视化直观的跟踪和显示,尤其可以追溯每份数据处理的链路图,比如源头和处理的组件,类似数据的血缘追踪。
相关文章:
NiFi :1 初识这把“十年一剑”的利器
--->更多内容,请移步“鲁班秘笈”!!<--- “现在AI和数据处理密不可分,80%的企业可以利用Apache NiFi轻松解决复杂的数据问题,快速完成场景建设。犹如花上百来块钱在家享受一顿不亚于五星级西餐厅的法式大餐。对…...
Pyside6实战教程专栏目录
Pyside6实战教程🚀 专栏目录介绍 本专栏将详细地向Python开发者展示如何利用PySide6框架创建功能丰富的桌面应用程序。无论你是刚刚接触GUI编程的新手,还是希望快速提升自己技能水平的进阶用户,本文都将为你提供一系列简单易懂的教程…...
【Dash】使用 Dash Design Kit (DDK) 创建图表
一、Styling Your App The examples in the previous section used Dash HTML Components to build a simple app layout, but you can style your app to look more professional. This section will give a brief overview of the multiple tools that you can use to enhan…...
C++ 几何算法 - 向量点乘,叉乘及其应用
一:点乘介绍 1. 向量点乘: 2. 向量点乘的性质: 3. 向量点乘公式: 4. 向量的点乘的属性: (1):向量与自身做点乘,会得到向量长度的平方: (2…...
Taro学习记录(具体项目实践)
一、安装taro-cli 二、项目文件 三、项目搭建 1、Eslint配置 在项目生成的 .eslintrc 中进行配置 {"extends": ["taro/react"], //一个配置文件,可以被基础配置中的已启用的规则继承"parser": "babel/eslint-parser…...
ICML 2024 | 矛与盾的较量!北大提出提示无关数据防御保护算法PID
文章链接:https://arxiv.org/pdf/2406.15305 代码地址:https://github.com/PKU-ML/Diffusion-PID-Protection 亮点直击 本文在实证观察中发现,保护阶段和利用阶段之间的提示不匹配可能会削弱当前数据保护算法的有效性。本文深入探讨了利用LDM…...
Oracle聚合函数LISTAGG和WM_CONCAT简介
目录 Oracle聚合函数LISTAGG和WM_CONCAT简介LISTAGG 函数1.语法2.示例3.去除重复值 WM_CONCAT 函数1.语法2.示例3.去除重复值 比较1.性能2.排序与分隔符3.去除重复值 Oracle聚合函数LISTAGG和WM_CONCAT简介 在处理数据库中的数据聚合任务时,我们经常需要将多行数据…...
【Unity】多种寻路算法实现 —— BFS,DFS,Dijkstra,A*
本实验寻路算法均基于网格实现,整体称呼为Grid,单个瓦片称之为Tile 考虑程序处理的简洁性,所有算法使用同一种Tile,且权值点,A*所需的记录数值也全部放在Tile中记录 前排贴上代码仓库链接: GitHub - Sir…...
十大游戏设计软件:创意实现的利器
在数字娱乐的多彩世界里,游戏设计无疑是一项充满创意与技术挑战的艺术。随着技术的进步,游戏设计师的手中拥有了一系列强大的工具,它们让想象中的世界得以呈现,让玩家的体验更加丰富和真实。本文将带你走进游戏设计的幕后…...
Pandas高级操作:多级索引、窗口函数、数据透视表等
在数据处理和分析中,pandas库提供了强大的功能,支持从简单到复杂的数据操作。本文将介绍一些pandas的高级操作,包括多级索引(MultiIndex)、窗口函数(Window Functions)、数据透视表与复杂聚合、数据合并与连接、高级数据变换以及时间序列数据的高级处理。 1. 多级索引(…...
mysql源码编译启动debug
对于没有C语言基础的同学来说,想看看源码,在搞定编辑器做debug的时候就被劝退了,发生点啥了,完全看不懂,不知道从哪里入手去做debug;我为了看看 mysql 的 insert buffer 到底存的是索引页还是数据页&#x…...
吴恩达机器学习-C1W3L2-逻辑回归之S型函数
可选实验:逻辑回归 在这个不评分的实验中,你会 探索sigmoid函数(也称为logistic函数)探索逻辑回归;哪个用到了s型函数 import numpy as np %matplotlib widget import matplotlib.pyplot as plt from plt_one_addpt_onclick import plt_one_addpt_onclick from l…...
P-one新增火焰图-为性能测试开启新视野
随着软件业务流程的日益复杂,传统的性能测试方法已经难以满足对性能问题精准定位的需求。测试人员需要一种更加直观、全面的方式来分析软件在运行过程中的性能表现,以便快速准确地找到性能瓶颈并进行优化。因此,我们在性能测试平台P-One中加入…...
CTF-web基础 TCP/UDP协议
传输层协议由TCP/UDP协议组成,来控制信息的传输,二者有什么区别呢,TCP比较靠谱,但是UDP速度比较快一点。 TCP协议 Transmission Control protocol, 三次握手:先给服务器传输询问要发消息,然后…...
sql常用语法总结
SQL(Structured Query Language,结构化查询语言)是一种用于管理和操作关系数据库的标准编程语言。本文用来记录一些接触到的sql语句,随着学习不断进行更新: 选择数据 - SELECT 语句用于从数据库表中检索数据。 SELECT column1, column2 FROM table_name;插入数据 - INSERT…...
实验八 题目描述 从键盘上输入任意一个整数(正负数皆可),判断该整数的绝对值是否为回文数。
实验八 题目描述 从键盘上输入任意一个整数(正负数皆可),判断该整数的绝对值是否为回文数。[提示:取数的绝对值,然后使用用循环语句从该绝对值的末位开始至最高位,重新构造一个数,…...
IsaacLab | Workflow 中 rsl_rl 的 play.py 脚本精读
如是我闻: 在用IsaacLab 做强化学习实验时,回顾已训练好的模型需要调用workflow中的play.py脚本,以下是对rsl_rl的play.py脚本的逐行精读。 1. 版权声明和文件描述 # Copyright (c) 2022-2024, The Isaac Lab Project Developers. # All ri…...
PYTHON专题-(8)我错了该怎么整?
什么是异常处理? 异常处理是一种机制,用于在程序执行期间发生错误或异常时,对发生的异常进行捕获、处理和恢复,以确保程序能够继续执行或正确地终止。异常处理可以包括捕获异常、处理异常,以及执行相应的操作来处理异常…...
【自然资源】设施农业用地的学习梳理
【自然资源】设施农业用地的学习梳理 什么是设施农业用地? 2019年12月17日,自然资源部 、农业农村部印发的《关于设施农业用地管理有关问题的通知》规定:设施农业用地包括农业生产中直接用于作物种植和畜禽水产养殖的设施用地。其中&#x…...
【秋招笔试】24-07-27-OPPO-秋招笔试题(后端卷)
🍭 大家好这里是清隆学长 ,一枚热爱算法的程序员 💻 ACM金牌团队🏅️ | 多次AK大厂笔试 | 编程一对一辅导 ✨ 本系列打算持续跟新 秋招笔试题 👏 感谢大家的订阅➕ 和 喜欢💗 ✨ 笔试合集传送们 -> 🧷春秋招笔试合集 💡 01.二进制反转游戏 问题描述 K小姐…...
JavaSec-RCE
简介 RCE(Remote Code Execution),可以分为:命令注入(Command Injection)、代码注入(Code Injection) 代码注入 1.漏洞场景:Groovy代码注入 Groovy是一种基于JVM的动态语言,语法简洁,支持闭包、动态类型和Java互操作性,…...
React 第五十五节 Router 中 useAsyncError的使用详解
前言 useAsyncError 是 React Router v6.4 引入的一个钩子,用于处理异步操作(如数据加载)中的错误。下面我将详细解释其用途并提供代码示例。 一、useAsyncError 用途 处理异步错误:捕获在 loader 或 action 中发生的异步错误替…...
脑机新手指南(八):OpenBCI_GUI:从环境搭建到数据可视化(下)
一、数据处理与分析实战 (一)实时滤波与参数调整 基础滤波操作 60Hz 工频滤波:勾选界面右侧 “60Hz” 复选框,可有效抑制电网干扰(适用于北美地区,欧洲用户可调整为 50Hz)。 平滑处理&…...
React第五十七节 Router中RouterProvider使用详解及注意事项
前言 在 React Router v6.4 中,RouterProvider 是一个核心组件,用于提供基于数据路由(data routers)的新型路由方案。 它替代了传统的 <BrowserRouter>,支持更强大的数据加载和操作功能(如 loader 和…...
中南大学无人机智能体的全面评估!BEDI:用于评估无人机上具身智能体的综合性基准测试
作者:Mingning Guo, Mengwei Wu, Jiarun He, Shaoxian Li, Haifeng Li, Chao Tao单位:中南大学地球科学与信息物理学院论文标题:BEDI: A Comprehensive Benchmark for Evaluating Embodied Agents on UAVs论文链接:https://arxiv.…...
FastAPI 教程:从入门到实践
FastAPI 是一个现代、快速(高性能)的 Web 框架,用于构建 API,支持 Python 3.6。它基于标准 Python 类型提示,易于学习且功能强大。以下是一个完整的 FastAPI 入门教程,涵盖从环境搭建到创建并运行一个简单的…...
linux arm系统烧录
1、打开瑞芯微程序 2、按住linux arm 的 recover按键 插入电源 3、当瑞芯微检测到有设备 4、松开recover按键 5、选择升级固件 6、点击固件选择本地刷机的linux arm 镜像 7、点击升级 (忘了有没有这步了 估计有) 刷机程序 和 镜像 就不提供了。要刷的时…...
全面解析各类VPN技术:GRE、IPsec、L2TP、SSL与MPLS VPN对比
目录 引言 VPN技术概述 GRE VPN 3.1 GRE封装结构 3.2 GRE的应用场景 GRE over IPsec 4.1 GRE over IPsec封装结构 4.2 为什么使用GRE over IPsec? IPsec VPN 5.1 IPsec传输模式(Transport Mode) 5.2 IPsec隧道模式(Tunne…...
【开发技术】.Net使用FFmpeg视频特定帧上绘制内容
目录 一、目的 二、解决方案 2.1 什么是FFmpeg 2.2 FFmpeg主要功能 2.3 使用Xabe.FFmpeg调用FFmpeg功能 2.4 使用 FFmpeg 的 drawbox 滤镜来绘制 ROI 三、总结 一、目的 当前市场上有很多目标检测智能识别的相关算法,当前调用一个医疗行业的AI识别算法后返回…...
大语言模型(LLM)中的KV缓存压缩与动态稀疏注意力机制设计
随着大语言模型(LLM)参数规模的增长,推理阶段的内存占用和计算复杂度成为核心挑战。传统注意力机制的计算复杂度随序列长度呈二次方增长,而KV缓存的内存消耗可能高达数十GB(例如Llama2-7B处理100K token时需50GB内存&a…...

