NiFi Processors之PutSQL

NiFi是一个数据处理和分发系统,其中很重要的一部分是处理器(Processors)。一个处理器组合系统间的数据路由、转换或调解。处理器可以访问给定FlowFile的属性及其内容流。处理器可以在给定的工作单元中对零个或多个FlowFile进行操作,并提交该工作或回滚。

本文介绍NiFi处理器之一 :PutSQL

描述

执行SQL UPDATE或INSERT命令。传入的FlowFile的内容应该是要执行的SQL命令。

属性

这里只介绍我使用过的配置:

名称默认值允许值描述提示
JDBC Connection PoolController Service API: DBCPService。 Implementations: DBCPConnectionPoolLookup; DBCPConnectionPool; HiveConnectionPool。指定要将JSON消息转换为SQL语句的JDBC连接池。必须使用连接池才能确定适当的数据库类型。用来执行适当数据库的插入或更新的SQL语句

使用说明

PutSQL处理器可以在配置中指定一个SQL语句,也可以直接执行流文件内容,这时,流文件内容是一条SQL语句。我使用的是后者这种方式,上游使用ReplaceText处理器生成SQL语句。

配置如下:

NameValue
JDBC Connection PoolPhoenixDBCPConnectionPool

PhoenixDBCPConnectionPool是DBCPConnectionPool类型的Controller Services,配置如下:

NameValue
Database Connection URLjdbc:phoenix:zk1,zk2,zk3:2181
Database Driver Class Nameorg.apache.phoenix.jdbc.PhoenixDriver
Database Driver Location(s)lib/phoenix/phoenix-4.13.1-HBase-1.2-client.jar

这里有个问题,HBase的zookeeper.znode.parent属性必须设置为 /hbase,NiFi的DBCPConnectionPool才能连接上,原因未知,需要解惑。这个可能需要在NiFi中指定hbase-site.xml,或者jdbc url指定为jdbc:phoenix:zk1,zk2,zk3:2181/hbase-unsecure,以此指定要连接的目标。

在NiFi中,路径值可以使用绝对路径,例如 Database Driver Location(s) 的执行还可以写成 file:///opt/phoenix/phoenix-4.13.1-HBase-1.2-client.jar,当然这里需要保证该文件路径准确

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值