SQLFluff est un Linter SQL flexible et configurable du dialect. Conçu avec les applications ELT à l'esprit, Sqlfluff fonctionne également avec Jinja Templating et DBT. Sqlfluff sera automatiquement la plupart des erreurs de liaison, vous permettant de concentrer votre temps sur ce qui compte.
Bien que SQL soit raisonnablement cohérent dans ses implémentations, il existe plusieurs dialectes différents avec des variations de syntaxe et de grammaire. SQLFluff prend actuellement en charge les dialectes SQL suivants (mais peut-être pas en totalité):
sparksql avec la syntaxe du catalogue Unity).Nous visons à faciliter la mise en charge de la prise en charge de ces dialectes et à ajouter d'autres dialectes actuellement non pris en charge. Veuillez soulever des problèmes (ou voter les problèmes existants) pour nous faire part de la demande de soutien manquant.
Les demandes de tirage de ceux qui connaissent la syntaxe ou les dialectes manquants sont particulièrement bien accueillis et sont le moyen de question pour vous d'obtenir un support. Nous sommes heureux de travailler avec tous les contributeurs potentiels à ce sujet pour les aider à ajouter ce soutien. Veuillez soulever d'abord un problème pour tout changement de fonctionnalité important pour vous assurer qu'il convient à ce projet avant de passer du temps à ce travail.
SQL lui-même ne se prête pas bien à la modularité, donc pour introduire une certaine flexibilité et réutilisabilité, il est souvent impliqué comme discuté davantage dans notre documentation de modularité.
Sqlfluff prend en charge les modèles suivants:
Encore une fois, veuillez soulever des problèmes si vous souhaitez prendre en charge plus de langages / syntaxes de modèles.
Nous avons également une extension de code VS:
Pour commencer, installez le package et exécutez sqlfluff lint ou sqlfluff fix .
$ pip install sqlfluff
$ echo " SELECT a + b FROM tbl; " > test.sql
$ sqlfluff lint test.sql --dialect ansi
== [test.sql] FAIL
L: 1 | P: 1 | LT01 | Expected only single space before ' SELECT ' keyword.
| Found ' ' . [layout.spacing]
L: 1 | P: 1 | LT02 | First line should not be indented.
| [layout.indent]
L: 1 | P: 1 | LT13 | Files must not begin with newlines or whitespace.
| [layout.start_of_file]
L: 1 | P: 11 | LT01 | Expected only single space before binary operator ' + ' .
| Found ' ' . [layout.spacing]
L: 1 | P: 14 | LT01 | Expected only single space before naked identifier.
| Found ' ' . [layout.spacing]
L: 1 | P: 27 | LT01 | Unnecessary trailing whitespace at end of file.
| [layout.spacing]
L: 1 | P: 27 | LT12 | Files must end with a single trailing newline.
| [layout.end_of_file]
All Finished ? !Alternativement, vous pouvez utiliser l' image officielle de Docker Sqlfluff ou avoir une pièce en utilisant SQLFluff Online .
Pour une référence complète de l'utilisation de la CLI et des règles, consultez les documents SQLFluff.
Pour la documentation complète, visitez docs.sqlfluff.com. Cette documentation est générée à partir de ce référentiel, veuillez donc soulever des problèmes ou extraire les demandes de tout ajouts, corrections ou clarifications.
Sqlfluff adhère au versioning sémantique, de sorte que les modifications de rupture devraient être limitées aux versions principales. Certains éléments (comme l'API Python) sont dans un état moins stable et peuvent voir des changements plus importants plus souvent. Pour plus de détails sur les changements de rupture et comment migrer entre les versions, consultez nos notes de publication. Voir le Changelog pour plus de détails. Si vous souhaitez vous joindre à nous, envisagez de contribuer.
De nouvelles versions sont effectuées mensuellement. Pour plus d'informations, visitez les versions.
Nous avons une communauté à croissance rapide sur Slack, venez nous rejoindre!
Suivez-nous sur Twitter @Sqlfluff pour les annonces et autres publications connexes.
Nous sommes reconnaissants à tous nos contributeurs. Il y a beaucoup à faire dans ce projet, et nous ne faisons que commencer.
Si vous voulez en savoir plus sur l'architecture de Sqlfluff , vous pouvez en trouver plus ici.
Si vous souhaitez contribuer, consultez les problèmes ouverts sur GitHub. Vous pouvez également voir le guide de la contribution.

La pile d'analyses clé en main, en savoir plus sur Datacoves.com.