Возможности расширения 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 | Все пользователи |
| Автодополнение функций с учётом диалекта | Все пользователи |
| Кеш запросов для ускорения инкрементальной компиляции | Все пользователи |
| Предварительный просмотр CTE | baseline (по умолчанию) или strict |
| Диагностика ошибок типов и схемы SQL | static_analysis: strict |
| Рефакторинг имён столбцов | static_analysis: strict |
| Граф зависимостей на уровне столбцов | static_analysis: strict |
| Переход к столбцам и CTE в SQL через LSP | static_analysis: strict |
Просмотр схемы для select * при наведении курсора в SQL через LSP | static_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-функций с учётом диалекта.
Рефакторинг
При переименовании модели или столбца расширение обновляет ссылки во всём проекте.
Переименование модели:
- Щёлкните правой кнопкой мыши по файлу в дереве и выберите 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.
Граф зависимостей в редакторе
Просматривайте зависимости таблиц и столбцов прямо во время разработки.
Зависимости на уровне таблиц:
При использовании расширения 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.
Создание системного отчёта
Системный отчёт собирает журналы расширения VS Code и сведения о системе в ZIP-архив. При неполадках его можно отправить в поддержку dbt Labs для диагностики.
Чтобы создать и скачать отчёт:
- Откройте палитру команд (
Cmd+Shift+Pв macOS илиCtrl+Shift+Pв Windows/Linux). - Найдите и выберите dbt: Generate System Report.
- Укажите, куда сохранить ZIP-архив.
- Появится уведомление с путём к сохранённому файлу.
Сравнение изменений при разработке Бета-версияEnterpriseEnterprise +
Эта функция может читать данные из вашей учетной записи dbt platform. Войдите в систему, чтобы расширение dbt для VS Code могло получить к ней доступ.
(Версии dbt: v2.0 и новее)Аутентификация выполняется с помощью dbt login, поэтому состояние входа в систему общее для CLI, расширения dbt для VS Code и .
Вы можете использовать функцию сравнения изменений на базе dbt v2 в локальной среде разработки, чтобы сравнивать текущую рабочую копию с вашим manifest.json (например, с последним состоянием в продакшене) прямо в редакторе.
Подробнее об использовании этой функции см. в разделе Сравнение изменений при локальной разработке.


