SQLFluff i lintowanie
Sprawdzać SQL za pomocą SQLFluff, egzekwować standard zespołu i automatycznie naprawiać typowe problemy z formatowaniem
SQLFluff i lintowanie to bezpłatna lekcja SQL Academy na CoddyKit. To lekcja 2 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej SQL Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs SQL Academy zawiera 4 lekcji w sumie.
Dlaczego warto stosować linter SQL
Kod SQL jest pisany ręcznie, dlatego łatwo o niespójne formatowanie. Linting automatycznie wymusza przyjęty styl:
- Małe lub WIELKIE litery w słowach kluczowych
- Przecinek na końcu lub początku wiersza
- Konwencje nazewnicze tabel i kolumn
- Wcięcia
- Antywzorce (SELECT *, niejednoznaczne złączenia itp.)
SQLFluff: de facto standard wśród linterów
To narzędzie open source uwzględniające dialekt SQL, obsługujące wiele odmian SQL i doskonale współpracujące z dbt:
pip install sqlfluff
sqlfluff lint models/
sqlfluff fix models/ # auto-fix where safeKonfigurowanie SQLFluff
Konfiguracja .sqlfluff:
[sqlfluff]
dialect = postgres
templater = dbt
max_line_length = 120
[sqlfluff:rules:capitalisation.keywords]
capitalisation_policy = upper
[sqlfluff:rules:capitalisation.identifiers]
extended_capitalisation_policy = lowerStandardowe reguły
SQLFluff ma ponad 50 reguł dotyczących nazewnictwa, układu, wielkości liter, struktury i niejednoznaczności. Reguły można wyłączać pojedynczo:
[sqlfluff]
exclude_rules = AM05, ST05Wyłączanie reguł w wierszu
Pomijanie sprawdzania pojedynczego wiersza:
SELECT * -- noqa: AM04
FROM users;Integracja z dbt
SQLFluff rozumie Jinja i ref():
sqlfluff lint --templater dbt models/Hak pre-commit
Uruchamianie SQLFluff przed każdym zatwierdzeniem:
# .pre-commit-config.yaml
repos:
- repo: https://github.com/sqlfluff/sqlfluff
rev: 3.0.0
hooks:
- id: sqlfluff-lint
- id: sqlfluff-fixW CI
Blokowanie pull requestów zawierających błędy lintera:
# GitHub Actions
- name: SQLFluff
run: |
pip install sqlfluff
sqlfluff lint models/Antywzorce wykrywane przez linter
- L044/AM04 — Należy unikać SELECT *
- AM05 — Należy unikać niejawnego JOIN (przecinka)
- ST05 — Należy unikać podzapytań w FROM (należy używać CTE)
- L010 — Niespójne użycie wielkości liter
Formatter a linter
SQLFluff robi jedno i drugie — sprawdza ORAZ automatycznie formatuje:
sqlfluff format models/ # newer: dedicated format command
sqlfluff fix models/ # alias for format + safe rule fixesInne narzędzia
- pg_format — estetycznie formatuje SQL (narzędzie ukierunkowane na PostgreSQL)
- SQLFluff jest najczęściej używany; integruje się z dbt
- formatowanie przy zapisie w edytorach (VS Code, JetBrains)
Podsumowanie
Lintowanie eliminuje spory dotyczące stylu i pomaga wykrywać rzeczywiste błędy.
- SQLFluff do lintowania i formatowania
- .sqlfluff konfiguruje reguły
- Uruchamianie w pre-commit i CI
- Połączenie z dbt zapewnia kompleksowy przepływ pracy z SQL
Szybki test
Które narzędzie jest standardem open source do lintowania SQL i współpracuje z szablonami dbt?
Ucz się SQL dzięki korepetycjom AI — za darmo
Pisz i uruchamiaj kod w przeglądarce, otrzymuj natychmiastową pomoc od korepetytora AI dostępnego 24/7 i kontynuuj naukę w sieci lub w aplikacji.
- Kursy
- 46
- Lekcje
- 183
Często zadawane pytania
Czy lekcja „SQLFluff i lintowanie” jest bezpłatna?
Tak — pełny tekst „SQLFluff i lintowanie” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu SQL Academy, przejdź na CoddyKit PRO. Kurs SQL Academy zawiera 4 lekcji w sumie.
Co nauczysz się w „SQLFluff i lintowanie”?
Sprawdzać SQL za pomocą SQLFluff, egzekwować standard zespołu i automatycznie naprawiać typowe problemy z formatowaniem Ćwiczysz SQL Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć SQL Academy?
Nie wymagamy żadnego doświadczenia. SQL Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 2 z 4.
Ile czasu zajmuje lekcja „SQLFluff i lintowanie”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji SQL Academy?
Tak. Każda lekcja SQL Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- Podstawy DBT (Data Build Tool)
- SQLFluff i lintowanie
- Testowanie SQL: testy dbt, Great Expectations
- CI dla zmian schematu (GitHub Actions)