【NiFi csv to mysql系列】二 JSON文件写入数
2018-08-16 本文已影响238人
JokerRun
Abstract
本文的主要目的是将一个JSON格式的文件写入到数据库中
整体流程
包含三个Processor:
GetFile:读取json格式的文件
ConvertJSONToSQL:将json中的元素转化为sql中的insert语句
PutSQL:执行上一个processor生成的sql语句,将json中的元素插入到数据库中

详细配置
GetFile处理器
此处理器的配置已经在上一篇文章中进行了介绍,这里将省略此部分内容,输入的文件为包含一个json元素的文件:

ConvertJSONToSQL处理器
注意:该处理器有一个特性,只能处理flat json,所谓flat是指it consists of a single JSON element and each field maps to a simple type

其中的参数:
JDBC Connection Pool:根据要连接的数据库类型选择,我要连接的是mysql数据库,因此选择DBCPConnectionPool
Statement Type:设置要执行的操作,INSERT和UPDATE等,这里要执行的是插入操作
Translate Field Name: 如果json中元素的属性名称与数据表中的列名称一致,则选择false,否则选择true
JDBC Connection Pool的属性后面有一个小箭头,点击箭头对此项进行设置:

实际上这个java连接数据的设置是一致的,
Database Driver Class Name: 根据要连接的数据库类型选择
Database Driver location:选择对应数据库连接jar包的完整路径
Database User:登录数据库的用户名
Password:用户名对应的密码
PutSQL处理器
这里只设定了 JDBC Connection Pool

对应数据库表的结构:

至此已经完成了将一条json数据插入到数据库中

目前只能插入单条的json记录,接下来将探索如何将包含多条记录的json文件写入到数据库中