如何配置nifi invokehttp在clickhouse中发布insert

zhte4eai  于 2021-07-15  发布在  ClickHouse
关注(0)|答案(2)|浏览(458)

我在nifi属性中使用了与curl一起工作的full insert命令:

echo "INSERT INTO default.PERFTEST_BUFFER VALUES (1, '2020-04-09 19:06:02', 48.8644, 'A')" \
  | curl 'http://xxx.xxx.xxx.xxx:8123/?' --data-binary @-

插入属性:

INSERT INTO default.PERFTEST_BUFFER 
VALUES (1, '2020-04-09 19:06:02', 48.8644, 'A')

我不知道invokehttp处理器的所有参数应该是什么。
我用过前两种方法:

POST

  http://xxx.xxx.xxx.xxx:8123/

那我就迷路了。你知道怎么配置吗?

2fjabf4q

2fjabf4q1#

如果查询是静态的,则可以以编码格式在查询字符串中传递它:


# GET

curl 'http://xxx.xxx.xxx.xxx:8123/?query=INSERT%20INTO%20default.PERFTEST_BUFFER%20VALUES%20%281%2C%20%272020-04-09%2019%3A06%3A02%27%2C%2048.8644%2C%20%27A%27%29'

# POST

curl -d '' 'http://xxx.xxx.xxx.xxx:8123/?query=INSERT%20INTO%20default.PERFTEST_BUFFER%20VALUES%20%281%2C%20%272020-04-09%2019%3A06%3A02%27%2C%2048.8644%2C%20%27A%27%29'

它只需要将所需的值传递给两个参数:http方法和invokehttp处理器的远程url。

l2osamch

l2osamch2#

多亏了达Git和这里的例子,我才得以成功:
https://github.com/zezutom/nifibyexample
在invokehttp之前使用一个processor replacetext,用具有完整insert命令的变量“insert”值替换flowfile内容
搜索值(?s)(^.*$)
重置值${insert}
所以流文件的内容是

INSERT INTO default.PERFTEST_BUFFER VALUES (1, '2020-04-09 19:06:02', 48.8644, 'A')

然后由一个处理器调用以下参数
http方法发布
远程urlhttp://...:8123/
ssl上下文服务未设置值
连接超时5秒
读取超时15秒
包含日期标题为真
跟随重定向为真
不发送值集的属性
基本身份验证用户名未设置值
基本身份验证密码未设置值
代理配置服务未设置值
代理主机未设置值
代理端口未设置值
代理类型http
代理用户名未设置值
代理密码未设置值
将响应主体放入属性no value set中
要放入属性256的最大长度
使用摘要身份验证错误
始终输出响应true
将响应头添加到请求false
内容类型${mime.type}
发送消息正文为真
使用分块编码错误
惩罚“不重试”错误
使用http etag false
最大etag缓存大小为10mb

相关问题