Проверка и форматирование кода
Повысьте эффективность процесса разработки, интегрировав популярные линтеры и форматтеры, такие как SQLFluff, sqlfmt, Black и Prettier. Используйте эти мощные инструменты напрямую в Studio IDE, не прерывая рабочий процесс разработки.
Details
Что такое линтеры и форматтеры?
Линтеры анализируют код на наличие ошибок, багов и проблем со стилем, в то время как форматтеры исправляют правила стиля и форматирования. Подробнее о том, когда использовать линтеры или форматтеры, читайте в Часто задаваемых вопросах.В dbt Cloud IDE вы можете выполнять проверку, автоматическое исправление и форматирование для пяти различных типов файлов:
В Studio IDE вы можете выполнять линтинг, автоисправление и форматирование для пяти различных типов файлов:
- SQL — выполнять lint и исправления с помощью SQLFluff, а также format с помощью sqlfmt
- YAML, Markdown и JSON — форматировать с помощью Prettier
- Python — форматировать с помощью Black
Каждый тип файла имеет свои уникальные правила проверки и форматирования. Вы можете настроить процесс проверки, чтобы добавить больше гибкости и улучшить обнаружение проблем и стиля.
По умолчанию IDE использует правила sqlfmt для форматирования вашего кода, что делает его удобным для использования сразу. Однако, если у вас есть файл с именем .sqlfluff в корневом каталоге вашего проекта dbt, IDE будет использовать правила SQLFluff по умолчанию.
Проверка
С помощью Studio IDE вы можете бесшовно использовать SQLFluff — настраиваемый SQL‑линтер, который предупреждает о сложных функциях, ошибках синтаксиса, форматирования и компиляции. Эта интеграция позволяет запускать проверки, исправлять и просматривать любые ошибки кода напрямую в Cloud Studio IDE:
- Работает с Jinja и SQL.
- Поставляется со встроенными правилами линтинга. Вы также можете настроить собственные правила линтинга.
- Позволяет включить линтинг с такими опциями, как Lint (отображает ошибки линтинга и рекомендует действия) или Fix (автоматически исправляет ошибки в Studio IDE).
- Отображает вкладку Code Quality для просмотра ошибок кода, обеспечивая прозрачность и управление качеством кода.
Проверка не поддерживает эфемерные модели в dbt v1.5 и ниже. Обратитесь к Часто задаваемым вопросам для получения дополнительной информации.
Включение проверки
Линтинг доступен во всех ветках, включая защищённую основную ветку git. Поскольку Studio IDE не позволяет делать коммиты в защищённую ветку, он предложит зафиксировать эти изменения в новой ветке.
- Чтобы включить линтинг, откройте файл
.sqlи перейдите на вкладку Code Quality. - Нажмите кнопку
</> Configв правом нижнем углу раздела консоли, под File editor. - Во всплывающем окне конфигурации инструмента контроля качества кода вы можете выбрать sqlfluff или sqlfmt.
- Чтобы выполнить линтинг кода, выберите переключатель sqlfluff. (Используйте sqlfmt, чтобы отформатировать код.)
- После выбора переключателя sqlfluff вернитесь в раздел консоли (под File editor) и выберите кнопку из выпадающего списка Lint или Fix:
- Кнопка Lint — отображает проблемы линтинга в Studio IDE в виде волнистых подчёркиваний в File editor. Вы можете навести курсор на подчёркнутую проблему, чтобы увидеть детали и доступные действия, включая опцию Quick Fix для исправления всех или отдельных проблем. После выполнения линтинга вы увидите сообщение с подтверждением результата. Линтинг не запускается повторно автоматически после сохранения файла — нажмите Lint ещё раз, чтобы запустить его снова.
- Кнопка Fix — автоматически исправляет ошибки линтинга в File editor. По завершении исправлений вы увидите сообщение с подтверждением результата.
- Используйте вкладку Code Quality для просмотра и отладки любых ошибок в коде.
Используйте кнопку Lint или Fix в разделе консоли, чтобы проверить или автоматически исправить ваш код.Настройка проверки
SQLFluff — это настраиваемый SQL линтер, что означает, что вы можете настроить свои собственные правила проверки вместо использования настроек проверки по умолчанию в IDE. Вы можете исключить файлы и каталоги, используя стандартный файл .sqlfluffignore. Узнайте больше о синтаксисе в документации по синтаксису .sqlfluffignore.
Чтобы настроить свои собственные правила проверки:
- Создайте новый файл в корневом каталоге проекта (родительский или верхнеуровневый каталог для ваших файлов).
Примечание: корневой каталог проекта — это каталог, в котором находится файлdbt_project.yml. - Назовите файл
.sqlfluff(обязательно добавьте.передsqlfluff). - Создайте и добавьте свой пользовательский код конфигурации.
- Сохраните изменения и закоммитьте их.
- Перезапустите Studio IDE.
- Протестируйте и приятного линтинга!
Линтинг снапшотов
По умолчанию dbt выполняет линтинг всех изменённых файлов .sql в вашем проекте, включая снапшоты. Snapshots могут быть определены как в YAML, так и в файлах .sql, однако их SQL не подлежит линтингу и может вызывать ошибки в процессе линтинга.
Чтобы SQLFluff не выполнял линтинг файлов снапшотов, добавьте директорию снапшотов в файл .sqlfluffignore (например, snapshots/).
Обратите внимание, что вам необходимо явно исключить снапшоты в файле .sqlfluffignore, поскольку dbt не игнорирует снапшоты автоматически на стороне бэкенда.
Настройка правил линтинга dbtonic
Обратитесь к файлу конфигурации SQLFluff для Jaffle shop для dbt-специфичных (или dbtonic) правил проверки, которые мы используем для наших собственных проектов:
Пример конфигурационного кода dbtonic, предоставленный dbt Labs
[sqlfluff]
templater = dbt
# Это изменение (с Jinja на dbt templater) сделает линтинг более медленным,
# потому что перед проверкой dbt‑код сначала будет скомпилирован в код для хранилища данных.
runaway_limit = 10
max_line_length = 80
indent_unit = space
[sqlfluff:indentation]
tab_space_size = 4
[sqlfluff:layout:type:comma]
spacing_before = touch
line_position = trailing
[sqlfluff:rules:capitalisation.keywords]
capitalisation_policy = lower
[sqlfluff:rules:aliasing.table]
aliasing = explicit
[sqlfluff:rules:aliasing.column]
aliasing = explicit
[sqlfluff:rules:aliasing.expression]
allow_scalar = False
[sqlfluff:rules:capitalisation.identifiers]
extended_capitalisation_policy = lower
[sqlfluff:rules:capitalisation.functions]
capitalisation_policy = lower
[sqlfluff:rules:capitalisation.literals]
capitalisation_policy = lower
[sqlfluff:rules:ambiguous.column_references] # Number in group by
group_by_and_order_by_style = implicit
Чтобы узнать больше о лучших практиках стилизации, см. раздел How we style our SQL.
Настройка линтинга с помощью собственных правил линтинга кода, включая правила линтинга и стилизации dbtonic.Форматирование
В Studio IDE вы можете форматировать код в соответствии с руководствами по стилю одним нажатием кнопки. Studio IDE интегрируется с форматтерами, такими как sqlfmt, Prettier и Black, чтобы автоматически форматировать код пяти разных типов файлов — SQL, YAML, Markdown, Python и JSON:
- SQL — Форматирование с помощью sqlfmt, который предоставляет единый способ форматирования dbt SQL и Jinja.
- Примечание: Пользовательская конфигурация sqlfmt в Studio IDE не поддерживается.
- YAML, Markdown и JSON — Форматирование с помощью Prettier.
- Python — Форматирование с помощью Black.
Интеграции форматирования в Cloud Studio IDE берут на себя рутинные задачи, такие как форматирование кода, позволяя вам сосредоточиться на создании качественных моделей данных, совместной работе и достижении значимых результатов.
Форматирование SQL
Чтобы форматировать ваш SQL-код, dbt интегрируется с sqlfmt — это строгий форматтер SQL-запросов, который предлагает единый, однозначный способ форматирования SQL и Jinja.
По умолчанию Studio IDE использует правила sqlfmt для форматирования вашего кода, поэтому кнопка Format доступна сразу и ею удобно пользоваться. Однако, если в корневом каталоге вашего dbt‑проекта есть файл с именем .sqlfluff, Studio IDE по умолчанию будет использовать правила SQLFluff.
Форматирование доступно во всех ветках, включая защищённую основную git‑ветку. Поскольку Studio IDE не позволяет делать коммиты напрямую в защищённую ветку, он предложит закоммитить эти изменения в новую ветку.
- Откройте файл
.sqlи нажмите на вкладку Code Quality. - Нажмите на кнопку
</> Configна правой стороне консоли. - В всплывающем окне конфигурации инструмента качества кода у вас есть возможность выбрать sqlfluff или sqlfmt.
- Чтобы форматировать ваш код, выберите радиокнопку sqlfmt. (Используйте sqlfluff для проверки вашего кода).
- После того как вы выбрали радиокнопку sqlfmt, перейдите в раздел консоли (расположенный ниже Редактора файлов), чтобы выбрать кнопку Format.
- Кнопка Format автоматически форматирует ваш код в Редакторе файлов. После автоматического форматирования вы увидите сообщение, подтверждающее результат.
Форматирование YAML, Markdown, JSON
Чтобы форматировать код YAML, Markdown или JSON, dbt интегрируется с Prettier — форматировщиком кода с жёстко заданными правилами. Форматирование доступно во всех ветках, включая защищённую основную git-ветку. Поскольку Studio IDE не позволяет выполнять коммиты в защищённую ветку, он предлагает зафиксировать эти изменения в новой ветке.
- Откройте файл
.yml,.mdили.json. - В разделе консоли (расположенном ниже Редактора файлов) выберите кнопку Format, чтобы автоматически форматировать ваш код в Редакторе файлов. Используйте вкладку Code Quality для просмотра ошибок кода.
- После автоматического форматирования вы увидите сообщение, подтверждающее результат.
Вы можете добавить конфигурационный файл для настройки правил форматирования для файлов YAML, Markdown или JSON с помощью Prettier. IDE ищет конфигурационный файл на основе порядка приоритета. Например, сначала она проверяет наличие ключа "prettier" в вашем файле package.json.
Для получения дополнительной информации о порядке приоритета и о том, как настраивать файлы, обратитесь к документации Prettier. Обратите внимание, что файлы .prettierrc.json5, .prettierrc.js и .prettierrc.toml в настоящее время не поддерживаются.
Форматирование Python
Для форматирования вашего Python-кода dbt интегрируется с Black — строгим форматтером кода Python. Форматирование доступно во всех ветках, включая защищённую основную git-ветку. Поскольку Studio IDE не позволяет выполнять коммиты в защищённую ветку, он предлагает закоммитить эти изменения в новую ветку.
- Откройте файл
.py. - В разделе консоли (расположенном ниже Редактора файлов) выберите кнопку Format, чтобы автоматически форматировать ваш код в Редакторе файлов.
- После автоматического форматирования вы увидите сообщение, подтверждающее результат.




