NIFI数据处理及Mysql入库流程
本文章用于记录nifi的整个入库流程,其中需要用到的professor为:GetFile,UpdateAttribute,ConvertRecord,ConvertJsonToSQL,PutSQL五个组件。
整体流程:
CSV源文件为:
数据库对应表格为:
下面分别介绍每个professor的作用及配置:
-
GetFile:
首先通过GetFile读取csv文件,配置professor:
依次填写Input Directory、Path Filter
-
UpdateAttribute:
通过该processor为将要处理的FlowFile添加属性,便于后续处理:
-
ConvertRecord:
将csv文件的数据转换为json数据:
分别选择CSVReader、JsonRecordSetWriter,并对其进行配置:
CSVReader的配置为:
注意第一行header的处理:
配置Schema Registry:
名称和之前填写的schema.name一致,其中对应的json内容为:
{
"type":"record",
"name":"ClassRecord",
"fields":[
{"name":"name","type":["null","string"]},
{"name":"id","type":"long"}
]
}
json内容意为该数据的类型,数据对应的数据库类型。
配置JsonRecordSetWriter:
填写相同的参数,及使用同一个registry。
-
ConvertJSONToSQL:
配置数据库设置:
分别填写对应的参数,并且准备好jar包,我这里使用的是最新的8.22的mysql包:
-
PutSQL:
最后将json数据转换为sql,进行入库:
此文章仅作为记录,后续如果有问题会做进一步改进及丰富。
参考文章: