SQLFluffは、方言で柔軟で構成可能なSQLリンターです。 ELTアプリケーションを念頭に置いて設計されたSQLFluffは、Jinja TemplatingおよびDBTでも動作します。 SQLFluffはほとんどの糸くずエラーを自動化し、重要なことに時間を集中させることができます。
SQLはその実装においてかなり一貫していますが、構文と文法のバリエーションを備えたいくつかの異なる方言が利用可能です。 SQLFluffは現在、次のSQL方言をサポートしています(おそらく完全ではありませんが):
sparksql方言がUnity Catalogmyntaxを使用して拡張されます)。これらの方言のサポートを容易に拡張し、他の、現在サポートされていない方言を追加することを目指しています。問題を提起し(または既存の問題を繰り返してください)、サポートの欠落の需要を知らせてください。
不足している構文や方言を知っている人からのリクエストをプルすることは、特に歓迎されており、サポートを追加するための問題です。このサポートを追加するために、これに関する潜在的な貢献者と協力して喜んでいます。この作業に時間を費やす前に、このプロジェクトに適していることを確認するために、大きな機能変更について最初に問題を提起してください。
SQL自体はモジュール性に適していないため、柔軟性と再利用性を導入するために、モジュール性のドキュメントで詳細に説明されているように、しばしばテンプレートされます。
sqlfluffは次のテンプレートをサポートしています。
繰り返しますが、より多くのテンプレート言語/構文をサポートしたい場合は、問題を提起してください。
また、VSコード拡張機能もあります。
開始するには、パッケージをインストールし、 sqlfluff lintまたは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 ? !または、公式のsqlfluff dockerイメージを使用したり、 sqlfluff onlineを使用してプレイすることもできます。
完全なCLI使用とルールの参照については、SQLFluffドキュメントを参照してください。
完全なドキュメントについては、docs.sqlfluff.comをご覧ください。このドキュメントはこのリポジトリから生成されるため、問題を提起するか、追加、修正、または説明のリクエストを引き出してください。
SQLFluffはセマンティックバージョンに準拠するため、変更の変更は主要なバージョンのリリースに制限される必要があります。一部の要素(Python APIなど)は安定した状態ではなく、より頻繁により大きな変化が見られる可能性があります。壊れた変更とバージョン間で移行する方法の詳細については、リリースノートを参照してください。詳細については、Changelogを参照してください。参加したい場合は、貢献を検討してください。
新しいリリースは毎月行われます。詳細については、リリースをご覧ください。
Slackに急成長しているコミュニティがあります。
アナウンスやその他の関連投稿については、Twitter @SQLFluffでフォローしてください。
私たちはすべての貢献者に感謝しています。このプロジェクトにはやることがたくさんありますが、始めたばかりです。
SQLFluffのアーキテクチャについて詳しく理解したい場合は、こちらをご覧ください。
貢献したい場合は、GitHubのオープンな問題をご覧ください。貢献のガイドも見ることができます。

Turnkey Analyticsスタック、DataCoves.comで詳細をご覧ください。