Comment insérer une grande quantité de données dans une base de données ClickHouse?
J'ai une instance d'un serveur ClickHouse en cours d'exécution et je me suis connecté avec succès via un client. J'utilise Tabix.io pour exécuter mes requêtes. J'ai créé une base de données et une table appelée "noms". Je veux entrer beaucoup de noms générés aléatoirement dans cette table. Je sais que l'exécution de plusieurs commandes comme celle-ci:
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');
n'est pas pris en charge et par conséquent, ce n'est que la première requête qui est exécutée. En d'autres termes, seule Stephana Bromell apparaît dans le tableau des «noms».
Quelle est l'alternative ClickHouse pour insérer de plus grandes quantités de données?
Réponses
Que diriez-vous de l'insertion par lots à l'aide du client http avec CSV
- créer un fichier csv (names.csv) avec du contenu:
1,Stephana,Bromell
2,Babita,Leroux
3,Pace,Christofides
...
999,Ralph,Jackson
- appeler l'API HTTP:
curl -i -X POST \
-T "./names.csv" \
'http://localhost:8123/?query=INSERT%20INTO%20names%20FORMAT%20CSV'
plusieurs valeurs dans une seule insertion.
insérer dans les noms (id, prénom, nom) les valeurs (1, 'Stephana', 'Bromell') (2, 'Babita', 'Leroux') (3, 'Pace', 'Christofides') (999, 'Ralph' , «Jackson»);