SQLFLUFF es un enlace SQL flexible y configurable de dialecto. Diseñado con las aplicaciones ELT en mente, SQLFLUFF también funciona con Jinja Templating y DBT. SQLFLUFF fijará automáticamente la mayoría de los errores de pelusa, lo que le permitirá enfocar su tiempo en lo que importa.
Aunque SQL es razonablemente consistente en sus implementaciones, hay varios dialectos diferentes disponibles con variaciones de sintaxis y gramática. SQLFLUFF actualmente admite los siguientes dialectos SQL (aunque quizás no en su totalidad):
sparksql con sintaxis de catálogo de Unity).Nuestro objetivo es facilitar la expansión del soporte de estos dialectos y también agregar otros dialectos, actualmente sin apoyo. Plantea problemas (o vota cualquier problema existente) para informarnos de la demanda de apoyo perdido.
Las solicitudes de aquellos que conocen la sintaxis o los dialectos faltantes son especialmente bienvenidos y son la forma de pregunta para que se le agregue soporte. Nos complace trabajar con cualquier posible contribuyente en esto para ayudarlos a agregar este soporte. Primero plantee un problema para cualquier cambio de características grande para asegurarse de que sea una buena opción para este proyecto antes de pasar tiempo en este trabajo.
SQL en sí no se presta bien a la modularidad, por lo que para introducir cierta flexibilidad y reutilización, a menudo se plantilla como se discute más en nuestra documentación de modularidad.
SQLFLUFF admite las siguientes plantillas:
Nuevamente, plantee problemas si desea admitir más lenguajes/sintaxis de plantilla.
También tenemos una extensión de código VS:
Para comenzar, instale el paquete y ejecute sqlfluff lint o 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 ? !Alternativamente, puede usar la imagen oficial de SQLFLUFF Docker o tener una obra de teatro usando SQLFLUFF en línea .
Para el uso completo de CLI y la referencia de reglas, consulte los documentos SQLFLUFF.
Para obtener documentación completa, visite docs.sqlfluff.com. Esta documentación se genera a partir de este repositorio, por lo que plantea problemas o extraiga las solicitudes de cualquier adición, corrección o aclaraciones.
SQLFLUFF se adhiere a la versiones semánticas, por lo que los cambios de ruptura deben restringirse a las versiones principales de versiones. Algunos elementos (como la API de Python) están en un estado menos estable y pueden ver cambios más significativos con más frecuencia. Para obtener detalles sobre los cambios de ruptura y cómo migrar entre versiones, consulte nuestras notas de versión. Vea el ChangeLog para más detalles. Si desea unirse, considere contribuir.
Los nuevos lanzamientos se realizan mensualmente. Para obtener más información, visite los comunicados.
¡Tenemos una comunidad de rápido crecimiento en Slack, ven y únete a nosotros!
Síguenos en Twitter @SQLFLUFF para anuncios y otras publicaciones relacionadas.
Agradecemos a todos nuestros contribuyentes. Hay mucho que hacer en este proyecto, y recién estamos comenzando.
Si desea comprender más sobre la arquitectura de SQLFLUFF , puede encontrar más aquí.
Si desea contribuir, consulte los problemas abiertos en GitHub. También puede ver la guía para contribuir.

La pila de Analytics de TurnKey, obtenga más información en Datacoves.com.