【Apache NIFI Processor】自定义 iPutJDBC

Apache NiFi的iPutJDBC处理器用于将数据存入支持JDBC的数据库,如Oracle、SQL Server、MySQL等。配置包括数据库连接服务、表名、操作类型(INSERT、UPDATE、UPSERT、DELETE)、唯一标识键和更新忽略字段等。在UPDATE或DELETE操作中,可以设置主键或自定义唯一标识来定位行。同时,支持Avro和JSON格式的数据,并能进行大小写转换。当操作失败时,可以设置是否回滚事务。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

【Apache NIFI Processor】自定义 iPutJDBC

1 iPutJDBC NIFI 界面属性配置

iPutJDBC
描述:将数据存入支持jdbc的数据库。

注意:理论上可以支持所有的支持jdbc的数据,但是考虑到各数据库可能有自己的方言,目前支持oracle/sqlServer/mysql以及与mysql兼容的数据库。其他类型的数据并未做严格的测试。

属性名说明详细说明
JDBC-Type数据源类型 
Database Connection Pooling Service数据库连接服务 
Table Name数据库表名 
Put Record Statement Type操作类型INSERT:插入;
UPDATE:更新;
UPSERT:更新插入;
DELETE:删除;
USE_ATTR_TYPE:使用statement.type属性。属性的值需要为:INSERT、UPDATE、UPSERT或者是DELETE。
Data Type来源数据类型

avro / json

原始数据的格式,如果没有配置Record Reader,则此处会根据avro或者json来处理对应的数据。

如果是json,则要求是标准的只有一层嵌套的json数组或者是简单的json对象。

Update or Delete Key唯一值标识

逗号分隔的列名列表,用于唯一标识数据库中UPDATE/DELETE语句的行。

拼装后,相当于SQL中where中的语句。
1.当Put Record Statement Type=INSERT时,该属性不需要配置。
2.Put Record Statement Type=UPDATE/DELETE时:
 2.1.此属性不设置:

a. 此时将读取对应表中的主键,将做为UPDATE/DELETE数据的条件。如果既不设置,表中又没有主键, 将会提示错误

 b. 当目标数据库类型为mysql或者postgresql9.5以上版本时,若对应表的主键为比对key时,建议设空,性能较好

 2.2.如果设置了,将会根据设定的值去更新数据。

Not Update Column忽略更新的字段逗号分隔的列名列表,当操作类型为UPDATE时,此值中的列不会进行更新。
Case Convert表名和列名大小写转换

NONE/toUpperCase/toLowerCase

输入的表名及列名是否进行大小写转换。

Record Reader文件解析器。默认为Avro Reader。Avro为该数据流系统的通用格式,可以自动解析。如果源始数据不为avro,或者是不使用avro内置的schema,则需要进行相应的配置。
Statistics Name用于统计数据用的流程名称。如果不配置,将会使用默认的流程名
Rollback On Failure失败回滚 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

补充说明:

  • Database Connection Pooling Service:数据库连接服务,用于连接数据库edu_origin-sysadmin

2 iPutJDBC Dataflow 界面属性配置

数据开发--数据流工具--流程编排--加载--JDBC输出

 

属性名详细说明
数据源类型 
数据库连接数据库连接服务
表名 
操作类型INSERT:插入;
UPDATE:更新;
UPSERT:更新插入;
DELETE:删除;
USE_ATTR_TYPE:使用statement.type属性。属性的值需要为:INSERT、UPDATE、UPSERT或者是DELETE。
唯一值标识

逗号分隔的列名列表,用于唯一标识数据库中UPDATE/DELETE语句的行。

拼装后,相当于SQL中where中的语句。
1.当Put Record Statement Type=INSERT时,该属性不需要配置。
2.Put Record Statement Type=UPDATE/DELETE时:
 2.1.此属性不设置:

a. 此时将读取对应表中的主键,将做为UPDATE/DELETE数据的条件。如果既不设置,表中又没有主键, 将会提示错误

 b. 当目标数据库类型为mysql或者postgresql9.5以上版本时,若对应表的主键为比对key时,建议设空,性能较好

 2.2.如果设置了,将会根据设定的值去更新数据。

忽略更新的字段逗号分隔的列名列表,当操作类型为UPDATE时,此值中的列不会进行更新。
失败回滚 
来源数据类型

avro / json

原始数据的格式,如果没有配置Record Reader,则此处会根据avro或者json来处理对应的数据。

如果是json,则要求是标准的只有一层嵌套的json数组或者是简单的json对象。

输入的表名列名大小写转换

NONE/toUpperCase/toLowerCase

输入的表名及列名是否进行大小写转换。

Record Reader默认为Avro Reader。Avro为该数据流系统的通用格式,可以自动解析。如果源始数据不为avro,或者是不使用avro内置的schema,则需要进行相应的配置。
流程名称如果不配置,将会使用默认的流程名

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3 iPutJDBC 源码逻辑

 

 

 

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值