Passer au contenu principal
La clause INTO OUTFILE redirige le résultat d’une requête SELECT vers un fichier côté client. Les fichiers compressés sont pris en charge. Le type de compression est détecté à partir de l’extension du nom de fichier (le mode 'auto' est utilisé par défaut). Il peut également être spécifié explicitement dans une clause COMPRESSION. Le niveau de compression pour un type de compression donné peut être spécifié dans une clause LEVEL. Syntaxe
SELECT <expr_list> INTO OUTFILE file_name [AND STDOUT] [APPEND | TRUNCATE] [COMPRESSION type [LEVEL level]]
file_name et type sont des chaînes de caractères littérales. Les types de compression pris en charge sont : 'none', 'gzip', 'deflate', 'br', 'xz', 'zstd', 'lz4', 'bz2'. level est un littéral numérique. Les entiers positifs des plages suivantes sont pris en charge : 1-12 pour le type lz4, 1-22 pour le type zstd et 1-9 pour les autres types de compression.

Détails d’implémentation

  • Cette fonctionnalité est disponible dans le client en ligne de commande et clickhouse-local. Par conséquent, une requête envoyée via l’interface HTTP échouera.
  • La requête échouera si un fichier portant le même nom existe déjà.
  • Le format de sortie par défaut est TabSeparated (comme dans le mode batch du client en ligne de commande). Utilisez la clause FORMAT pour le modifier.
  • Si AND STDOUT est mentionné dans la requête, la sortie écrite dans le fichier est également affichée sur la sortie standard. En cas d’utilisation de la compression, le texte en clair est affiché sur la sortie standard.
  • Si APPEND est mentionné dans la requête, la sortie est ajoutée à un fichier existant. Si la compression est utilisée, APPEND ne peut pas être utilisé.
  • Lors de l’écriture dans un fichier qui existe déjà, APPEND ou TRUNCATE doit être utilisé.
Exemple Exécutez la requête suivante à l’aide du client en ligne de commande :
Query
clickhouse-client --query="SELECT 1,'ABC' INTO OUTFILE 'select.gz' FORMAT CSV;"
zcat select.gz 
Response
1,"ABC"
Dernière modification le 25 juin 2026