如何将大量数据插入 ClickHouse 数据库?

问题描述

我有一个 ClickHouse 服务器实例正在运行,并且我已通过客户端成功连接到它。我正在使用 Tabix.io 来运行我的查询。我创建了一个数据库一个名为“名称”的表。我想在该表中输入很多随机生成名称。我知道运行多个这样的命令:

insert into names (id,first_name,last_name) values (1,'Stephana','bromell');
insert into names (id,last_name) values (2,'Babita','Leroux');
insert into names (id,last_name) values (3,'Pace','Christofides');
...
insert into names (id,last_name) values (999,'Ralph','Jackson');

不受支持,因此它只是执行的第一个查询。换句话说,只有 Stephana bromell 出现在“名称”表中。

用于插入大量数据的 ClickHouse 替代方案是什么?

解决方法

使用 http clientCSV 批量插入怎么样

  1. 创建包含内容的 csv 文件 (names.csv):
1,Stephana,Bromell
2,Babita,Leroux
3,Pace,Christofides
...
999,Ralph,Jackson
  1. 调用 HTTP API:
curl -i -X POST \
   -T "./names.csv" \
 'http://localhost:8123/?query=INSERT%20INTO%20names%20FORMAT%20CSV'
,

单个插入中的多个值。

插入名字 (id,first_name,last_name) 值 (1,'Stephana','Bromell') (2,'Babita','Leroux') (3,'Pace','Christofides') (999,'拉尔夫'、'杰克逊');