0Pricing
SQL Academy · Урок

SQLFluff и статический анализ

Проверяйте SQL с помощью SQLFluff, соблюдайте единый стиль и автоматически исправляйте распространённые проблемы форматирования

«SQLFluff и статический анализ» — бесплатный урок SQL Academy на CoddyKit. Это урок 2 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения SQL Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс SQL Academy содержит 4 уроков всего.

Зачем проверять SQL

SQL пишется вручную, поэтому его легко форматировать непоследовательно. Статический анализ автоматически применяет единый стиль:

  • Строчные и прописные ключевые слова UPPER
  • Запятая в конце или начале строки
  • Соглашения об именовании таблиц и столбцов
  • Отступы
  • Антишаблоны (SELECT *, неоднозначные соединения и т. д.)

SQLFluff: фактический стандарт для проверки SQL

Инструмент с открытым исходным кодом, учитывающий диалект, поддерживает множество разновидностей SQL и отлично работает с dbt:

pip install sqlfluff

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

Настройка SQLFluff

Конфигурация .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

Стандартные правила

В SQLFluff более 50 правил: именование, компоновка, регистр, структура и неоднозначность. Отключайте правила по отдельности:

[sqlfluff]
exclude_rules = AM05, ST05

Отключение в строке

Пропустите проверку для одной строки:

SELECT *  -- noqa: AM04
FROM users;

Интеграция с dbt

SQLFluff понимает Jinja и ref():

sqlfluff lint --templater dbt models/

Хук перед фиксацией

Запускайте SQLFluff перед каждой фиксацией:

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

В CI

Блокируйте PR с ошибками проверки:

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

Антишаблоны для проверки

  • L044/AM04 — избегайте SELECT *
  • AM05 — избегайте неявного JOIN (запятой)
  • ST05 — избегайте подзапросов в FROM (используйте CTE)
  • L010 — непоследовательный регистр

Форматировщик и линтер

SQLFluff делает и то и другое — проверяет И автоматически форматирует:

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

Другие инструменты

  • pg_format — форматирует SQL в удобочитаемый вид (ориентирован на PostgreSQL)
  • SQLFluff используется чаще всего и интегрируется с dbt
  • форматирование при сохранении в редакторах (VS Code, JetBrains)

Итоги

Линтинг устраняет споры о стиле и выявляет настоящие ошибки.

  • SQLFluff для линтинга и форматирования
  • .sqlfluff задаёт правила
  • Запускайте в pre-commit и непрерывной интеграции
  • Сочетайте с dbt для сквозных рабочих процессов с SQL

Быстрая проверка

Какой инструмент является стандартом с открытым исходным кодом для линтинга SQL и работает с шаблонами dbt?

Часто задаваемые вопросы

Урок «SQLFluff и статический анализ» бесплатный?

Да — полный текст урока «SQLFluff и статический анализ» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс SQL Academy, подпишись на CoddyKit PRO. Курс SQL Academy содержит 4 уроков всего.

Чему я научусь в уроке «SQLFluff и статический анализ»?

Проверяйте SQL с помощью SQLFluff, соблюдайте единый стиль и автоматически исправляйте распространённые проблемы форматирования Ты практикуешь SQL Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать SQL Academy?

Предыдущий опыт не требуется. SQL Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 2 из 4.

Сколько времени занимает урок «SQLFluff и статический анализ»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке SQL Academy?

Да. Каждый урок SQL Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Основы DBT (Data Build Tool)
  2. SQLFluff и статический анализ
  3. Тестирование SQL: тесты dbt и Great Expectations
  4. CI для изменений схемы (GitHub Actions)
← Назад к SQL Academy