Fluffig und fehlerfrei: SQLFluff übernimmt das Linting
Linting ist bei vielen Programmiersprachen, wie Java und Python, schon lange gang und gäbe, doch ist das auch mit SQL-Skripten möglich? Und was ist Linting überhaupt?
SQL-Code kann schnell komplex und schwer zu überblicken sein. Besonders bei umfangreichen Projekten mit Hunderten von Zeilen schleicht sich oft der eine oder andere Fehler ein – sei es eine falsche Einrückung, ein vergessenes Semikolon oder eine fehlerhafte Klammer. Hier kommt SQLFluff ins Spiel: ein Linting-Tool, das SQL-Code analysiert, Fehler identifiziert und sogar automatisch behebt.
Was ist SQLFluff?
SQLFluff ist ein Python-basiertes Linting-Tool speziell für SQL. Es hilft dabei, SQL-Code sauber, konsistent und fehlerfrei zu halten. Zu den Kernfunktionen zählen:
- Linting: SQLFluff analysiert den SQL-Code und weist auf Regelverstöße, Inkonsistenzen oder Syntaxfehler hin.
- Parsing: Der Code wird in eine strukturierte, maschinell lesbare Form zerlegt, um Syntax und Logik zu prüfen.
- Fixing: Gefundene Probleme werden automatisch gemäß den festgelegten Regeln korrigiert.
Die Konfiguration
Aber woher weiß SQLFluff überhaupt, nach welchen Regeln es den Code analysieren soll? Hierfür kommt die Konfiguration ins Spiel. Solange keine eigene Konfiguration gesetzt wurde, nutzt das Tool seine Standardkonfiguration und lintet nach dieser den SQL-Code. Es gibt jedoch die Möglichkeit, seine eigene Konfiguration zu schreiben.
Dies ist möglich durch eine Konfigurationsdatei, welche auf den Namen .sqlfluff hört. Hierbei ist der Speicherort der Datei ausschlaggebend:
- Soll die Konfiguration global auf alles angewandt werden, legt man sie global in ~/.sqlfluff.
- Soll sie nur auf ein Projekt angewandt werden, legt man sie in den entsprechenden Projekt-Ordner ~/project/.sqlfluff.
In dieser Datei wird festgelegt, nach welchem Dialekt (DBMS-spezifisch), nach welchen Regeln, nach welchen Einrückungen und weiteren Möglichkeiten der SQL-Code gelintet werden soll. Hierbei können alle Standard-Regeln von SQLFluff genutzt werden. Es können explizite Regeln deaktiviert oder aktiviert werden und es kann bestimmt werden, welche Wörter groß- oder kleingeschrieben werden sollen.
Zudem bietet SQLFluff eine lange Liste an möglichen Dialekten. Darunter sind DBMS wie MySQL, PostgreSQL, MariaDB, Oracle und weitere vertreten.
Wem das alles nicht reicht, der kann seiner Fantasie freien Lauf lassen und sich eigene Regeln in Python programmieren, die als Plugin in SQLFluff integriert werden können.
Wie wird das Tool angewandt?
Jetzt wissen wir, was SQLFluff kann, aber nicht, wie man es nutzt. Es gibt verschiedene Möglichkeiten, wie das Tool genutzt werden kann.
- Kommandozeile (CLI): Die Standardmethode, um SQL-Code direkt zu analysieren und zu korrigieren.
- Integration in IDEs: Mit Extensions für Tools wie Visual Studio Code können Entwickler:innen direkt in der IDE arbeiten.
- CI/CD-Pipeline: SQLFluff kann in CI/CD-Pipelines eingebunden werden, um sicherzustellen, dass fehlerhafter SQL-Code gar nicht erst ins Repository gelangt.
Beispiele für CLI-Befehle:
Fazit
SQLFluff ist ein leistungsstarkes Tool, um SQL-Code effizient zu linten und zu fixen. Dank seiner hohen Flexibilität, umfassenden Anpassungsmöglichkeiten und der Integration in IDEs und Pipelines eignet es sich sowohl für kleine als auch für große Projekte.
Wenn wir euer Interesse zu SQLFluff geweckt haben und ihr es in euren Projekten integrieren wollt, aber noch Fragen habt, oder Hilfe benötigt, wendet euch gerne an uns!
Seminarempfehlung
ORACLE DATENBANKPROGRAMMERUNG MIT PL/SQL GRUNDLAGEN DB-ORA-02
Mehr erfahrenStudent
Bei Updates im Blog, informieren wir per E-Mail.
Kommentare