Сравнение изменений при разработке
Для сравнения изменений требуется базовое состояние — либо механизм deferral в dbt platform, который использует ваш аккаунт dbt platform, либо локальный файл manifest.json, для которого аккаунт не нужен.
Расширение dbt для VS Code позволяет предварительно просматривать и сравнивать влияние локальных правок на данные в вашем аккаунте dbt platform — включая добавленные и удалённые строки, а также проверку соединений — не дожидаясь CI.
Используйте сравнение изменений, чтобы заранее оценить их влияние и проверить результат перед созданием PR или запуском задания CI:
- Проверяйте корректность результатов при рефакторинге логики, добавлении или удалении столбцов, а также изменении соединений.
- Эта функция сравнивает вашу текущую рабочую копию с состоянием из
manifest.json(например, с последним состоянием продакшен-среды) и показывает изменения первичных ключей, строк и столбцов на вкладке Compare.
Функция сравнения изменений в расширении dbt для VS Code отличается от функции сравнения изменений в Advanced CI, которая запускается на этапе PR при развёртывании, а не локально при разработке.
Сравнение изменений при разработке доступно только для моделей. Поддержка seeds, снимков, ephemeral-моделей и Python-моделей появится в ближайшее время.
Предварительные требования
Чтобы использовать функцию сравнения изменений в расширении dbt для VS Code, вам потребуется:
- Платформа данных, поддерживаемая dbt v2 (BigQuery, Databricks, Redshift или Snowflake)
- Установленное расширение dbt для VS Code вместе с самостоятельно установленным dbt v2
- Базовое состояние для сравнения изменений — см. раздел Как это работает, чтобы выбрать между автоматическим deferral и ручной настройкой с помощью
manifest.json.
Вход и аутентификация
Необходимость входа зависит от того, как вы задаёте базовое состояние:
- Если вы используете deferral в dbt platform (рекомендуется): Войдите в аккаунт dbt platform. Также вам потребуется файл
dbt_cloud.ymlв локальном каталоге.dbt(~/.dbt/dbt_cloud.ymlв macOS/Linux), чтобы расширение могло получить манифест из среды, используемой для deferral. - Если вы задаёте базовое состояние вручную с помощью
manifest.json: Аккаунт dbt platform не требуется. Укажите расширению путь к локальному файлуmanifest.json, и сравнение изменений будет выполняться относительно него.
Как это работает
Сравнение изменений при разработке сопоставляет две материализованные модели в вашем хранилище данных. А именно, модель, построенная в вашей схеме разработки (определяемой активным профилем), сравнивается с моделью, на которую ссылается ваш manifest.json (например, с последним состоянием продакшен-среды). Обе стороны сравнения всегда представляют собой таблицы в хранилище; содержимое SQL-файлов не сравнивается.
От выбранного подхода зависит, потребуется ли вам аккаунт dbt platform:
- Deferral в dbt platform (рекомендуется): Требуется аккаунт dbt platform и хотя бы один успешный запуск задания в среде, используемой для deferral (обычно staging или продакшен). dbt v2 автоматически скачивает манифест из этой среды и использует его как базовое состояние.
- Ручная настройка каталога
state: Укажите расширению путь к локальному файлуmanifest.json(например, скопированному из другой среды). Аккаунт dbt platform не требуется; запуск задания также не нужен.
Использование сравнения изменений
Чтобы использовать сравнение изменений при разработке, выполните следующие действия:
- Откройте SQL-файл модели в редакторе.
- Внесите изменения в модель, например добавьте новый столбец или измените существующий (например,
left_join_customersнаright_join_customers). - Запустите сравнение изменений в интерфейсе VS Code:
- Палитра команд: откройте палитру команд VS Code (Shift + Command + P (Mac) / Ctrl + Shift + P (Windows/Linux)) и найдите команду dbt: Compare changes
- Нижняя панель: перейдите на вкладку Compare, затем нажмите кнопку Compare.
- После нажатия кнопки Compare расширение выполнит команду
dbt build, чтобы построить модель, над которой вы работаете, а затем запустит сравнение. На вкладке Compare отображаются изменения первичных ключей, строк и столбцов данных. Переключаясь между вкладками, можно просмотреть подробности изменений, например конкретные добавленные или изменённые столбцы. - После сравнения и просмотра изменений на вкладке Compare вы можете решить, зафиксировать изменения в коммите или продолжить редактирование.
Результаты на вкладке Compare
На вкладке Compare отображаются изменения первичных ключей, строк и столбцов данных. Переключаясь между вкладками, можно просмотреть подробности изменений, например конкретные добавленные или изменённые столбцы.
- Вкладка Overview: общая сводка изменений моделей, например количество добавленных или удалённых первичных ключей, изменённых строк и так далее. Также содержит сведения о связи между добавленными или изменёнными моделями.
- Вкладка Primary keys: подробные сведения об изменениях записей.
- Вкладка Modified rows: подробные сведения об изменённых строках.
- Вкладка Columns: подробные сведения об изменениях столбцов.


