- Instant SQL est un outil qui prévisualise les résultats en temps réel pendant la rédaction de requêtes SQL, afin d’accélérer l’écriture et le débogage des requêtes
- Il permet de décomposer et d’analyser facilement des CTE complexes ou des expressions de colonnes, et de prévisualiser instantanément des suggestions d’édition basées sur l’IA, ce qui rend la rédaction et la modification des requêtes plus efficaces
- Disponible dans MotherDuck et DuckDB Local UI, il permet aussi d’explorer en temps réel diverses sources de données externes grâce à DuckDB
- Cela a été rendu possible grâce à une combinaison de technologies avancées, notamment la conception local-first de DuckDB, l’optimisation des performances, des stratégies de cache et le mapping du curseur basé sur l’AST
- MotherDuck est un service cloud managé DuckDB qui fournit divers outils pour l’analyse de données
Présentation d’Instant SQL
- Instant SQL est une nouvelle fonctionnalité qui met à jour les résultats des requêtes SQL en temps réel dès la frappe
- Sans bouton d’exécution séparé, il permet de prévisualiser les résultats avec une latence nulle (zero-latency)
- Il est actuellement disponible sur la plateforme MotherDuck et dans DuckDB Local UI
Pourquoi Instant SQL est nécessaire
- Écrire du SQL, ce n’est pas seulement une question de syntaxe : l’essentiel est de comprendre les données et de formuler des questions
- Jusqu’ici, il fallait passer par une boucle lente et répétitive : écrire la requête dans un éditeur, cliquer sur exécuter, puis attendre les résultats
- Instant SQL transforme ce processus en un flux d’exploration immédiat et naturel
Fonctionnalités principales
-
Prévisualisation des résultats en temps réel pendant l’écriture
- À chaque frappe dans une requête SQL, la prévisualisation du jeu de résultats est mise à jour en temps réel
- De simples transformations aux agrégations complexes, l’exploration des données peut se faire sans interruption
-
Débogage en temps réel des CTE (expressions de table communes)
- Il suffit de cliquer sur un CTE pour le visualiser instantanément
- Les modifications sont immédiatement répercutées sur tous les nœuds dépendants, ce qui rend le débogage des CTE très simple
-
Décomposition des expressions de colonnes complexes
- Il est possible de décomposer des expressions directement depuis la table de résultats afin d’identifier rapidement les erreurs
- Cela permet d’identifier immédiatement des problèmes de logique ou de données
-
Prise en charge de multiples sources de données
- La prévisualisation fonctionne avec toutes les sources prises en charge par DuckDB (tables DuckDB, fichiers parquet sur S3, Postgres, SQLite, MySQL, Iceberg, Delta, etc.)
- La modélisation et l’exploration de données externes deviennent extrêmement rapides
-
Validation rapide des requêtes avant exécution finale
- Après avoir affiné la requête à l’aide de la prévisualisation, on peut lancer l’exécution finale une fois satisfait
- Cela réduit drastiquement le cycle écrire-exécuter-attendre en SQL
-
Combinaison avec les fonctions IA
- En saisissant une commande en langage naturel sur le texte sélectionné, l’IA propose des modifications
- Comme le résultat proposé peut être prévisualisé immédiatement, il est possible d’accepter des changements sans risquer d’erreur
Comment cela a été rendu possible
-
Technologie d’exécution de requêtes à très faible latence
- Grâce à la conception local-first de DuckDB, il est possible d’obtenir rapidement des résultats directement sur le PC
- L’architecture d’exécution duale de MotherDuck prend aussi en charge de grands volumes de données avec une faible latence
-
Technologie de réécriture de requêtes
- En s’appuyant sur l’extension JSON de DuckDB, le système extrait et exploite l’AST (arbre syntaxique) des requêtes SELECT
- En remplaçant certaines parties de la requête par des échantillons de données mis en cache localement, il devient possible d’obtenir une prévisualisation rapide
-
Système de cache intelligent
- Des données prédites et mises en cache permettent de rendre les résultats dès la frappe
- Grâce à différentes stratégies de cache, les résultats apparaissent avant même que l’utilisateur n’ait retiré ses doigts du clavier
-
Mapping curseur-arbre syntaxique
- Une fonctionnalité a été développée pour associer précisément la position du curseur de l’utilisateur à un nœud SELECT spécifique dans l’AST
- Même dans des requêtes complexes, il devient possible de ne prévisualiser que l’instruction SELECT en cours d’édition
Comment utiliser Instant SQL
- Disponible en préversion publique dans MotherDuck et DuckDB Local UI
- Une nouvelle fonction de modification basée sur des prompts est également proposée aux utilisateurs de MotherDuck
2 commentaires
C’est vraiment fascinant.
Commentaires sur Hacker News
select * from table limit 10;, puis j’ajoute les colonnes et les jointures