SQLFluff e linting
Esegua il linting dell’SQL con SQLFluff, imponga uno stile condiviso e corregga automaticamente i problemi di formattazione più comuni.
SQLFluff e linting è una lezione SQL Academy gratuita su CoddyKit. Questa è la lezione 2 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento SQL Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso SQL Academy include 4 lezioni in totale.
Perché fare il linting SQL?
SQL è scritto a mano ed è facile formattarlo in modo incoerente. Il linting applica automaticamente uno stile condiviso:
- Keyword in minuscolo o MAIUSCOLO
- Virgola alla fine o all'inizio della riga
- Convenzioni di denominazione per tabelle e colonne
- Indentazione
- Anti-pattern (SELECT *, join ambigui e così via)
SQLFluff: il linter de facto
Open source, sensibile al dialetto, supporta molti dialetti SQL e funziona molto bene con dbt:
pip install sqlfluff
sqlfluff lint models/
sqlfluff fix models/ # auto-fix where safeConfigurare SQLFluff
Una configurazione .sqlfluff:
[sqlfluff]
dialect = postgres
templater = dbt
max_line_length = 120
[sqlfluff:rules:capitalisation.keywords]
capitalisation_policy = upper
[sqlfluff:rules:capitalisation.identifiers]
extended_capitalisation_policy = lowerRegole standard
SQLFluff ha più di 50 regole: denominazione, layout, capitalizzazione, struttura e ambiguità. Disabiliti le singole regole:
[sqlfluff]
exclude_rules = AM05, ST05Disabilitazione inline
Salti un controllo per una singola riga:
SELECT * -- noqa: AM04
FROM users;Integrazione con dbt
SQLFluff comprende Jinja e ref():
sqlfluff lint --templater dbt models/Hook di pre-commit
Esegua SQLFluff prima di ogni commit:
# .pre-commit-config.yaml
repos:
- repo: https://github.com/sqlfluff/sqlfluff
rev: 3.0.0
hooks:
- id: sqlfluff-lint
- id: sqlfluff-fixIn CI
Blocchi le PR con errori di linting:
# GitHub Actions
- name: SQLFluff
run: |
pip install sqlfluff
sqlfluff lint models/Anti-pattern da rilevare con il linting
- L044/AM04 — Eviti SELECT *
- AM05 — Eviti JOIN impliciti (virgola)
- ST05 — Eviti le sottoquery in FROM (usi CTE)
- L010 — Capitalizzazione incoerente
Formatter e linter
SQLFluff fa entrambe le cose: esegue i controlli e formatta automaticamente:
sqlfluff format models/ # newer: dedicated format command
sqlfluff fix models/ # alias for format + safe rule fixesAltri strumenti
- pg_format — formatta SQL in modo leggibile (incentrato su PostgreSQL)
- SQLFluff è lo strumento più utilizzato e si integra con dbt
- formattazione al salvataggio negli editor (VS Code, JetBrains)
Riepilogo
Il linting elimina le discussioni sullo stile e individua bug reali.
- SQLFluff per lint e formattazione
- .sqlfluff configura le regole
- Esegua i controlli in pre-commit e CI
- Combini SQLFluff con dbt per workflow SQL end-to-end
Verifica rapida
Quale strumento open source è lo standard per il linting di SQL e funziona con i template dbt?
Domande Frequenti
La lezione «SQLFluff e linting» è gratuita?
Sì — il testo completo di «SQLFluff e linting» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso SQL Academy, passa a CoddyKit PRO. Il corso SQL Academy include 4 lezioni in totale.
Cosa imparerò in «SQLFluff e linting»?
Esegua il linting dell’SQL con SQLFluff, imponga uno stile condiviso e corregga automaticamente i problemi di formattazione più comuni. Eserciti SQL Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare SQL Academy?
Non è richiesta alcuna esperienza precedente. SQL Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 2 di 4.
Quanto tempo richiede la lezione «SQLFluff e linting»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione SQL Academy?
Sì. Ogni lezione SQL Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- Fondamenti di DBT (Data Build Tool)
- SQLFluff e linting
- Test dell’SQL: test dbt e Great Expectations
- CI per le modifiche allo schema (GitHub Actions)