ClickHouse DBに大量のデータを挿入するにはどうすればよいですか?

Dec 21 2020

ClickHouseサーバーのインスタンスを実行していて、クライアントを介して正常に接続しました。Tabix.ioを使用してクエリを実行しています。「names」という名前のDBとテーブルを作成しました。そのテーブル内にランダムに生成された名前をたくさん入力したいと思います。私はこのような複数のコマンドを実行することを知っています:

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');

はサポートされていないため、実行されるのは最初のクエリのみです。つまり、「名前」テーブルにはStephanaBromellのみが表示されます。

大量のデータを挿入するためのClickHouseの代替手段は何ですか?

回答

5 Yongfeng Dec 23 2020 at 11:12

CSVでhttpクライアントを使用してバッチ挿入するのはどうですか

  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

1回の挿入で複数の値。

名前に挿入(id、first_name、last_name)値(1、 'Stephana'、 'Bromell')(2、 'Babita'、 'Leroux')(3、 'Pace'、 'C​​hristofides')(999、 'Ralph' 、 'ジャクソン');