À propos du projet
SQLGlot fournit un analyseur SQL sans dépendances capable de lire une grande variété d'entrées SQL et de générer du SQL syntaxiquement et sémantiquement correct dans les dialectes cibles. Il inclut un transpileur pour convertir des requêtes entre dialectes tels que DuckDB, Presto/Trino, Spark/Databricks, Snowflake, BigQuery, et bien d'autres. La bibliothèque offre un optimiseur qui réécrit les requêtes en un AST canonique, des utilitaires pour l'introspection, la comparaison (diffing) de l'AST, et la construction ou modification programmatique d'expressions SQL. Les utilisateurs peuvent extraire des métadonnées comme les colonnes et les tables, détecter les erreurs de syntaxe avec des messages détaillés, et gérer les fonctionnalités non supportées via des niveaux d'avertissement ou d'erreur configurables. SQLGlot inclut également un exécuteur léger pour évaluer du SQL sur des dictionnaires Python, utile pour les tests et le prototypage. Des dialectes personnalisés peuvent être ajoutés en sous-classant la classe Dialect, et les dialectes de plugin peuvent être distribués via des points d'entrée. Les benchmarks de performance montrent que la version en Python pur est compétitive, tandis que la variante compilée avec mypyc offre des améliorations de vitesse d'environ 3 à 5 fois. Le projet est utilisé par des outils tels que SQLMesh, Apache Superset, Dagster, Ibis, et dlt, et fournit une documentation extensive, une suite de tests, et des dépendances optionnelles comme dateutil pour la simplification des intervalles.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.