NIFI使用(一)Mysql到Mysql的数据传输

前言

NIFI是一个强大的数据处理工具,APACHE的顶级项目,什么叫顶级?我也不知道,有兴趣的自己了解下。开始主要是如何使用NIFI,会用了再谈原理。
工具的作用在于减少人的劳作,增加劳动力,工具同时也是使大多数人变的不愿意思考的元凶。我们应该怀着超越该工具的思想去学习,站在巨人的肩膀上。

整体页面

首先看看整体页面
中间的白色板子是后面是传输流程。
我们先说下导航栏:从左到右的图标依次是。

Processor:nifi基本处理单元,目前所知,所有数据连接,数据处理都是在这个单元中做的。

Input Port:输入组件,主要应用于process group 接收外部数据流的时候使用。

Output Port:同input port,主要用于向外部输出数据流的时候使用。

Process group:相当于新建一个画布,可以在新画布写数据流程。

Remote Process group:远程执行用,两个NIFI实例之间互相通信使用。

Funnel:漏斗,将几种格式数据转换为一种输出,具体应用待测试,没用过。

Template:模板,顾名思义,将写好的流程可以组装成一个模板。

Label:便签,记录用。

组件通用页面


Penalty Duration 惩罚时间,当数据流传输过程中产生问题,允许组件对该数据流暂停处理一段时间
Yield Duration 延迟,越小代表越小的延迟,越小会造成浏览器的压力越大
其他都是处理器的基本属性,名称等等。值得注意的是右边的failure和success。如果该处理器没有下级组件,需要自己打勾。


Scheduling定时器:Concurrent Tasks 执行线程数量,Run Schedule 执行频率 10S。

Mysql到Mysql的数据传输


流程组件 ExecuteSQL->ConvertAvroToJSON->ReplaceText->ConvertJSONToSQL->PutSQL

ExecuteSQL:SQL执行,返回Avro格式(Avro NIFI中的数据格式,关系型数据库查出来的基本都是Avro格式)。

Database Connection Pooling Service:创建一个数据库连接池。具体配置点击箭头,参考JDBC连接。

ConvertAvroToJSON:将Avro格式数据转换成JSON。

ReplaceText:替换字符串。

ConvertJSONToSQL:将JSON格式转换为INSERT,UPDATE等SQL。

PutSQL:将之前的生成的SQL放到数据库执行。

LogAttribute:记录日志

4 thoughts on “NIFI使用(一)Mysql到Mysql的数据传输

  1. ReplaceText处理器中的Replacement Value属性, 如果值填写为$1, 指的是什么意思呢? 替换的值是数据中的第一个变量?

Shuai Kong进行回复 取消回复

电子邮件地址不会被公开。