【问题标题】:How to insert data to Clickhouse from file by HTTP-interface?如何通过 HTTP 接口从文件向 Clickhouse 插入数据?
【发布时间】:2019-01-30 18:58:45
【问题描述】:

我想从文件中的每个 HTTP 接口向 ClickHouse 插入数据。 CSV、JSON、TabSeparated,没关系。

或者使用 yandex/clickhouse-server 向 Docker-container 插入数据。

使用 HTTP 接口,例如:

cat source.csv | curl 'http://localhost:8123/?query=INSERT INTO table FORMAT CSV'

以Docker-container为例:

docker run -it --rm --link some-clickhouse-server:clickhouse-server yandex/clickhouse-client --host clickhouse-server {THERE SOME OPTIONS ABOUT INSERT FROM FILE}

谢谢。

【问题讨论】:

  • 听起来你对HTTP请求格式很了解。您遇到了哪些具体问题?你有部分代码可以分享吗?
  • @DavidMaze no(我只想将文件中的数据放到 clickhouse 表中。
  • 听起来您正在寻找使用您选择的语言的教程来发出 HTTP POST 请求,或者可能是为您的数据库系统提供更好的 API。问 SO 问题不一定是最好的方法:更好的问题往往已经有几乎可以工作的代码。 SO 帮助中心的How to Ask 有一些建议。

标签: docker clickhouse


【解决方案1】:

curl 'http://localhost:8123/?query=INSERT+INTO+TABLE(field)+VALUES(data)%3b'

curl -d 'INSERT INTO T FORMAT JSONEachRow {"dataTime":"2020-12-19 03:00:00","transmit_bytes_max":123};' 'http://9.118.102.189:9200/?database=default'

curl 'http://localhost:8123/?query=INSERT%20INTO%20TABLE%20FORMAT%20CSV' --data-binary @source.csv

【讨论】:

    【解决方案2】:

    cat source.csv | curl 'http://localhost:8123/?query=INSERT%20INTO%20table%20FORMAT%20CSV' --data-binary @-

    【讨论】:

    • 虽然此代码可能会回答问题,但提供有关它如何和/或为什么解决问题的额外上下文将提高​​答案的长期价值。
    • --data-binary @- 参数使其使用标准输入内容执行 HTTP POST 查询,而默认情况下它只是 GET
    猜你喜欢
    • 2019-03-04
    • 1970-01-01
    • 1970-01-01
    • 2015-02-17
    • 1970-01-01
    • 2021-03-31
    • 1970-01-01
    • 2020-02-13
    • 1970-01-01
    相关资源
    最近更新 更多