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

Возможности расширения dbt для VS Code

Расширение dbt для VS Code использует динамический протокол языкового сервера (LSP), чтобы сделать разработку на dbt быстрой, интеллектуальной и экономичной благодаря улучшенным рабочим процессам и удобной навигации.

Доступность возможностей

Возможности редактора, предоставляемые расширением, доступны всем пользователям. Некоторые из них зависят от режима статического анализа вашего проекта, а некоторые считывают данные из вашей учетной записи dbt platform.

Полный список возможностей и требований к каждой из них приведен в таблицах доступности возможностей.

Доступность возможностей​

Расширение dbt для VS Code можно установить бесплатно, а его функции редактирования доступны всем пользователям. Доступность возможностей зависит от режима статического анализа вашего проекта, а не от вашей учётной записи:

ВозможностьДоступность
Диагностика синтаксических ошибок Jinja, YAML и SQLВсе пользователи
Переход к ref, source и макросам Jinja через LSPВсе пользователи
Диагностика предупреждений линтераВсе пользователи
Граф зависимостей на уровне таблицВсе пользователи
Базовый интерфейс команд dbt (run, build, test и результаты запросов)Все пользователи
Автодополнение refВсе пользователи
Рефакторинг имён refВсе пользователи
Автодополнение функций с учётом диалектаВсе пользователи
Кеш запросов для ускорения инкрементальной компиляцииВсе пользователи
Предварительный просмотр CTEbaseline (по умолчанию) или strict
Диагностика ошибок типов и схемы SQLstatic_analysis: strict
Рефакторинг имён столбцовstatic_analysis: strict
Граф зависимостей на уровне столбцовstatic_analysis: strict
Переход к столбцам и CTE в SQL через LSPstatic_analysis: strict
Просмотр схемы для select * при наведении курсора в SQL через LSPstatic_analysis: strict

Для следующих возможностей необходимо войти в систему, чтобы расширение могло читать данные из вашей учётной записи dbt platform:

ВозможностьЗачем нужна учётная запись dbt platform
Вкладка документации модели с метаданными платформыЧитает статус сборки, описания и результаты тестов из вашей учётной записи dbt platform.
Сравнение изменений с использованием deferral в dbt platformПолучает манифест для deferral из вашей среды dbt platform. Вместо этого можно указать локальный файл manifest.json — учётная запись в таком случае не нужна.

Молниеносный парсинг​

Выполняйте парсинг даже самых крупных проектов до 30 раз быстрее, чем с dbt v1. Кеш запросов LSP ещё больше ускоряет инкрементальную компиляцию.

Просмотр скомпилированного кода​

Просматривайте SQL-код, который будут строить ваши модели, в реальном времени — рядом с dbt-кодом.

Использование:

  • Нажмите на иконку кода, чтобы посмотреть скомпилированный код рядом с исходным.
  • Скомпилированный код обновляется при сохранении исходного кода.
  • Клик по dbt-макросу переводит фокус на соответствующий участок скомпилированного кода.
  • Клик по блоку скомпилированного кода переводит фокус на соответствующий исходный код.

Гибкая сборка​

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

Использование:

  • Нажмите на иконку dbt или используйте сочетание клавиш cmd+shift+enter (macOS) / ctrl+shift+enter (Windows/Linux), чтобы открыть меню быстрого выбора.
  • Выберите команду для запуска.

Обнаружение ошибок в реальном времени​

Расширение автоматически проверяет SQL, находит ошибки и показывает предупреждения без обращения к хранилищу.

Диагностика синтаксического дерева Jinja, YAML и SQL (L1):

  • Ошибки синтаксиса, например пропущенные запятые и опечатки в ключевых словах.
  • Наведите указатель на красное подчёркивание, чтобы увидеть ошибку.
  • Полная информация доступна на панели Problems.

Семантическая диагностика SQL в dbt v2 (L2) требует настройки static_analysis: strict:

  • Пропущенные выражения group by или столбцы, которые не входят в группировку и не агрегируются.
  • Недопустимые имена функций или аргументы.
  • Ошибки типов и схемы SQL.
  • Предупреждения линтера.

Автодополнение IntelliSense​

Автодополнение предлагает SQL-функции, имена моделей, макросы и другие элементы.

  • Автодополнение вызовов ref и source. Введите {{ ref( или {{ source(, чтобы увидеть список доступных ресурсов и их типы. При замене имени модели внутри скобок автодополнение не срабатывает.
  • Автодополнение SQL-функций с учётом диалекта.
Пример автодополнения IntelliSense в расширении для VS CodeПример автодополнения IntelliSense в расширении для VS Code

Рефакторинг​

При переименовании модели или столбца расширение обновляет ссылки во всём проекте.

Переименование модели:

  • Щёлкните правой кнопкой мыши по файлу в дереве и выберите Rename.
  • После переименования файла расширение предложит обновить ссылки.
    • Выберите OK, чтобы применить изменения, или Show Preview, чтобы просмотреть их.
  • После применения изменений вызовы ref будут использовать новое имя модели.

Переименование столбцов требует настройки static_analysis: strict:

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

  • Щёлкните правой кнопкой мыши по псевдониму столбца и выберите Rename Symbol.
  • После переименования столбца расширение предложит обновить ссылки.
    • Выберите OK, чтобы применить изменения, или Show Preview, чтобы просмотреть их.
  • После применения изменений ссылки на столбец в зависимых моделях будут использовать новое имя.

Примечание. Переименование пока недоступно для снимков и других ресурсов, определённых в файлах .yml.

Переход к определениям и ссылкам​

Переходите к определению ref, макроса, модели или столбца одним щелчком. Это особенно удобно в крупных проектах. Переход к определениям из установленных пакетов недоступен.

  • Щёлкните по идентификатору, удерживая Command или Ctrl, чтобы перейти к его определению.
  • Щёлкните по идентификатору правой кнопкой мыши и выберите Go to Definition или Go to References.
  • Языковой сервер Jinja поддерживает переход к определениям ref(), source() и макросов.

Переход к определениям столбцов и CTE требует настройки static_analysis: strict:

  • Переход к определению по имени столбца.
  • Переход к определению по имени CTE.

Граф зависимостей в редакторе​

Просматривайте зависимости таблиц и столбцов прямо во время разработки.

Зависимости на уровне таблиц:

Вкладка Lineage в Cursor

При использовании расширения dbt для VS Code в Cursor вкладка Lineage работает в режиме Editor. В режиме Agent она не отображается. Переключитесь в Editor, чтобы просмотреть зависимости таблиц и столбцов проекта.

Чтобы просмотреть зависимости таблиц:

  • Откройте вкладку Lineage в редакторе. На ней показаны зависимости таблиц для текущего открытого файла.
  • Дважды щёлкните по узлу, чтобы открыть файл в редакторе.
  • Панель зависимостей обновляется при переходе между файлами проекта.
  • Щёлкните по узлу правой кнопкой мыши, чтобы обновить граф или просмотреть зависимости его столбцов.

Зависимости на уровне столбцов требуют настройки static_analysis: strict.

Чтобы просмотреть зависимости столбца:

  • Щёлкните правой кнопкой мыши по имени файла модели или по SQL внутри него.
  • Выберите dbt: View Lineage → Show column lineage.
  • Выберите столбец.
  • Дважды щёлкните по узлу, чтобы обновить выбор в графе.
  • Чтобы выбрать столбец в окне графа, введите префикс column:, а затем имя столбца.

Подсказки при наведении​

Наведите указатель на элемент SQL, чтобы увидеть сведения о таблице, столбце или функции прямо в редакторе, например имя столбца и его тип.

Для подсказок нужна настройка static_analysis: strict. Она позволяет расширению определять типы столбцов и сигнатуры функций во всём проекте.

Как пользоваться:

  • Наведите указатель на *, чтобы увидеть список столбцов и их типы.
  • Наведите указатель на имя столбца или псевдоним, чтобы узнать тип.

Предпросмотр моделей и CTE​

Просматривайте результаты запросов прямо в редакторе, чтобы быстрее проверять и отлаживать SQL.

  • Нажмите значок таблицы или используйте сочетание cmd+enter (macOS) либо ctrl+enter (Windows/Linux), чтобы просмотреть результаты модели или выделенного фрагмента SQL.
  • Результаты отображаются на вкладке Query Results в нижней панели.
  • Таблицу можно сортировать. Результаты сохраняются до закрытия вкладки.

Предпросмотр CTE:

  • Нажмите Preview CTE над кодом, чтобы просмотреть результат CTE.

Просмотр каталога​

Вкладка читает метаданные из вашего аккаунта dbt platform, поэтому сначала нужно войти.

Откройте вкладку Catalog, чтобы увидеть сведения о текущей модели из аккаунта dbt platform прямо в редакторе.

Для текущей модели на вкладке доступны:

  • Статус, время последней сборки и длительность запуска из dbt platform.
  • Описание модели (Description).
  • Столбцы (Columns): типы, описания и результаты тестов. Столбцы можно сортировать по алфавиту или по имени теста.
  • Ссылка View in dbt platform, открывающая ресурс в dbt platform.
Вкладка Catalog в расширении dbt для VS CodeВкладка Catalog в расширении dbt для VS Code

Создание системного отчёта​

Системный отчёт собирает журналы расширения VS Code и сведения о системе в ZIP-архив. При неполадках его можно отправить в поддержку dbt Labs для диагностики.

Чтобы создать и скачать отчёт:

  1. Откройте палитру команд (Cmd+Shift+P в macOS или Ctrl+Shift+P в Windows/Linux).
  2. Найдите и выберите dbt: Generate System Report.
  3. Укажите, куда сохранить ZIP-архив.
  4. Появится уведомление с путём к сохранённому файлу.

Сравнение изменений при разработке Бета-версияEnterpriseEnterprise +​

Использует вашу учетную запись dbt platform

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

(Версии dbt: v2.0 и новее)

Аутентификация выполняется с помощью dbt login, поэтому состояние входа в систему общее для CLI, расширения dbt для VS Code и .

Вы можете использовать функцию сравнения изменений на базе dbt v2 в локальной среде разработки, чтобы сравнивать текущую рабочую копию с вашим manifest.json (например, с последним состоянием в продакшене) прямо в редакторе.

Подробнее об использовании этой функции см. в разделе Сравнение изменений при локальной разработке.

Пример вкладки CompareПример вкладки Compare

Нашли ошибку?

0
Loading