Wie füge ich große Datenmengen in eine ClickHouse-Datenbank ein?
Ich habe eine Instanz eines ClickHouse-Servers ausgeführt und eine erfolgreiche Verbindung über einen Client hergestellt. Ich verwende Tabix.io, um meine Abfragen auszuführen. Ich habe eine Datenbank und eine Tabelle mit dem Namen "Namen" erstellt. Ich möchte viele zufällig generierte Namen in diese Tabelle eingeben. Ich weiß, dass mehrere Befehle wie folgt ausgeführt werden:
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');
wird nicht unterstützt und daher wird nur die erste Abfrage ausgeführt. Mit anderen Worten, nur Stephana Bromell erscheint in der Tabelle "Namen".
Was ist die ClickHouse-Alternative zum Einfügen größerer Datenmengen?
Antworten
Wie wäre es mit Batch-Einfügung mit http-Client mit CSV
- Erstellen Sie eine CSV-Datei (names.csv) mit Inhalt:
1,Stephana,Bromell
2,Babita,Leroux
3,Pace,Christofides
...
999,Ralph,Jackson
- HTTP-API aufrufen:
curl -i -X POST \
-T "./names.csv" \
'http://localhost:8123/?query=INSERT%20INTO%20names%20FORMAT%20CSV'
mehrere Werte in einer einzigen Einfügung.
In Namen (ID, Vorname, Nachname) Werte einfügen (1, 'Stephana', 'Bromell') (2, 'Babita', 'Leroux') (3, 'Tempo', 'Christofides') (999, 'Ralph' , 'Jackson');