Nifi的使用
使用nifi前,需要知道ETL在做什么,如果源端和目标端栏位不匹配,就需要用到小帮手,
让你更直观的了解映射关系,才能更好的构建DataFlow
第一步:Nifi开发之小帮手TableMapping.
第二步:Nifi开发之自动生成DataFolw.
1.官方文档
官方文档地址:https://nifi.apache.org/docs.html.
2.Nifi简介
Apache NiFi 是一个易于使用、功能强大而且可靠的数据处理和分发系统。Apache NiFi 是为数据流设计。它支持强大且可高度配置的基于有向图的数据路由、转换和系统中介逻辑,支持从多种数据源动态拉取数据。Apache NiFi原来是NSA的一个项目,现在开源出来,由Apache基金会进行管理。
Apache NiFi是基于Java开发,使用Maven支持包的构建管理。Apache NiFi基于Web方式工作,后台在服务器上进行调度。可以为数据处理定义一个流程,然后进行处理,后台具有数据处理引擎、任务调度等组件。
主要特性
- 1.基于web的用户界面
无缝体验设计、控制、反馈和监控 - 2.高度可配置
数据丢失容错和保证交付
低延迟和高吞吐量
动态优先级
流可以在运行时修改
背压(Back presure) - 3.数据来源
从始至终跟踪数据流 - 4.为扩展设计
构建自己的数据处理器和更多组件
支持快速开发和有效的测试 - 5.安全
支持SSL,SSH,HTTPS加密内容,等等……
多租户授权和内部授权/策略管理
3.简单使用
导航栏功能非常强大
1.nifi dataflow的基本单元processor,就是将一个需求分成多个步骤去完成
2.Input Port类似于一个接口,链接Output Port
3.当一个processor group将数据处理完,把结果传给另一个processor group的时候,就要用到它
4.一组processor的集合,可以理解为一个processor group就是一个功能,它需要多个processor协调合作来完成
5.拉取远端的processor group
6.多路分支合并到一条路
7.下载Template
8.标签,可以做标注
4.Template
在nifi中,每一张表数据的迁移,都会用到很多固定的processor
所以,我们会将做好的DataFlow,提高其扩展性,制成Template
1.需要每次都修改的部分使用全局变量
2.不同的场景使用不同的script
将通用性比较好的Dataflow放到processor group中
最好有Naming Rule
使用时拉一个processor group,点击 import
也可以右上角去选择
制作完Template,目前阶段还是纯手动
1.手动拉取Template
2.手动修改全局变量
后面就是sql查询要迁移的table 信息,然后用程序自动构建NiFi DataFlow,
我们是通过Excel获取table的信息
以及source table 和target table的mapping 关系