Перейти к основному содержимому

Проверка и форматирование кода

Улучшите свой процесс разработки, интегрировав популярные линтеры и форматтеры, такие как SQLFluff, sqlfmt, Black и Prettier. Используйте эти мощные инструменты прямо в dbt Cloud IDE, не прерывая процесс разработки.

Details

Что такое линтеры и форматтеры? Линтеры анализируют код на наличие ошибок, багов и проблем со стилем, в то время как форматтеры исправляют правила стиля и форматирования. Подробнее о том, когда использовать линтеры или форматтеры, читайте в Часто задаваемых вопросах.

В dbt Cloud IDE вы можете выполнять проверку, автоматическое исправление и форматирование для пяти различных типов файлов:

  • SQL — Проверка и исправление с помощью SQLFluff, и форматирование с помощью sqlfmt
  • YAML, Markdown и JSON — Форматирование с помощью Prettier
  • Python — Форматирование с помощью Black

Каждый тип файла имеет свои уникальные правила проверки и форматирования. Вы можете настроить процесс проверки, чтобы добавить больше гибкости и улучшить обнаружение проблем и стиля.

По умолчанию IDE использует правила sqlfmt для форматирования вашего кода, что делает его удобным для использования сразу. Однако, если у вас есть файл с именем .sqlfluff в корневом каталоге вашего проекта dbt, IDE будет использовать правила SQLFluff по умолчанию.

Используйте SQLFluff для проверки/форматирования вашего SQL-кода и просмотра ошибок кода на вкладке Code Quality.Используйте SQLFluff для проверки/форматирования вашего SQL-кода и просмотра ошибок кода на вкладке Code Quality.
Используйте sqlfmt для форматирования вашего SQL-кода.Используйте sqlfmt для форматирования вашего SQL-кода.
Форматируйте файлы YAML, Markdown и JSON с помощью Prettier.Форматируйте файлы YAML, Markdown и JSON с помощью Prettier.
Используйте кнопку Config, чтобы выбрать ваш инструмент.Используйте кнопку Config, чтобы выбрать ваш инструмент.
Настройте проверку, конфигурируя собственные правила проверки кода, включая dbtonic проверку/стилизацию.Настройте проверку, конфигурируя собственные правила проверки кода, включая dbtonic проверку/стилизацию.

Проверка

С помощью dbt Cloud IDE вы можете без проблем использовать SQLFluff, настраиваемый SQL линтер, чтобы предупреждать вас о сложных функциях, синтаксических, форматных и компиляционных ошибках. Эта интеграция позволяет вам запускать проверки, исправлять и отображать любые ошибки кода прямо в Cloud IDE:

  • Работает с Jinja и SQL,
  • Имеет встроенные правила проверки. Вы также можете настроить свои собственные правила проверки.
  • Позволяет вам включить проверку с такими опциями, как Lint (отображает ошибки проверки и рекомендует действия) или Fix (автоматически исправляет ошибки в IDE).
  • Отображает вкладку Code Quality для просмотра ошибок кода, предоставляет видимость и управление качеством кода, а также отображает используемую версию SQLFluff.
Эфемерные модели не поддерживаются

Проверка не поддерживает эфемерные модели в dbt v1.5 и ниже. Обратитесь к Часто задаваемым вопросам для получения дополнительной информации.

Включение проверки

Проверка доступна на всех ветках, включая вашу защищенную основную ветку git. Поскольку dbt Cloud IDE предотвращает коммиты в защищенную ветку, она предлагает вам зафиксировать эти изменения в новой ветке.

  1. Чтобы включить проверку, откройте файл .sql и нажмите на вкладку Code Quality.
  2. Нажмите на кнопку </> Config в правом нижнем углу раздела консоли, ниже Редактора файлов.
  3. В всплывающем окне конфигурации инструмента качества кода у вас есть возможность выбрать sqlfluff или sqlfmt.
  4. Чтобы проверить ваш код, выберите радиокнопку sqlfluff. (Используйте sqlfmt для форматирования вашего кода)
  5. После того как вы выбрали радиокнопку sqlfluff, вернитесь в раздел консоли (ниже Редактора файлов), чтобы выбрать выпадающую кнопку Lint или Fix:
    • Кнопка Lint — Отображает проблемы проверки в IDE в виде волнистых подчеркиваний в Редакторе файлов. Вы можете навести курсор на подчеркнутую проблему, чтобы отобразить детали и действия, включая опцию Quick Fix для исправления всех или конкретных проблем. После проверки вы увидите сообщение, подтверждающее результат. Проверка не выполняется повторно после сохранения. Нажмите Lint снова, чтобы повторно выполнить проверку.
    • Кнопка Fix — Автоматически исправляет ошибки проверки в Редакторе файлов. Когда исправление завершено, вы увидите сообщение, подтверждающее результат.
    • Используйте вкладку Code Quality для просмотра и отладки любых ошибок кода.
Используйте кнопку Lint или Fix в разделе консоли, чтобы проверить или автоматически исправить ваш код.Используйте кнопку Lint или Fix в разделе консоли, чтобы проверить или автоматически исправить ваш код.

Настройка проверки

SQLFluff — это настраиваемый SQL линтер, что означает, что вы можете настроить свои собственные правила проверки вместо использования настроек проверки по умолчанию в IDE. Вы можете исключить файлы и каталоги, используя стандартный файл .sqlfluffignore. Узнайте больше о синтаксисе в документации по синтаксису .sqlfluffignore.

Чтобы настроить свои собственные правила проверки:

  1. Создайте новый файл в корневом каталоге проекта (родительский или верхний уровень каталога для ваших файлов). Примечание: корневой каталог проекта — это каталог, в котором находится ваш файл dbt_project.yml.
  2. Назовите файл .sqlfluff (убедитесь, что вы добавили . перед sqlfluff).
  3. Создайте и добавьте ваш собственный конфигурационный код.
  4. Сохраните и зафиксируйте ваши изменения.
  5. Перезапустите IDE.
  6. Проверьте и наслаждайтесь проверкой!
Настройка правил проверки 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

Для получения дополнительной информации о лучших практиках стилизации обратитесь к Как мы стилизуем наш SQL.

Настройте проверку, конфигурируя собственные правила проверки кода, включая dbtonic проверку/стилизацию.Настройте проверку, конфигурируя собственные правила проверки кода, включая dbtonic проверку/стилизацию.

Форматирование

В dbt Cloud IDE вы можете форматировать ваш код в соответствии с руководствами по стилю нажатием одной кнопки. IDE интегрируется с форматтерами, такими как sqlfmt, Prettier и Black, чтобы автоматически форматировать код для пяти различных типов файлов — SQL, YAML, Markdown, Python и JSON:

  • SQL — Форматирование с помощью sqlfmt, который предоставляет один способ форматирования вашего dbt SQL и Jinja.
  • YAML, Markdown и JSON — Форматирование с помощью Prettier.
  • Python — Форматирование с помощью Black.

Интеграции форматирования в Cloud IDE берут на себя ручные задачи, такие как форматирование кода, позволяя вам сосредоточиться на создании качественных моделей данных, сотрудничестве и достижении значимых результатов.

Форматирование SQL

Чтобы форматировать ваш SQL-код, dbt Cloud интегрируется с sqlfmt, который является бескомпромиссным форматтером SQL-запросов, предоставляющим один способ форматирования SQL-запроса и Jinja.

По умолчанию IDE использует правила sqlfmt для форматирования вашего кода, делая кнопку Format доступной и удобной для использования сразу. Однако, если у вас есть файл с именем .sqlfluff в корневом каталоге вашего проекта dbt, IDE будет использовать правила SQLFluff по умолчанию.

Форматирование доступно на всех ветках, включая вашу защищенную основную ветку git. Поскольку dbt Cloud IDE предотвращает коммиты в защищенную ветку, она предлагает вам зафиксировать эти изменения в новой ветке.

  1. Откройте файл .sql и нажмите на вкладку Code Quality.
  2. Нажмите на кнопку </> Config на правой стороне консоли.
  3. В всплывающем окне конфигурации инструмента качества кода у вас есть возможность выбрать sqlfluff или sqlfmt.
  4. Чтобы форматировать ваш код, выберите радиокнопку sqlfmt. (Используйте sqlfluff для проверки вашего кода).
  5. После того как вы выбрали радиокнопку sqlfmt, перейдите в раздел консоли (расположенный ниже Редактора файлов), чтобы выбрать кнопку Format.
  6. Кнопка Format автоматически форматирует ваш код в Редакторе файлов. После автоматического форматирования вы увидите сообщение, подтверждающее результат.
Используйте sqlfmt для форматирования вашего SQL-кода.Используйте sqlfmt для форматирования вашего SQL-кода.

Форматирование YAML, Markdown, JSON

Чтобы форматировать ваш YAML, Markdown или JSON код, dbt Cloud интегрируется с Prettier, который является мнениемным форматтером кода. Форматирование доступно на всех ветках, включая вашу защищенную основную ветку git. Поскольку dbt Cloud IDE предотвращает коммиты в защищенную ветку, она предлагает вам зафиксировать эти изменения в новой ветке.

  1. Откройте файл .yml, .md или .json.
  2. В разделе консоли (расположенном ниже Редактора файлов) выберите кнопку Format, чтобы автоматически форматировать ваш код в Редакторе файлов. Используйте вкладку Code Quality для просмотра ошибок кода.
  3. После автоматического форматирования вы увидите сообщение, подтверждающее результат.
Форматируйте файлы YAML, Markdown и JSON с помощью Prettier.Форматируйте файлы YAML, Markdown и JSON с помощью Prettier.

Вы можете добавить конфигурационный файл для настройки правил форматирования для файлов YAML, Markdown или JSON с помощью Prettier. IDE ищет конфигурационный файл на основе порядка приоритета. Например, сначала она проверяет наличие ключа "prettier" в вашем файле package.json.

Для получения дополнительной информации о порядке приоритета и о том, как настраивать файлы, обратитесь к документации Prettier. Обратите внимание, что файлы .prettierrc.json5, .prettierrc.js и .prettierrc.toml в настоящее время не поддерживаются.

Форматирование Python

Чтобы форматировать ваш Python-код, dbt Cloud интегрируется с Black, который является бескомпромиссным форматтером Python-кода. Форматирование доступно на всех ветках, включая вашу защищенную основную ветку git. Поскольку dbt Cloud IDE предотвращает коммиты в защищенную ветку, она предлагает вам зафиксировать эти изменения в новой ветке.

  1. Откройте файл .py.
  2. В разделе консоли (расположенном ниже Редактора файлов) выберите кнопку Format, чтобы автоматически форматировать ваш код в Редакторе файлов.
  3. После автоматического форматирования вы увидите сообщение, подтверждающее результат.
Форматируйте файлы Python с помощью Black.Форматируйте файлы Python с помощью Black.

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

 Когда следует использовать SQLFluff, а когда sqlfmt?
 Могу ли я вложить файлы `.sqlfluff`?
 Могу ли я запускать команды SQLFluff из терминала?
 Почему наблюдается непоследовательное поведение SQLFluff при запуске вне dbt Cloud IDE?
 Какие есть соображения при использовании проверки dbt Cloud?

Связанные документы

0