使用请求通过 http 协议将设置发送到 clickhouse

时间:2021-04-15 13:30:32

标签: python python-requests clickhouse

通过 clickhouse-client 代码如下所示:

clickhouse-client --input_format_allow_errors_num=1
--input_format_allow_errors_ratio=0.1
--query="INSERT INTO db.table VALUES (..., ...., ...) FORMAT CSV"

我正在使用 requests,我的代码如下所示:

query = 'INSERT INTO db.table VALUES (..., ...., ...) FORMAT CSV'
r = requests.post(host, data=query, auth=(CH_USER, CH_PASSWORD), verify=True)

如何传递设置如

--input_format_allow_errors_num=1
--input_format_allow_errors_ratio=0.1

使用python-requests

1 个答案:

答案 0 :(得分:1)

看起来您将这些设置作为查询参数和 SQL 查询传递到 POST 响应正文中,但您似乎也可以将其包含在查询参数中。

import requests

auth = ("username", "password")
query = 'INSERT INTO db.table VALUES (..., ..., ...) FORMAT CSV'
params = {
    "input_format_allow_errors_num": 1,
    "input_format_allow_errors_ratio": 0.1
}

response = requests.post(host, data=query, params=params, auth=auth)

试一试。我从:https://clickhouse.tech/docs/en/interfaces/http/

相关问题