之前一段时间从事nifi的开发工作,想总结一些经验以便大家快速上手nifi
etl工具nifi使用系列(一):nifi介绍及基本概念
etl工具nifi使用系列(二):简单数据处理processor的使用
etl工具nifi使用系列(三):关于nifi Expression Language 表达式
etl工具nifi使用系列(四):打印日志调试
etl工具nifi使用系列(五):与外部交互(HDFS、mysql、kafka)
etl工具nifi使用系列(六):使用ExecuteScript执行脚本
etl工具nifi使用系列(七):开发自己的processor
etl工具nifi使用系列(八):调用rest api
nifi官方网站:http://nifi.apache.org/
Apache NiFi supports powerful and scalable directed graphs of data
routing, transformation, and system mediation logic. Some of the
high-level capabilities and objectives of Apache NiFi include:
- Web-based user interface
- Seamless experience between design, control, feedback, and monitoring
- Highly configurable
- Loss tolerant vs guaranteed delivery
- Low latency vs high throughput
- Dynamic prioritization
- Flow can be modified at runtime
- Back pressure
- Data Provenance
- Track dataflow from beginning to end
- Designed for extension
- Build your own processors and more
- Enables rapid development and effective testing
- Secure
- SSL, SSH, HTTPS, encrypted content, etc…
- Multi-tenant authorization and internal authorization/policy management
nifi:一个易用、强大、可靠的数据处理与分发系统
- 可视化命令与控制
- 设计,控制,反馈和监测之间的无缝体验
- 高度可配置
- 损失容忍vs保证交付
- 低延迟vs高吞吐量
- 动态优先
- 流可以在运行时修改
- 数据回压
- 数据溯源
- 从头到尾跟踪数据流
- 为可扩展而设计
- 建立自己的处理器和更多
- 快速开发和有效的测试
- 安全
- SSL,SSH,HTTPS,加密内容等
- 多租户授权和内部授权/策略管理
nifi是将数据转换成一种流的形式在各种处理器之间进行处理转换的etl工具,它通过可视化可操作的用户界面来编辑数据,更加直观有效。
常用术语介绍:
FlowFile
一个FlowFile代表每个被系统处理的数据对象,一个FlowFile由两部分组成:属性(FlowFile Attributes)和内容(FlowFile Content)。内容是数据本身,属性是与数据相关的key-value的键值对,用于描述数据。所有flowFile都有以下标准属性:uuid、filename、pathFlowFile Processor
Processor是NiFi的组件,可以用来创建、发送、接受、转换、路由、割裂、合并、处理FlowFiles。在用户建立数据流时,Processor是最重要的组成部分Connection
提供Processors之间的连接,用来定义Processors之间的执行关系,并允许不同Processors之间以不同的速度进行交互Flow Controller
其负责维护Processors之间的关联信息,并且管理所有进程对于线程的使用、分配Process Group
一个特定集合的Processors与它们之间的连接关系形成一个Process Group,其定义了从接受端口接受数据到通过发送端口发送数据之间,整个数据流的处理过程。并可以通过简单组合其它的部件来创建新的部件