SQL Academy · Lekcja

SQLFluff i lintowanie

Sprawdzać SQL za pomocą SQLFluff, egzekwować standard zespołu i automatycznie naprawiać typowe problemy z formatowaniem

Lekcja 2 z 413 kroki

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 safe

Konfigurowanie 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 = lower

Standardowe 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, ST05

Wyłą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-fix

W 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 fixes

Inne 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?

Bezpłatny start

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

  1. Podstawy DBT (Data Build Tool)
  2. SQLFluff i lintowanie
  3. Testowanie SQL: testy dbt, Great Expectations
  4. CI dla zmian schematu (GitHub Actions)
← Powrót do SQL Academy