当前位置: 首页 > 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可视化直观的跟踪和显示,尤其可以追溯每份数据处理的链路图,比如源头和处理的组件,类似数据的血缘追踪。

相关文章:

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

--->更多内容&#xff0c;请移步“鲁班秘笈”&#xff01;&#xff01;<--- “现在AI和数据处理密不可分&#xff0c;80%的企业可以利用Apache NiFi轻松解决复杂的数据问题&#xff0c;快速完成场景建设。犹如花上百来块钱在家享受一顿不亚于五星级西餐厅的法式大餐。对…...

Pyside6实战教程专栏目录

Pyside6实战教程&#x1f680; 专栏目录介绍 本专栏将详细地向Python开发者展示如何利用PySide6框架创建功能丰富的桌面应用程序。无论你是刚刚接触GUI编程的新手&#xff0c;还是希望快速提升自己技能水平的进阶用户&#xff0c;本文都将为你提供一系列简单易懂的教程&#xf…...

【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++ 几何算法 - 向量点乘,叉乘及其应用

一&#xff1a;点乘介绍 1. 向量点乘&#xff1a; 2. 向量点乘的性质&#xff1a; 3. 向量点乘公式&#xff1a; 4. 向量的点乘的属性&#xff1a; &#xff08;1&#xff09;&#xff1a;向量与自身做点乘&#xff0c;会得到向量长度的平方&#xff1a; &#xff08;2&#xf…...

Taro学习记录(具体项目实践)

一、安装taro-cli 二、项目文件 三、项目搭建 1、Eslint配置 在项目生成的 .eslintrc 中进行配置 {"extends": ["taro/react"], //一个配置文件&#xff0c;可以被基础配置中的已启用的规则继承"parser": "babel/eslint-parser…...

ICML 2024 | 矛与盾的较量!北大提出提示无关数据防御保护算法PID

文章链接&#xff1a;https://arxiv.org/pdf/2406.15305 代码地址&#xff1a;https://github.com/PKU-ML/Diffusion-PID-Protection 亮点直击 本文在实证观察中发现&#xff0c;保护阶段和利用阶段之间的提示不匹配可能会削弱当前数据保护算法的有效性。本文深入探讨了利用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简介 在处理数据库中的数据聚合任务时&#xff0c;我们经常需要将多行数据…...

【Unity】多种寻路算法实现 —— BFS,DFS,Dijkstra,A*

本实验寻路算法均基于网格实现&#xff0c;整体称呼为Grid&#xff0c;单个瓦片称之为Tile 考虑程序处理的简洁性&#xff0c;所有算法使用同一种Tile&#xff0c;且权值点&#xff0c;A*所需的记录数值也全部放在Tile中记录 前排贴上代码仓库链接&#xff1a; GitHub - Sir…...

十大游戏设计软件:创意实现的利器

在数字娱乐的多彩世界里&#xff0c;游戏设计无疑是一项充满创意与技术挑战的艺术。随着技术的进步&#xff0c;游戏设计师的手中拥有了一系列强大的工具&#xff0c;它们让想象中的世界得以呈现&#xff0c;让玩家的体验更加丰富和真实。本文将带你走进游戏设计的幕后&#xf…...

Pandas高级操作:多级索引、窗口函数、数据透视表等

在数据处理和分析中,pandas库提供了强大的功能,支持从简单到复杂的数据操作。本文将介绍一些pandas的高级操作,包括多级索引(MultiIndex)、窗口函数(Window Functions)、数据透视表与复杂聚合、数据合并与连接、高级数据变换以及时间序列数据的高级处理。 1. 多级索引(…...

mysql源码编译启动debug

对于没有C语言基础的同学来说&#xff0c;想看看源码&#xff0c;在搞定编辑器做debug的时候就被劝退了&#xff0c;发生点啥了&#xff0c;完全看不懂&#xff0c;不知道从哪里入手去做debug&#xff1b;我为了看看 mysql 的 insert buffer 到底存的是索引页还是数据页&#x…...

吴恩达机器学习-C1W3L2-逻辑回归之S型函数

可选实验:逻辑回归 在这个不评分的实验中&#xff0c;你会 探索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新增火焰图-为性能测试开启新视野

随着软件业务流程的日益复杂&#xff0c;传统的性能测试方法已经难以满足对性能问题精准定位的需求。测试人员需要一种更加直观、全面的方式来分析软件在运行过程中的性能表现&#xff0c;以便快速准确地找到性能瓶颈并进行优化。因此&#xff0c;我们在性能测试平台P-One中加入…...

CTF-web基础 TCP/UDP协议

传输层协议由TCP/UDP协议组成&#xff0c;来控制信息的传输&#xff0c;二者有什么区别呢&#xff0c;TCP比较靠谱&#xff0c;但是UDP速度比较快一点。 TCP协议 Transmission Control protocol&#xff0c; 三次握手&#xff1a;先给服务器传输询问要发消息&#xff0c;然后…...

sql常用语法总结

SQL(Structured Query Language,结构化查询语言)是一种用于管理和操作关系数据库的标准编程语言。本文用来记录一些接触到的sql语句,随着学习不断进行更新: 选择数据 - SELECT 语句用于从数据库表中检索数据。 SELECT column1, column2 FROM table_name;插入数据 - INSERT…...

实验八 题目描述 从键盘上输入任意一个整数(正负数皆可),判断该整数的绝对值是否为回文数。

实验八 题目描述 从键盘上输入任意一个整数&#xff08;正负数皆可&#xff09;&#xff0c;判断该整数的绝对值是否为回文数。&#xff3b;提示&#xff1a;取数的绝对值&#xff0c;然后使用用循环语句从该绝对值的末位开始至最高位&#xff0c;重新构造一个数&#xff0c;…...

IsaacLab | Workflow 中 rsl_rl 的 play.py 脚本精读

如是我闻&#xff1a; 在用IsaacLab 做强化学习实验时&#xff0c;回顾已训练好的模型需要调用workflow中的play.py脚本&#xff0c;以下是对rsl_rl的play.py脚本的逐行精读。 1. 版权声明和文件描述 # Copyright (c) 2022-2024, The Isaac Lab Project Developers. # All ri…...

PYTHON专题-(8)我错了该怎么整?

什么是异常处理&#xff1f; 异常处理是一种机制&#xff0c;用于在程序执行期间发生错误或异常时&#xff0c;对发生的异常进行捕获、处理和恢复&#xff0c;以确保程序能够继续执行或正确地终止。异常处理可以包括捕获异常、处理异常&#xff0c;以及执行相应的操作来处理异常…...

【自然资源】设施农业用地的学习梳理

【自然资源】设施农业用地的学习梳理 什么是设施农业用地&#xff1f; 2019年12月17日&#xff0c;自然资源部 、农业农村部印发的《关于设施农业用地管理有关问题的通知》规定&#xff1a;设施农业用地包括农业生产中直接用于作物种植和畜禽水产养殖的设施用地。其中&#x…...

【秋招笔试】24-07-27-OPPO-秋招笔试题(后端卷)

🍭 大家好这里是清隆学长 ,一枚热爱算法的程序员 💻 ACM金牌团队🏅️ | 多次AK大厂笔试 | 编程一对一辅导 ✨ 本系列打算持续跟新 秋招笔试题 👏 感谢大家的订阅➕ 和 喜欢💗 ✨ 笔试合集传送们 -> 🧷春秋招笔试合集 💡 01.二进制反转游戏 问题描述 K小姐…...

网络六边形受到攻击

大家读完觉得有帮助记得关注和点赞&#xff01;&#xff01;&#xff01; 抽象 现代智能交通系统 &#xff08;ITS&#xff09; 的一个关键要求是能够以安全、可靠和匿名的方式从互联车辆和移动设备收集地理参考数据。Nexagon 协议建立在 IETF 定位器/ID 分离协议 &#xff08;…...

【Linux】shell脚本忽略错误继续执行

在 shell 脚本中&#xff0c;可以使用 set -e 命令来设置脚本在遇到错误时退出执行。如果你希望脚本忽略错误并继续执行&#xff0c;可以在脚本开头添加 set e 命令来取消该设置。 举例1 #!/bin/bash# 取消 set -e 的设置 set e# 执行命令&#xff0c;并忽略错误 rm somefile…...

CMake基础:构建流程详解

目录 1.CMake构建过程的基本流程 2.CMake构建的具体步骤 2.1.创建构建目录 2.2.使用 CMake 生成构建文件 2.3.编译和构建 2.4.清理构建文件 2.5.重新配置和构建 3.跨平台构建示例 4.工具链与交叉编译 5.CMake构建后的项目结构解析 5.1.CMake构建后的目录结构 5.2.构…...

第 86 场周赛:矩阵中的幻方、钥匙和房间、将数组拆分成斐波那契序列、猜猜这个单词

Q1、[中等] 矩阵中的幻方 1、题目描述 3 x 3 的幻方是一个填充有 从 1 到 9 的不同数字的 3 x 3 矩阵&#xff0c;其中每行&#xff0c;每列以及两条对角线上的各数之和都相等。 给定一个由整数组成的row x col 的 grid&#xff0c;其中有多少个 3 3 的 “幻方” 子矩阵&am…...

Mysql中select查询语句的执行过程

目录 1、介绍 1.1、组件介绍 1.2、Sql执行顺序 2、执行流程 2.1. 连接与认证 2.2. 查询缓存 2.3. 语法解析&#xff08;Parser&#xff09; 2.4、执行sql 1. 预处理&#xff08;Preprocessor&#xff09; 2. 查询优化器&#xff08;Optimizer&#xff09; 3. 执行器…...

C++课设:简易日历程序(支持传统节假日 + 二十四节气 + 个人纪念日管理)

名人说:路漫漫其修远兮,吾将上下而求索。—— 屈原《离骚》 创作者:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 专栏介绍:《编程项目实战》 目录 一、为什么要开发一个日历程序?1. 深入理解时间算法2. 练习面向对象设计3. 学习数据结构应用二、核心算法深度解析…...

STM32HAL库USART源代码解析及应用

STM32HAL库USART源代码解析 前言STM32CubeIDE配置串口USART和UART的选择使用模式参数设置GPIO配置DMA配置中断配置硬件流控制使能生成代码解析和使用方法串口初始化__UART_HandleTypeDef结构体浅析HAL库代码实际使用方法使用轮询方式发送使用轮询方式接收使用中断方式发送使用中…...

【Android】Android 开发 ADB 常用指令

查看当前连接的设备 adb devices 连接设备 adb connect 设备IP 断开已连接的设备 adb disconnect 设备IP 安装应用 adb install 安装包的路径 卸载应用 adb uninstall 应用包名 查看已安装的应用包名 adb shell pm list packages 查看已安装的第三方应用包名 adb shell pm list…...

Python 高效图像帧提取与视频编码:实战指南

Python 高效图像帧提取与视频编码:实战指南 在音视频处理领域,图像帧提取与视频编码是基础但极具挑战性的任务。Python 结合强大的第三方库(如 OpenCV、FFmpeg、PyAV),可以高效处理视频流,实现快速帧提取、压缩编码等关键功能。本文将深入介绍如何优化这些流程,提高处理…...

Java详解LeetCode 热题 100(26):LeetCode 142. 环形链表 II(Linked List Cycle II)详解

文章目录 1. 题目描述1.1 链表节点定义 2. 理解题目2.1 问题可视化2.2 核心挑战 3. 解法一&#xff1a;HashSet 标记访问法3.1 算法思路3.2 Java代码实现3.3 详细执行过程演示3.4 执行结果示例3.5 复杂度分析3.6 优缺点分析 4. 解法二&#xff1a;Floyd 快慢指针法&#xff08;…...