À partir de ClickHouse 25.7, ClickHouse Client et clickhouse-local incluent une fonctionnalité basée sur l’IA qui convertit des descriptions en langage naturel en requêtes SQL. Cette fonctionnalité vous permet de décrire vos besoins en données en texte clair, que le système traduit ensuite en instructions SQL correspondantes.
Cette fonctionnalité est particulièrement utile si vous ne maîtrisez pas la syntaxe SQL complexe ou si vous avez besoin de générer rapidement des requêtes pour l’analyse exploratoire de données. Elle fonctionne avec les tables ClickHouse standard et prend en charge les modèles de requête courants, notamment le filtrage, l’agrégation et les jointures.
Elle s’appuie sur les outils/fonctions intégrés suivants :
list_databases - Répertorie toutes les bases de données disponibles dans l’instance ClickHouse
list_tables_in_database - Répertorie toutes les tables d’une base de données spécifique
get_schema_for_table - Obtient l’instruction CREATE TABLE (schéma) d’une table spécifique
Nous devons ajouter une clé Anthropic ou OpenAI en tant que variable d’environnement :
Vous pouvez également fournir un fichier de configuration.
Se connecter au ClickHouse SQL playground
Nous allons explorer cette fonctionnalité à l’aide du ClickHouse SQL playground.
Nous pouvons nous connecter au ClickHouse SQL playground à l’aide de la commande suivante :
Poser des questions à ClickHouse en langage naturel
Il est maintenant temps de commencer à poser des questions !
La fonctionnalité de conversion de texte en SQL est en pratique un outil de génération de requêtes en une seule tentative. Comme elle ne conserve pas l’historique des conversations, incluez autant de contexte utile que possible dans votre question. Soyez précis sur :
Les périodes ou les plages de dates
Le type d’analyse souhaité (moyennes, totaux, classements, etc.)
Les critères de filtrage
Identifier les marchés immobiliers les plus chers
Commençons par nous poser une question sur les prix de l’immobilier. Le SQL playground contient un jeu de données sur les prix de l’immobilier au Royaume-Uni, que l’IA détectera automatiquement :
Une fois que nous aurons appuyé sur Entrée, nous verrons le processus de réflexion de l’IA pendant qu’elle tente de répondre à notre question.
L’IA suit ces étapes :
- Découverte du schéma - Explore les bases de données et les tables disponibles
- Analyse des tables - Examine la structure des tables pertinentes
- Génération de requête - Génère une requête SQL à partir de votre question et du schéma découvert
Nous pouvons constater qu’elle a bien trouvé la table uk_price_paid et généré une requête à exécuter.
Si nous exécutons cette requête, nous verrons le résultat suivant :
Si nous voulons poser des questions complémentaires, nous devons reformuler notre question depuis le début.
Trouver des biens immobiliers coûteux dans le Grand Londres
Comme cette fonctionnalité ne conserve pas l’historique des conversations, chaque requête doit être autonome. Lorsque vous posez des questions de suivi, vous devez fournir tout le contexte, au lieu de faire référence aux requêtes précédentes.
Par exemple, après avoir vu les résultats précédents, nous pourrions vouloir nous concentrer plus précisément sur les biens immobiliers du Grand Londres. Au lieu de demander “Qu’en est-il du Grand Londres ?”, nous devons inclure l’ensemble du contexte :
Notez que l’IA suit le même processus de découverte, même si elle vient d’examiner ces données :
Cela génère une requête plus ciblée, qui filtre spécifiquement sur le Grand Londres et ventile les résultats par année.
Le résultat de la requête est affiché ci-dessous :
La City de Londres apparaît systématiquement comme le district le plus cher ! Vous remarquerez que l’IA a généré une requête pertinente, même si les résultats sont triés par prix moyen plutôt que par ordre chronologique. Pour une analyse d’une année sur l’autre, nous pourrions affiner votre question en demandant spécifiquement “le district le plus cher chaque année” afin d’obtenir des résultats regroupés autrement. Dernière modification le 25 juin 2026