Installation
Pour télécharger ClickHouse, exécutez :Exécuter
Si vous avez seulement téléchargé ClickHouse sans l’installer, utilisez
./clickhouse client au lieu de clickhouse-client.
Pour obtenir la liste complète des options de ligne de commande, voir Options de ligne de commande.
Se connecter à ClickHouse Cloud
Les informations de votre service ClickHouse Cloud sont disponibles dans la console ClickHouse Cloud. Sélectionnez le service auquel vous souhaitez vous connecter, puis cliquez sur Connect :Choisissez Native : les informations de connexion s’affichent avec un exemple de commande
clickhouse-client :
Stocker des connexions dans un fichier de configuration
Vous pouvez enregistrer les détails de connexion d’un ou de plusieurs serveurs ClickHouse dans un fichier de configuration. Le format est le suivant :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
Pour exécuter ClickHouse en mode interactif, il suffit d’exécuter :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;
Obtenir de l’aide
Vous pouvez consulter la documentation de n’importe quelle fonction, moteur de table, type de données, format, paramètre ou autre composant du système sans quitter le client. Saisissezhelp suivi d’un nom (les formes équivalentes /help, man et /man fonctionnent également) :
system.documentation. La documentation correspondante est affichée dans le terminal à partir du Markdown, avec du texte en gras/en italique, des tableaux et des blocs de code avec coloration syntaxique. Lorsqu’un même nom correspond à plusieurs composants (par exemple file, qui est à la fois une fonction et un moteur de table), ils sont tous affichés.
Lorsqu’aucune correspondance exacte n’est trouvée, le client liste les noms similaires (en tolérant les fautes de frappe) ainsi que les composants dont la documentation mentionne ce mot :
help affiche un bref résumé d’utilisation.
Commandes
Le client exécute lui-même certaines commandes commençant par/, au lieu de les envoyer au serveur :
La saisie de
/ au début de l’entrée affiche la liste des commandes sous forme d’indications ; à mesure que vous saisissez le nom, la liste se restreint. Tab complète la commande en cours de saisie, y compris lorsque les indications sont désactivées. Un / saisi seul n’est pas une commande : comme dans Oracle SQL*Plus, il répète la dernière entrée. Un nom de commande mal orthographié est signalé comme tel, avec les commandes auxquelles il pourrait correspondre, au lieu d’être exécuté comme une requête :
Informations sur le traitement des requêtes
Lors du traitement d’une requête, le client affiche :- 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
Vous pouvez utiliser les alias suivants depuis le REPL :\l-SHOW DATABASES\d-SHOW TABLES\d <TABLE>-DESCRIBE TABLE <TABLE>\c <DATABASE>-USE <DATABASE>.- répéter la dernière requête
\d qui prolonge la requête SHOW TABLES au lieu de désigner une table — comme dans \d FROM system ou \d LIKE 'hits%' — conserve le listing. Une table dont le nom correspond à l’une de ces clauses doit être placée entre accents graves : \d `format`.
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
Au lieu d’utiliser le client ClickHouse en mode interactif, vous pouvez l’exécuter en mode batch. En mode batch, ClickHouse exécute une seule requête puis se ferme immédiatement - il n’y a ni invite interactive ni boucle. Vous pouvez spécifier une seule requête comme ceci :--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
Cet exemple insère un jeu de données CSV d’exemple,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
Il existe plusieurs façons d’insérer des données en ligne de commande. L’exemple ci-dessous insère deux lignes de données CSV dans une table ClickHouse en mode batch :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
Vous pouvez définir des paramètres dans une requête et leur transmettre des valeurs à l’aide d’options en ligne de commande. Cela évite d’avoir à formater la requête avec des valeurs dynamiques spécifiques côté client. Par exemple :Syntaxe de la requête
Dans la requête, placez entre accolades les valeurs que vous souhaitez renseigner à l’aide des paramètres de ligne de commande, au format suivant :Exemples
Génération SQL assistée par IA
ClickHouse Client inclut une assistance IA intégrée pour générer des requêtes SQL à partir de descriptions en langage naturel. Cette fonctionnalité permet aux utilisateurs de rédiger des requêtes complexes sans avoir besoin de connaissances approfondies en SQL. L’assistance IA fonctionne immédiatement si la variable d’environnementOPENAI_API_KEY ou ANTHROPIC_API_KEY est définie. Pour une configuration plus avancée, consultez la section Configuration.
Utilisation
Pour utiliser la génération SQL par IA, faites précéder votre requête en langage naturel de?? :
- 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
La génération SQL par IA nécessite de configurer un fournisseur d’IA dans le fichier de configuration de votre client ClickHouse. Vous pouvez utiliser OpenAI, Anthropic ou tout service d’API compatible avec OpenAI.Bascule de secours via l’environnement
Si aucune configuration d’IA n’est spécifiée dans le fichier de configuration, ClickHouse Client essaiera automatiquement d’utiliser les variables d’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
Pour mieux maîtriser les paramètres de l’IA, configurez-les dans le fichier de configuration de votre ClickHouse Client, situé à l’un des emplacements suivants :$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. Omis par défaut et envoyé au modèle uniquement lorsqu’il est explicitement défini, car certains modèles rejettent ce paramètre.max_tokens- Longueur maximale de la réponse en tokens (par défaut :1000)system_prompt- Instructions personnalisées pour l’IA (facultatif)
Fonctionnement
Le générateur SQL par IA suit un processus en plusieurs étapes :- 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
ClickHouse Client prend également en charge la connexion à un serveur ClickHouse au moyen d’une chaîne de connexion semblable à celles de MongoDB, PostgreSQL et MySQL. La syntaxe est la suivante :Remarques
Si le nom d’utilisateur, le mot de passe ou la base de données sont spécifiés dans la chaîne de connexion, ils ne peuvent pas l’être avec--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 :
Encodage en pourcentage
Les caractères non ASCII, les espaces et les caractères spéciaux dans les paramètres suivants doivent être encodés en pourcentage :
userpasswordhostsdatabasequery parameters
Exemples
Connectez-vous à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
En mode interactif, ClickHouse Client affiche l’identifiant de requête pour chaque requête. Par défaut, l’identifiant se présente ainsi :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
ClickHouse Client utilise le premier fichier existant dans la liste suivante :- 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
Le nom d’utilisateur, le mot de passe et l’hôte peuvent être définis à l’aide des variables d’environnementCLICKHOUSE_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
Toutes les options en ligne de commande peuvent être spécifiées directement sur la ligne de commande ou définies par défaut dans le fichier de configuration.Options générales
Options de connexion
Au lieu des options
--host, --port, --user et --password, le client prend également en charge les chaînes de connexion.