Как вставить большой объем данных в базу данных ClickHouse?

Dec 21 2020

У меня работает экземпляр сервера ClickHouse, и я успешно подключился к нему через клиента. Я использую Tabix.io для выполнения своих запросов. Я создал БД и таблицу под названием «имена». Я хочу ввести в эту таблицу множество случайно сгенерированных имен. Я знаю, что выполняется несколько таких команд:

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

не поддерживается, поэтому выполняется только первый запрос. Другими словами, в таблице «имена» появляется только Стефана Бромелл .

Какая альтернатива ClickHouse для вставки больших объемов данных?

Ответы

5 Yongfeng Dec 23 2020 at 11:12

Как насчет пакетной вставки с использованием http-клиента с CSV

  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'
4 DennyCrane Dec 22 2020 at 05:11

несколько значений в одной вставке.

вставить в имена (id, first_name, last_name) значения (1, 'Stephana', 'Bromell') (2, 'Babita', 'Leroux') (3, 'Pace', 'Christofides') (999, 'Ralph' , «Джексон»);