O SQLFluff é um linhador SQL flexível e configurável e configurável. Projetado com aplicativos ELT em mente, o SQLFluff também trabalha com o Jinja Modelating e o DBT. O SQLFLUFF fará com que a maioria dos erros de linha, permitindo que você concentre seu tempo no que importa.
Embora o SQL seja razoavelmente consistente em suas implementações, existem vários dialetos diferentes disponíveis com variações de sintaxe e gramática. Atualmente, o SQLFluff suporta os seguintes dialetos SQL (embora talvez não estejam na íntegra):
sparksql com sintaxe do catálogo de unidades).Nosso objetivo é facilitar a expansão do suporte desses dialetos e também adicionar outros dialetos, atualmente sem suporte. Por favor, levante os problemas (ou vote sobre quaisquer problemas existentes) para nos informar sobre a demanda por falta de suporte.
Puxe solicitações daqueles que conhecem a sintaxe ou os dialetos ausentes são bem -vindos especialmente e são a maneira de obter o suporte adicionado. Estamos felizes em trabalhar com quaisquer colaboradores em potencial sobre isso para ajudá -los a adicionar esse suporte. Por favor, levante um problema primeiro para qualquer grande alteração de recurso para garantir que seja uma boa opção para este projeto antes de gastar tempo neste trabalho.
O próprio SQL não se presta bem à modularidade; portanto, para introduzir alguma flexibilidade e reutilização, geralmente é modificado como discutido mais em nossa documentação de modularidade.
O SQLFluff suporta os seguintes modelos:
Novamente, por favor, levante problemas se desejar apoiar mais idiomas/sintaxes de modelos.
Também temos uma extensão de código VS:
Para começar, instale o pacote e execute 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 ? !Como alternativa, você pode usar a imagem oficial do SQLFLUFF Docker ou ter uma peça usando o SQLFluff online .
Para obter referência de uso e regras da CLI completo, consulte os documentos SQLFLUFF.
Para documentação completa, visite docs.sqlfluff.com. Esta documentação é gerada a partir deste repositório; portanto, levante questões ou retire solicitações de quaisquer adições, correções ou esclarecimentos.
O SQLFluff adere ao versão semântica, portanto, as mudanças de quebra devem ser restritas às principais versões versões. Alguns elementos (como a API do Python) estão em um estado menos estável e podem ver mudanças mais significativas com mais frequência. Para obter detalhes sobre como quebrar as mudanças e como migrar entre versões, consulte nossas notas de lançamento. Veja o Changelog para obter mais detalhes. Se você deseja participar, considere contribuir.
Novos lançamentos são feitos mensalmente. Para mais informações, visite os lançamentos.
Temos uma comunidade de rápido crescimento no Slack, venha se juntar a nós!
Siga -nos no Twitter @sqlfluff para anúncios e outras postagens relacionadas.
Somos gratos a todos os nossos colaboradores. Há muito o que fazer neste projeto, e estamos apenas começando.
Se você quiser entender mais sobre a arquitetura do SQLFluff , pode encontrar mais aqui.
Se você deseja contribuir, confira os problemas abertos no Github. Você também pode ver o guia para contribuir.

A pilha de análises turnkey, descubra mais em datacoves.com.