SQL Academy · leksjon

SQLFluff og linting

Kjør linting på SQL med SQLFluff, håndhev en felles kodestil, og rett vanlige formateringsproblemer automatisk.

Leksjon 2 av 413 trinn

SQLFluff og linting er en gratis leksjon i SQL Academy på CoddyKit. Dette er leksjon 2 av 4. Du kan lese hele leksjonen gratis nedenfor – og deretter øve praktisk i nettleseren med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i SQL Academy, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i SQL Academy inneholder totalt 4 leksjoner.

Hvorfor linting av SQL?

SQL skrives manuelt og er lett å formatere inkonsekvent. Linting håndhever automatisk en felles stil:

  • Små eller STORE nøkkelord
  • Komma på slutten eller begynnelsen av linjen
  • Navnekonvensjoner for tabeller og kolonner
  • Innrykk
  • Antimønstre (SELECT *, tvetydige JOIN-operasjoner og lignende)

SQLFluff: den facto-standarden for linting

Åpen kildekode, tilpasset ulike dialekter, støtter mange SQL-varianter og fungerer svært godt med dbt:

pip install sqlfluff

sqlfluff lint models/
sqlfluff fix models/   # auto-fix where safe

Konfigurer SQLFluff

En .sqlfluff-konfigurasjon:

[sqlfluff]
dialect = postgres
templater = dbt
max_line_length = 120

[sqlfluff:rules:capitalisation.keywords]
capitalisation_policy = upper

[sqlfluff:rules:capitalisation.identifiers]
extended_capitalisation_policy = lower

Standardregler

SQLFluff har over 50 regler for navngivning, oppsett, bruk av store og små bokstaver, struktur og tvetydighet. Deaktiver regler enkeltvis:

[sqlfluff]
exclude_rules = AM05, ST05

Deaktivering på én linje

Hopp over en kontroll for én enkelt linje:

SELECT *  -- noqa: AM04
FROM users;

Integrasjon med dbt

SQLFluff forstår Jinja og ref():

sqlfluff lint --templater dbt models/

Pre-commit-hook

Kjør SQLFluff før hver commit:

# .pre-commit-config.yaml
repos:
  - repo: https://github.com/sqlfluff/sqlfluff
    rev: 3.0.0
    hooks:
      - id: sqlfluff-lint
      - id: sqlfluff-fix

I CI

Blokker PR-er med lint-feil:

# GitHub Actions
- name: SQLFluff
  run: |
    pip install sqlfluff
    sqlfluff lint models/

Antimønstre som bør fanges opp av linting

  • L044/AM04 — Unngå SELECT *
  • AM05 — Unngå implisitt JOIN (komma)
  • ST05 — Unngå underspørringer i FROM (bruk CTE-er)
  • L010 — Inkonsekvent bruk av store og små bokstaver

Formatter kontra linter

SQLFluff gjør begge deler – kontrollerer OG formaterer automatisk:

sqlfluff format models/    # newer: dedicated format command
sqlfluff fix models/       # alias for format + safe rule fixes

Andre verktøy

  • pg_format – formaterer SQL på en lesbar måte (fokus på PostgreSQL)
  • SQLFluff er det mest brukte verktøyet og kan integreres med dbt
  • Formatering ved lagring i redigeringsverktøy (VS Code, JetBrains)

Oppsummering

Linting fjerner diskusjoner om stil og oppdager faktiske feil.

  • SQLFluff for linting og formatering
  • .sqlfluff konfigurerer regler
  • Kjør i pre-commit og CI
  • Kombiner med dbt for komplette SQL-arbeidsflyter

Kort kontroll

Hvilket verktøy er åpen kildekode-standarden for linting av SQL og fungerer med dbt-maler?

Gratis å komme i gang

Lær deg SQL med en AI-veileder – gratis

Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.

Kurs
46
Leksjoner
183

Ofte stilte spørsmål

Er leksjonen «SQLFluff og linting» gratis?

Ja – hele teksten i «SQLFluff og linting» er gratis å lese her på nettet. For å øve interaktivt med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt, og for å låse opp resten av SQL Academy-kurset, kan du oppgradere til CoddyKit PRO. Kurset i SQL Academy inneholder totalt 4 leksjoner.

Hva lærer jeg i «SQLFluff og linting»?

Kjør linting på SQL med SQLFluff, håndhev en felles kodestil, og rett vanlige formateringsproblemer automatisk. Du øver på SQL Academy med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.

Trenger jeg erfaring for å begynne med SQL Academy?

Ingen tidligere erfaring er nødvendig. SQL Academy på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 2 av 4.

Hvor lang tid tar leksjonen «SQLFluff og linting»?

De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.

Kan jeg skrive og kjøre kode i denne SQL Academy-leksjonen?

Ja. Alle SQL Academy-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.

Alle leksjonene i dette kurset

  1. Grunnleggende om DBT (Data Build Tool)
  2. SQLFluff og linting
  3. Testing av SQL: dbt-tester og Great Expectations
  4. CI for skjem endringer (GitHub Actions)
← Tilbake til SQL Academy