ConvertJSONToSQL
将JSON对象或数组根据数据库表转换成对应的SQL语句(增、删、改)
参数说明
数据库连接池
指定生成SQL对应表的所在数据库的连接池服务
SQL语句类型
指定生成的SQL语句类型
- update
- insert
- delete
表名
指定数据库中需要操作的表名
Catalog
指定需要操作的Catalog名称,若没有则留空
Schema
指定表所属的Schema名称,若没有则留空
转换字段名
若该属性为true,则组件会将JSON字段名称转换大写并且删除下划线,用以匹配数据库中表字段;若为false,则JSON字段名必须完全配数据库中表的字段名
字段不匹配处理
若传入的JSON字段中有与数据库中字段不匹配的情况,此属性决定如何处理该字段
列不匹配处理
若数据库表中有字段在JSON中无法匹配,此属性决定如何处理
更新键
指定用于更新操作的字段,多个字段以逗号分隔
转定义列名
转义列名,指定是否允许在表中使用保留字作为列名
转定义表名
转义列名,指定是否允许使用特殊字符作为表名
SQL参数的属性前缀
组件生成的sql语句为了避免SQL注入,会将具体数据以键值对的形式存放到数据流属性中,此属性指定键名的前缀
输出连线
- failure连线表示转换SQL失败的数据流输出
- sql连线表示转换成功的sql语句输出
- original连线表示转换成功后原始的数据流输出
示例
GenerateFlowFile配置
为避免生成过多数据,将组件”调度“中的”运行安排“设置为7 days
。
再将”自定义文本“设置为:
{
"id":7,
"name":"Birdie Barton",
"city":"Hemfazu",
"birthday":"1989-11-11"
}
流程说明
在此流程中,会根据JSON数据生成对应的SQL语句,同时在指定的数据库中进行相应操作,使用时需谨慎操作
ConvertJSONToSQL设置
以将JSON转为SQL语句插入Mysql为例,设置了数据库连接池
为MySQL数据库连接,SQL语句类型
为INSERT,表名
为待插入数据的表lzw_user,其余属性保持默认配置。
结果
最后输出结果如下:
- sql连线输出结果
- original连线输出结果
流程模板
参见附件(请右键另存保存):模板文件