Formats des données d’entrée et de sortie
Formats d’entrée
- Analyser les données fournies aux instructions
INSERT - Exécuter des requêtes
SELECTà partir de tables basées sur des fichiers, telles queFile,URLouHDFS - Lire des dictionnaires
- Le format Native est le format d’entrée le plus efficace, offrant la meilleure compression, la plus faible consommation de ressources et un minimum de surcoût de traitement côté serveur.
- La compression est essentielle - LZ4 réduit la taille des données avec un coût CPU minimal, tandis que ZSTD offre un taux de compression plus élevé au prix d’une utilisation supplémentaire du CPU.
- Le prétri a un impact modéré, car ClickHouse trie déjà efficacement.
- Le traitement par lots améliore considérablement l’efficacité - des lots plus volumineux réduisent le surcoût des insertions et améliorent le débit.
Formats de sortie
- Organiser les résultats d’une requête
SELECT - Effectuer des opérations
INSERTdans des tables basées sur des fichiers
Aperçu des formats
Schéma de format
format_schema.
Il est nécessaire de définir ce paramètre lorsque l’un des formats Cap'n Proto ou Protobuf est utilisé.
Le schéma de format est une combinaison d’un nom de fichier et du nom d’un type de message dans ce fichier, séparés par deux-points,
par ex. schemafile.proto:MessageType.
Si le fichier possède l’extension standard du format (par exemple, .proto pour Protobuf),
celle-ci peut être omise et, dans ce cas, le schéma de format prend la forme schemafile:MessageType.
Si vous importez ou exportez des données via le client en mode interactif, le nom du fichier spécifié dans le schéma de format
peut contenir un chemin absolu ou un chemin relatif au répertoire courant sur le client.
Si vous utilisez le client en mode batch, le chemin du schéma doit être relatif pour des raisons de sécurité.
Si vous importez ou exportez des données via l’interface HTTP, le nom du fichier spécifié dans le schéma de format
doit se trouver dans le répertoire indiqué par format_schema_path
dans la configuration du serveur.
Ignorer les erreurs
CSV, TabSeparated, TSKV, JSONEachRow, Template, CustomSeparated et Protobuf peuvent ignorer une ligne corrompue en cas d’erreur d’analyse et reprendre l’analyse au début de la ligne suivante. Consultez les paramètres input_format_allow_errors_num et
input_format_allow_errors_ratio.
Limites :
- En cas d’erreur d’analyse,
JSONEachRowignore toutes les données jusqu’au saut de ligne (ou à la fin du fichier), donc les lignes doivent être délimitées par\npour que les erreurs soient correctement comptabilisées. TemplateetCustomSeparatedutilisent le délimiteur après la dernière colonne et le délimiteur entre les lignes pour repérer le début de la ligne suivante ; l’ignorance des erreurs ne fonctionne donc que si au moins l’un des deux n’est pas vide.