À propos du projet
SQLFluff est un linter et formateur automatique SQL open source conçu pour les applications ELT. Il analyse le SQL en une grammaire configurable et consciente des dialectes, puis applique un large éventail de règles de linting couvrant la mise en page, l'espacement, l'indentation, la capitalisation, l'utilisation des mots-clés, et plus encore. La plupart des problèmes détectés peuvent être corrigés automatiquement avec `sqlfluff fix`, permettant aux développeurs de se concentrer sur la logique des requêtes plutôt que sur le formatage.
La caractéristique phare du projet est sa large couverture des dialectes. Par défaut, il prend en charge le SQL ANSI ainsi qu'Athena, BigQuery, ClickHouse, Databricks, Db2, Doris, DuckDB, Exasol, FlinkSQL, Greenplum, Hive, Impala, MariaDB, Materialize, MySQL, Oracle, PostgreSQL, Redshift, Snowflake, SOQL, SparkSQL, SQLite, StarRocks, Teradata, Transact-SQL, Trino et Vertica. Étant donné que la syntaxe SQL varie selon les moteurs, le parseur conscient des dialectes est ce qui rend le même ensemble de règles utilisable à travers les entrepôts et bases de données.
SQLFluff gère également le SQL templaté, courant dans les pipelines de données modernes. Les moteurs de templating pris en charge incluent Jinja (Jinja2), les espaces réservés SQL comme les paramètres SQLAlchemy, les chaînes de format Python, et dbt (via un plugin). Cela signifie que le linting et le formatage peuvent s'appliquer à du SQL paramétré ou généré, plutôt qu'à des fichiers statiques uniquement.
L'installation est simple via `pip install sqlfluff`, après quoi `sqlfluff lint` et `sqlfluff fix` sont les commandes principales. Un parseur et lexer optionnel basé sur Rust peut être installé avec l'extension `rs` (`pip install sqlfluff[rs]`), qui fournit des wheels ABI3 préconstruites sur les plateformes CPython 3.10+ prises en charge et retombe sur la compilation de `sqlfluffrs` à partir des sources si aucune wheel n'est disponible. Une image Docker officielle et un terrain de jeu en ligne sont également fournis pour ceux qui préfèrent ne pas installer localement.
Pour l'intégration dans les éditeurs, SQLFluff propose une extension VS Code disponible sur la marketplace, offrant un linting et un formatage en ligne dans l'éditeur. Le projet publie une documentation complète sur docs.sqlfluff.com, incluant la référence CLI, la référence des règles, les notes d'architecture et les notes de version. Il suit la gestion sémantique de version, publie environ mensuellement, et maintient une communauté active sur Slack et Twitter.
En résumé, SQLFluff est un outil pratique de qualité de code pour les développeurs SQL et les ingénieurs de données qui souhaitent un formatage et un linting cohérents et applicables à travers de nombreux dialectes SQL et pipelines templatés.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.