问题描述
我有一个 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 client 和 CSV 批量插入怎么样
- 创建包含内容的 csv 文件 (names.csv):
1,Stephana,Bromell
2,Babita,Leroux
3,Pace,Christofides
...
999,Ralph,Jackson
- 调用 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,'拉尔夫'、'杰克逊');