Installation
Exécuter
Si vous avez seulement téléchargé ClickHouse sans l’installer, utilisez
./clickhouse client au lieu de clickhouse-client.| Option | Description |
|---|---|
--port <port> | Le port sur lequel le serveur ClickHouse accepte les connexions. Les ports par défaut sont 9440 (TLS) et 9000 (sans TLS). Notez que ClickHouse Client utilise le protocole natif, et non HTTP(S). |
-s [ --secure ] | Indique s’il faut utiliser TLS (généralement détecté automatiquement). |
-u [ --user ] <username> | L’utilisateur de base de données avec lequel se connecter. Par défaut, la connexion s’effectue avec l’utilisateur default. |
--password <password> | Le mot de passe de l’utilisateur de base de données. Vous pouvez également spécifier le mot de passe d’une connexion dans le fichier de configuration. Si vous ne spécifiez pas le mot de passe, le client le demandera. |
-c [ --config ] <path-to-file> | L’emplacement du fichier de configuration de ClickHouse Client, s’il ne se trouve pas dans l’un des emplacements par défaut. Voir Fichiers de configuration. |
--connection <name> | Le nom de détails de connexion préconfigurés issus du fichier de configuration. |
Se connecter à ClickHouse Cloud
Choisissez Native : les informations de connexion s’affichent avec un exemple de commande
clickhouse-client :
Stocker des connexions dans un fichier de configuration
Afin de se concentrer sur la syntaxe des requêtes, les exemples suivants omettent les informations de connexion (
--host, --port, etc.). N’oubliez pas de les ajouter lorsque vous utilisez ces commandes.Mode interactif
Utilisation du mode interactif
PrettyCompact.
Vous pouvez modifier le format dans la clause FORMAT de la requête ou en spécifiant l’option de ligne de commande --format.
Pour utiliser le format Vertical, vous pouvez utiliser --vertical ou ajouter \G à la fin de la requête.
Dans ce format, chaque valeur est affichée sur une ligne distincte, ce qui est pratique pour les tables larges.
En mode interactif, par défaut, tout ce que vous saisissez est exécuté lorsque vous appuyez sur Enter.
Il n’est pas nécessaire de terminer la requête par un point-virgule.
Vous pouvez démarrer le client avec le paramètre -m, --multiline.
Pour saisir une requête sur plusieurs lignes, entrez une barre oblique inverse \ avant le retour à la ligne.
Après avoir appuyé sur Enter, vous serez invité à saisir la ligne suivante de la requête.
Pour exécuter la requête, terminez-la par un point-virgule et appuyez sur Enter.
ClickHouse Client est basé sur replxx (similaire à readline), il utilise donc des raccourcis clavier familiers et conserve un historique.
L’historique est écrit dans ~/.clickhouse-client-history par défaut.
Pour quitter le client, appuyez sur Ctrl+D ou saisissez l’une des commandes suivantes à la place d’une requête :
exitouexit;quitouquit;q,Qou:qlogoutoulogout;
Informations sur le traitement des requêtes
- La progression, qui n’est, par défaut, pas mise à jour plus de 10 fois par seconde. Pour les requêtes rapides, elle peut ne pas avoir le temps de s’afficher.
- La requête mise en forme après l’analyse, à des fins de débogage.
- Le résultat dans le format spécifié.
- Le nombre de lignes du résultat, le temps écoulé et la vitesse moyenne de traitement de la requête. Tous les volumes de données se rapportent à des données non compressées.
Ctrl+C.
Cependant, vous devrez tout de même attendre un peu que le serveur interrompe la requête.
Il n’est pas possible d’annuler une requête à certaines étapes.
Si vous n’attendez pas et appuyez une deuxième fois sur Ctrl+C, le client se fermera.
ClickHouse Client permet de transmettre des données externes (tables temporaires externes) pour exécuter des requêtes.
Pour plus d’informations, consultez la section Données externes pour le traitement des requêtes.
Aliases
\l- SHOW DATABASES\d- SHOW TABLES\c <DATABASE>- USE DATABASE.- répéter la dernière requête
Raccourcis clavier
Alt (Option) + Shift + e- ouvre l’éditeur avec la requête en cours. Il est possible de définir l’éditeur à utiliser via la variable d’environnementEDITOR. Par défaut,vimest utilisé.Alt (Option) + #- commenter la ligne.Ctrl + r- recherche floue dans l’historique.
Mode batch
Utiliser le mode batch
--query en ligne de commande :
stdin :
messages existe, vous pouvez également insérer des données depuis la ligne de commande :
--query est spécifié, toute entrée est ajoutée à la requête après un retour à la ligne.
Insertion d’un fichier CSV dans un service ClickHouse distant
cell_towers.csv, dans la table existante cell_towers de la base de données default :
Exemples d’insertion de données en ligne de commande
cat <<_EOF démarre un heredoc qui lit tout le contenu jusqu’à ce qu’il rencontre à nouveau _EOF, puis l’affiche :
cat, puis transmis à clickhouse-client via un pipe en entrée :
TabSeparated.
Vous pouvez définir le format dans la clause FORMAT de la requête, comme indiqué dans l’exemple ci-dessus.
Requêtes paramétrées
Syntaxe de la requête
| Paramètre | Description |
|---|---|
name | Identifiant de substitution. L’option de ligne de commande correspondante est --param_<name> = value. |
data type | type de données du paramètre. Par exemple, une structure de données comme (integer, ('string', integer)) peut avoir pour type de données Tuple(UInt8, Tuple(String, UInt8)) (vous pouvez également utiliser d’autres types entier). Il est également possible de transmettre en paramètres le nom de la table, le nom de la base de données et les noms des colonnes ; dans ce cas, vous devrez utiliser Identifier comme type de données. |
Exemples
Génération SQL assistée par IA
OPENAI_API_KEY ou ANTHROPIC_API_KEY est définie. Pour une configuration plus avancée, consultez la section Configuration.
Utilisation
?? :
- Explorer automatiquement le schéma de votre base de données
- Générer une requête SQL adaptée en fonction des tables et des colonnes détectées
- Exécuter immédiatement la requête générée
Exemple
Configuration
Bascule de secours via l’environnement
- Vérifie d’abord la variable d’environnement
OPENAI_API_KEY - Si elle n’est pas trouvée, vérifie la variable d’environnement
ANTHROPIC_API_KEY - Si aucune des deux n’est trouvée, les fonctionnalités d’IA seront désactivées
Fichier de configuration
$XDG_CONFIG_HOME/clickhouse/config.xml(ou~/.config/clickhouse/config.xmlsiXDG_CONFIG_HOMEn’est pas défini) (format XML)$XDG_CONFIG_HOME/clickhouse/config.yaml(ou~/.config/clickhouse/config.yamlsiXDG_CONFIG_HOMEn’est pas défini) (format YAML)~/.clickhouse-client/config.xml(format XML, emplacement legacy)~/.clickhouse-client/config.yaml(format YAML, emplacement legacy)- Ou indiquez un emplacement personnalisé avec
--config-file
- XML
- YAML
Utilisation d’API compatibles OpenAI (par ex. OpenRouter) :
Paramètres
Paramètres requis
Paramètres requis
api_key- Votre clé API pour le service d’IA. Peut être omise si elle est définie via une variable d’environnement :- OpenAI :
OPENAI_API_KEY - Anthropic :
ANTHROPIC_API_KEY - Remarque : la clé API du fichier de configuration prévaut sur la variable d’environnement
- OpenAI :
provider- Le fournisseur d’IA :openaiouanthropic- S’il est omis, le système utilise automatiquement les variables d’environnement disponibles
Configuration du modèle
Configuration du modèle
model- Le modèle à utiliser (par défaut : selon le fournisseur)- OpenAI :
gpt-4o,gpt-4,gpt-3.5-turbo, etc. - Anthropic :
claude-3-5-sonnet-20241022,claude-3-opus-20240229, etc. - OpenRouter : utilisez leur convention de nommage des modèles, par exemple
anthropic/claude-3.5-sonnet
- OpenAI :
Paramètres de connexion
Paramètres de connexion
base_url- point de terminaison de l’API personnalisé pour les services compatibles OpenAI (facultatif)timeout_seconds- Délai d’expiration de la requête, en secondes (par défaut :30)
Exploration du schéma
Exploration du schéma
enable_schema_access- Autoriser l’IA à explorer les schémas de la base de données (par défaut :true)max_steps- Nombre maximal d’étapes d’appel d’outils pour l’exploration du schéma (par défaut :10)
Paramètres de génération
Paramètres de génération
temperature- Contrôle le niveau d’aléa, 0.0 = déterministe, 1.0 = créatif (par défaut :0.0)max_tokens- Longueur maximale de la réponse en tokens (par défaut :1000)system_prompt- Instructions personnalisées pour l’IA (facultatif)
Fonctionnement
- Découverte du schéma
- Répertorie les bases de données disponibles
- Identifie les tables dans les bases de données pertinentes
- Examine la structure des tables à l’aide d’instructions
CREATE TABLE
- Génération de requêtes
- Correspond à votre intention exprimée en langage naturel
- Utilise les noms de tables et de colonnes corrects
- Applique les jointures et agrégations appropriées
- Exécution
Limitations
- Nécessite une connexion Internet active
- L’utilisation de l’API est soumise aux limites de requêtes et aux coûts du fournisseur d’IA
- Les requêtes complexes peuvent nécessiter plusieurs ajustements
- L’IA a un accès en lecture seule aux informations de schéma, et non aux données elles-mêmes
Sécurité
- Les clés API ne sont jamais envoyées aux serveurs ClickHouse
- L’IA n’a accès qu’aux informations de schéma (noms des tables/colonnes et types), pas aux données elles-mêmes
- Toutes les requêtes générées respectent les permissions existantes de votre base de données
Chaîne de connexion
Utilisation
| Composant (tous facultatifs) | Description | Par défaut |
|---|---|---|
user | Nom d’utilisateur de la base de données. | default |
password | Mot de passe de l’utilisateur de la base de données. Si : est spécifié et que le mot de passe est vide, le client invitera l’utilisateur à saisir son mot de passe. | - |
hosts_and_ports | Liste d’hôtes et, éventuellement, de ports host[:port] [, host:[port]], .... | localhost:9000 |
database | Nom de la base de données. | default |
query_parameters | Liste de paires clé-valeur param1=value1[,¶m2=value2], .... Pour certains paramètres, aucune valeur n’est requise. Les noms et les valeurs des paramètres sont sensibles à la casse. | - |
Remarques
--user, --password ou --database (et inversement).
La composante host peut être soit un nom d’hôte, soit une adresse IPv4 ou IPv6.
Les adresses IPv6 doivent être entre [] :
clickHouse-client.
La chaîne de connexion peut être combinée avec n’importe quel nombre d’autres options de ligne de commande, à l’exception de --host et --port.
Les clés suivantes sont autorisées pour query_parameters :
| Key | Description |
|---|---|
secure (or s) | Si elle est spécifiée, le client se connectera au serveur via une connexion sécurisée (TLS). Voir --secure dans les options de ligne de commande. |
userpasswordhostsdatabasequery parameters
Exemples
localhost sur le port 9000 et exécutez la requête SELECT 1.
localhost avec l’utilisateur john, le mot de passe secret, l’hôte 127.0.0.1 et le port 9000
localhost avec l’utilisateur default, à l’hôte ayant l’adresse IPv6 [::1] et sur le port 9000.
localhost sur le port 9000 en mode multiligne.
localhost sur le port 9000 en tant qu’utilisateur default.
localhost sur le port 9000 et utilisez la base de données my_database par défaut.
localhost sur le port 9000, utilisez par défaut la base de données my_database spécifiée dans la chaîne de connexion et activez une connexion sécurisée à l’aide du paramètre abrégé s.
my_user et sans mot de passe.
localhost en utilisant l’adresse e-mail comme nom d’utilisateur. Le symbole @ est encodé au format pourcentage sous la forme %40.
192.168.1.15, 192.168.1.25.
Format de l’identifiant de requête
query_id_formats. Le marqueur {query_id} dans la chaîne de format est remplacé par l’ID de la requête. Plusieurs chaînes de format sont autorisées à l’intérieur de la balise.
Cette fonctionnalité peut être utilisée pour générer des URL afin de faciliter le profiling des requêtes.
Exemple
Fichiers de configuration
- Un fichier défini avec le paramètre
-c [ -C, --config, --config-file ]. ./clickhouse-client.[xml|yaml|yml]$XDG_CONFIG_HOME/clickhouse/config.[xml|yaml|yml](ou~/.config/clickhouse/config.[xml|yaml|yml]siXDG_CONFIG_HOMEn’est pas défini)~/.clickhouse-client/config.[xml|yaml|yml]/etc/clickhouse-client/config.[xml|yaml|yml]
clickhouse-client.xml
- XML
- YAML
Options des variables d’environnement
CLICKHOUSE_USER, CLICKHOUSE_PASSWORD et CLICKHOUSE_HOST.
Les arguments de ligne de commande --user, --password ou --host, ou une chaîne de connexion (si elle est spécifiée), sont prioritaires sur les variables d’environnement.
Options en ligne de commande
Options générales
| Option | Description | Par défaut |
|---|---|---|
-c [ -C, --config, --config-file ] <path-to-file> | Emplacement du fichier de configuration du client, s’il ne se trouve pas dans l’un des emplacements par défaut. Voir Fichiers de configuration. | - |
--help | Affiche un résumé de l’utilisation puis quitte. Combinez avec --verbose pour afficher toutes les options possibles, y compris les paramètres de requête. | - |
--history_file <path-to-file> | Chemin vers un fichier contenant l’historique des commandes. | - |
--history_max_entries | Nombre maximal d’entrées dans le fichier d’historique. | 1000000 (1 million) |
--prompt <prompt> | Spécifie une invite personnalisée. | Le display_name du serveur |
--verbose | Augmente le niveau de verbosité de la sortie. | - |
-V [ --version ] | Affiche la version puis quitte. | - |
Options de connexion
| Option | Description | Par défaut |
|---|---|---|
--connection <name> | Le nom des informations de connexion préconfigurées issues du fichier de configuration. Voir Identifiants de connexion. | - |
-d [ --database ] <database> | Sélectionne la base de données utilisée par défaut pour cette connexion. | La base de données actuelle issue des paramètres du serveur (default par défaut) |
-h [ --host ] <host> | Le nom d’hôte du serveur ClickHouse auquel se connecter. Il peut s’agir d’un nom d’hôte, d’une adresse IPv4 ou d’une adresse IPv6. Plusieurs hôtes peuvent être fournis à l’aide de plusieurs arguments. | localhost |
--jwt <value> | Utilise un JSON Web Token (JWT) pour l’authentification. L’autorisation JWT côté serveur est disponible uniquement dans ClickHouse Cloud. | - |
login | Lance le flux OAuth de type device grant afin de s’authentifier via un IdP. Pour les hôtes ClickHouse Cloud, les variables OAuth sont inférées ; sinon, elles doivent être fournies avec --oauth-url, --oauth-client-id et --oauth-audience. | - |
--no-warnings | Désactive l’affichage des avertissements de system.warnings lorsque le client se connecte au serveur. | - |
--no-server-client-version-message | Supprime le message d’incompatibilité de version entre le serveur et le client lorsque le client se connecte au serveur. | - |
--password <password> | Le mot de passe de l’utilisateur de la base de données. Vous pouvez également définir le mot de passe d’une connexion dans le fichier de configuration. Si vous ne spécifiez pas le mot de passe, le client vous le demandera. | - |
--port <port> | Le port sur lequel le serveur accepte les connexions. Les ports par défaut sont 9440 (TLS) et 9000 (sans TLS). Remarque : le client utilise le protocole natif, et non HTTP(S). | 9440 si --secure est spécifié, 9000 sinon. Utilise toujours 9440 par défaut si le nom d’hôte se termine par .clickhouse.cloud. |
-s [ --secure ] | Indique s’il faut utiliser TLS. Activé automatiquement lors d’une connexion au port 9440 (le port sécurisé par défaut) ou à ClickHouse Cloud. Vous devrez peut-être configurer vos certificats CA dans le fichier de configuration. Les paramètres de configuration disponibles sont les mêmes que pour la configuration TLS côté serveur. | Activé automatiquement lors d’une connexion au port 9440 ou à ClickHouse Cloud |
--ssh-key-file <path-to-file> | Fichier contenant la clé privée SSH permettant de s’authentifier auprès du serveur. | - |
--ssh-key-passphrase <value> | Phrase secrète de la clé privée SSH spécifiée dans --ssh-key-file. | - |
--tls-sni-override <server name> | Si TLS est utilisé, le nom de serveur (SNI) à transmettre lors de la négociation initiale. | L’hôte fourni via -h ou --host. |
-u [ --user ] <username> | L’utilisateur de la base de données avec lequel se connecter. | default |
Au lieu des options
--host, --port, --user et --password, le client prend également en charge les chaînes de connexion.Options de requête
| Option | Description |
|---|---|
--param_<name>=<value> | Valeur de substitution pour un paramètre d’une requête avec paramètres. |
-q [ --query ] <query> | Requête à exécuter en mode batch. Peut être spécifiée plusieurs fois (--query "SELECT 1" --query "SELECT 2") ou une seule fois avec plusieurs requêtes séparées par des points-virgules (--query "SELECT 1; SELECT 2;"). Dans ce dernier cas, les requêtes INSERT utilisant des formats autres que VALUES doivent être séparées par des lignes vides. Une requête unique peut aussi être spécifiée sans paramètre : clickhouse-client "SELECT 1" Ne peut pas être utilisée avec --queries-file. |
--queries-file <path-to-file> | Chemin vers un fichier contenant des requêtes. --queries-file peut être spécifiée plusieurs fois, par exemple --queries-file queries1.sql --queries-file queries2.sql. Ne peut pas être utilisée avec --query. |
-m [ --multiline ] | Si cette option est spécifiée, autorise les requêtes sur plusieurs lignes (la requête n’est pas envoyée lorsque vous appuyez sur Entrée). Les requêtes ne sont envoyées qu’une fois terminées par un point-virgule. |
--inline-insert-data | Envoie INSERT ... VALUES (et les autres formats intégrés) tels quels dans le texte de la requête au lieu de convertir les données en blocs au format natif. Le serveur analyse lui-même les données intégrées, ce qui évite l’aller-retour nécessaire pour renvoyer au client la structure de la table et les valeurs par défaut des colonnes. Cela peut améliorer les performances lors de nombreuses petites insertions via le protocole natif. Définit automatiquement send_table_structure_on_insert_with_inline_data sur 0. Ne peut pas être combiné avec des données intégrées et des données externes (depuis stdin ou INFILE). |
Paramètres de requête
Options de formatage
| Option | Description | Valeur par défaut |
|---|---|---|
-f [ --format ] <format> | Utilisez le format spécifié pour afficher le résultat. Consultez Formats des données d’entrée et de sortie pour obtenir la liste des formats pris en charge. | TabSeparated |
--pager <command> | Redirigez toute la sortie vers cette commande. Généralement less (par ex. less -S pour afficher des jeux de résultats très larges) ou une commande similaire. | - |
-E [ --vertical ] | Utilisez le format Vertical pour afficher le résultat. Cela équivaut à –-format Vertical. Dans ce format, chaque valeur est affichée sur une ligne distincte, ce qui est utile pour afficher des tables avec de nombreuses colonnes. | - |
--echo [ <bool> ] | Affiche chaque requête avant son exécution. Accepte une valeur booléenne facultative. | true en mode interactif, false en mode non interactif (batch) |
--echo-formatted [ <bool> ] | Met en forme les requêtes affichées. Accepte une valeur booléenne facultative. | true en mode interactif, false en mode non interactif (batch) |
--echo-query-id [ <bool> ] | Affiche l’ID de la requête avant son exécution. Accepte une valeur booléenne facultative. | true en mode interactif, false en mode non interactif (batch) |
--highlight [ --hilite ] <bool> | Active ou désactive la coloration syntaxique de l’invite de commande et des requêtes affichées. | true |
Détails d’exécution
| Option | Description | Par défaut |
|---|---|---|
--chime [N] | Écrit le caractère de contrôle BEL sur stderr lorsqu’une requête se termine (qu’elle réussisse ou échoue) après avoir duré au moins N secondes. N’est émis que lorsque stderr est connecté à un terminal (TTY) ; la redirection de stderr (par ex. 2>err.log) le supprime, tandis que la redirection de stdout (par ex. > result.tsv) ne le supprime pas. Passer --chime sans valeur utilise le seuil par défaut. Définissez --chime 0 pour le désactiver. | 5 secondes |
--enable-progress-table-toggle | Active l’affichage/masquage du tableau de progression en appuyant sur la touche de contrôle (Espace). S’applique uniquement en mode interactif lorsque l’affichage du tableau de progression est activé. | activé |
--hardware-utilization | Affiche les informations d’utilisation du matériel dans la barre de progression. | - |
--memory-usage | Si spécifié, affiche l’utilisation de la mémoire sur stderr en mode non interactif. Valeurs possibles : • none - n’affiche pas l’utilisation de la mémoire • default - affiche le nombre d’octets • readable - affiche l’utilisation de la mémoire dans un format lisible par l’humain | - |
--print-profile-events | Affiche les paquets ProfileEvents. | - |
--progress | Affiche la progression de l’exécution de la requête. Valeurs possibles : • tty|on|1|true|yes - sortie vers le terminal en mode interactif • err - sortie vers stderr en mode non interactif • off|0|false|no - désactive l’affichage de la progression | tty en mode interactif, off en mode non interactif (batch) |
--progress-table | Affiche un tableau de progression avec des métriques mises à jour pendant l’exécution de la requête. Valeurs possibles : • tty|on|1|true|yes - sortie vers le terminal en mode interactif • err - sortie vers stderr en mode non interactif • off|0|false|no - désactive le tableau de progression | tty en mode interactif, off en mode non interactif (batch) |
--stacktrace | Affiche les stack traces des exceptions. | - |
-t [ --time ] | Affiche le temps d’exécution de la requête sur stderr en mode non interactif (pour les benchmarks). | - |