Сценарии использования dbt Wizard
Типичные сценарии использования dbt Wizard с примерами запросов и описанием ожидаемых результатов. не понадобится.
dbt Wizard работает лучше всего, когда вы чётко задаёте область задачи (модель dbt или часть проекта), цель (что вы хотите изменить или узнать) и ограничения (соглашения об именовании, материализация, тесты). Приведённые ниже примеры следуют этому подходу.
Начинайте новый чат или сеанс для каждой отдельной задачи. Например, создание модели и диагностика не связанного с ней сбоя задания должны обсуждаться в двух отдельных диалогах.
- Создание новой модели
- Переход на инкрементальную материализацию
- Добавление тестов и документации
- Диагностика сбоя задания
- Оценка влияния изменений источника
- Переименование столбца во всём проекте
- Изменения в нескольких файлах
- Проверка перед выпуском
- Добавление семантической модели
Эти запросы работают одинаково во всех интерфейсах — в CLI, в Wizard Desktop и в dbt Wizard на dbt platform. Примеры для Studio IDE приведены в Сборнике запросов. Для работы с dbt Wizard в CLI используйте справочник команд wizard.
После настройки ознакомьтесь с руководством Как использовать dbt Wizard в проекте dbt, где описаны рекомендуемые рабочие процессы для реальных задач проекта.
Создание новой модели
У вас есть очищенные исходные данные, и вы хотите создать новую модель витрины данных, не прописывая весь SQL вручную.
Пример запроса:
Create a model called `fct_monthly_revenue` that joins `stg_orders` and `stg_payments`,
groups by `month` and `customer_id`, and materializes as a table. Add `not_null` tests
to the primary key and a unique test on the grain.
Что делает dbt Wizard:
- Читает
stg_ordersиstg_paymentsиз индекса вашего проекта, чтобы определить доступные столбцы - Генерирует
fct_monthly_revenue.sqlс логикой соединения и агрегации - Создаёт соответствующий блок YAML с запрошенными тестами
- Показывает различия для обоих файлов — изменения сохраняются только после вашего одобрения
Советы:
- Указывайте имена существующих staging-моделей, чтобы dbt Wizard использовал нужные столбцы
- Если в вашем проекте есть командное руководство по стилю в
.agents/skills/, dbt Wizard автоматически находит его и применяет соглашения об именовании и материализации
Переход на инкрементальную материализацию
Полное обновление витрины данных занимает всё больше времени. Вы хотите перевести её на инкрементальную материализацию, не нарушив работу существующих тестов.
Пример запроса:
Refactor `fct_orders` to use incremental materialization with a `unique_key` on `order_id`
and an updated_at filter. Keep all existing tests and don't change the output schema.
Что делает dbt Wizard:
- Читает текущий файл
fct_orders.sqlи его YAML - Переписывает модель, добавляя фильтр
{% if is_incremental() %} - Добавляет настройки
unique_keyиmaterialized = 'incremental' - Отмечает существующие тесты, поведение которых может измениться при инкрементальных запусках
Советы:
- Укажите dbt Wizard, какой столбец использовать для отслеживания последнего обработанного значения: он может выбрать подходящий столбец на основе вашей схемы, но явное указание надёжнее
- Попросите добавить примечание о
full_refreshв описание модели, чтобы те, кто будет сопровождать её в дальнейшем, понимали замысел
Добавление тестов и документации
Вам досталась модель без тестов и YAML. Вы хотите обеспечить покрытие тестами, не создавая шаблонный код вручную.
Пример запроса:
Generate tests and documentation for dim_customers. Add not_null and unique on
customer_id, not_null on email, and accepted_values on customer_status with values
active, churned, and prospect. Write a column description for each.
Что делает dbt Wizard:
- Читает
dim_customers.sqlи существующие файлы YAML, если они есть - Генерирует полный файл
dim_customers.ymlс описанием модели, описаниями столбцов и указанными вами тестами - Формулирует подходящие описания на основе имён столбцов — вы проверяете и редактируете их перед одобрением
Советы:
- Вы можете попросить dbt Wizard писать описания в определённом стиле или формате: «Напиши описания простым языком, по одному предложению на каждое»
- Чтобы документировать целый слой сразу: «Создай документацию для всех моделей в
models/staging/, у которых ещё нет файла YAML»
Рабочий процесс поиска пробелов в покрытии тестами и проверки предполагаемых условий на данных хранилища описан в руководстве Добавление тестов на основе данных с помощью dbt Wizard.
Диагностика сбоя задания
Ночью произошёл сбой задания в dbt platform. Вы хотите понять причину, не просматривая журналы вручную.
Пример запроса:
The nightly job failed. What's the root cause and how do I fix it?
Что делает dbt Wizard:
- Использует предоставленные вами данные о запуске или подключённые инструменты dbt MCP, чтобы получить и изучить подробности запуска задания
- Определяет модель, в которой произошёл сбой, сообщение об ошибке и вероятную причину
- Предлагает исправление и показывает различия
- Сообщает, если ваша локальная ветка отличается от ветки задания, чтобы у вас был полный контекст
Советы:
- Можно задать более конкретный вопрос: «Что вызвало сбой в
fct_ordersпри последнем запуске задания Production?» - Wizard не применит исправление без вашего одобрения, что особенно полезно, если сбой произошёл в модели рабочей среды
Процедура сбора диагностических данных, поиска причины и проверки описана в руководстве Диагностика сбоя задания dbt с помощью dbt Wizard.
Оценка влияния изменений источника
Перед изменением модели stg вы хотите узнать, какие зависимые модели могут быть затронуты.
Пример запроса:
If I change the grain of stg_payments from one row per payment to one row per
payment attempt, which downstream models break?
Что делает dbt Wizard:
- Выполняет запрос к графу происхождения данных и анализирует влияние изменений в вашем проекте, чтобы найти все ресурсы, зависящие от
stg_payments - Определяет, какие модели выполняют соединение по ключам уровня платежа и будут затронуты изменением уровня детализации
- Перечисляет модели по степени критичности — сначала витрины данных и exposures, затем промежуточные модели
- Предлагает, какие модели нужно обновить в рамках изменения
Советы:
- Необязательно точно описывать изменение: даже вопрос «Что зависит от stg_payments?» позволяет оценить область его влияния
- Продолжите запросом: «Напиши план миграции для безопасного внесения этого изменения»
Переименование столбца во всём проекте
Столбец в источнике переименован. Вам нужно обновить все ссылки на него, ничего не пропустив.
Пример запроса:
The source column user_id in raw_customers has been renamed to customer_id.
Update stg_customers and find any downstream models that reference user_id directly.
Что делает dbt Wizard:
- Обновляет псевдоним столбца в
stg_customers.sql - Ищет прямые ссылки на
user_idв зависимых моделях - Предлагает обновления для всех моделей, работа которых будет нарушена
- Приводит описания столбцов в YAML в соответствие с изменениями
Советы:
- Всегда запускайте
dbt compileпосле изменений, внесённых dbt Wizard, чтобы обнаружить ссылки, которые он мог пропустить - Для более полного охвата попросите Wizard «также проверить наличие user_id в любых строках с SQL-кодом или макросах Jinja»
Изменения в нескольких файлах
Вам нужно внести изменение, затрагивающее сразу несколько файлов, — переименовать модель, обновить контракт или изменить схему — и сохранить согласованность всех связанных файлов.
Пример запроса:
Rename dim_users to dim_customers. Update the model file, its YAML, every
downstream ref(), the tests, the documentation, and any exposures that point to it.
Что делает dbt Wizard:
- Переименовывает
dim_users.sqlвdim_customers.sql - Обновляет имя модели в соответствующем YAML
- Ищет в проекте
ref('dim_users')и переписывает каждое вхождение - Обновляет все тесты, блоки docs и exposures, которые ссылаются на старое имя
- Компилирует проект, чтобы убедиться в корректности всех ссылок, прежде чем показать вам различия
- Отмечает всё, что не удалось обновить автоматически (например, строки с SQL-кодом или внешние дашборды)
Советы:
- Изменения в нескольких файлах согласуются как единый набор различий: проверяйте их вместе, а не по отдельным файлам
- При изменении типа столбца или схемы явно указывайте новый тип: «Измени тип
order_amountвfct_ordersсnumericнаdecimal(18,2)и обнови зависимые модели и тесты»
Проверка перед выпуском
Для изменений, где корректность важнее скорости, попросите dbt Wizard оценить влияние и проверить результат в контексте вашего проекта.
Пример запроса:
Add not_null and unique tests to the primary key of dim_customers. Use heavy
validation, investigate any failures, and summarize skipped checks.
Что делает dbt Wizard:
- Генерирует YAML для новых тестов
- Оценивает затронутые ресурсы и предлагает план проверки
- Выполняет одобренные шаги компиляции, сборки, тестирования и сравнения для выбранного уровня проверки
- Сообщает о сбоях, различиях, неустранённых рисках и пропущенных проверках
- Показывает предложенные изменения для вашей проверки
В CLI dbt Wizard выбирайте уровень проверки light, medium, heavy или skipped в зависимости от риска и стоимости изменения. Перечень проверок для каждого уровня приведён в описании процесса проверки.
Советы:
- Указывайте, какое поведение с точки зрения бизнеса должно сохраниться, а не только какие команды нужно выполнить
Добавление семантической модели
У вас есть модель витрины данных, и вы хотите предоставить к ней доступ через dbt Semantic Layer.
Пример запроса:
Create a semantic model for fct_orders. Include a revenue metric that sums
order_total, a count of orders, and time dimensions on order_date at day,
week, and month granularity.
Что делает dbt Wizard:
- Читает
fct_orders.sqlи его YAML, чтобы определить доступные столбцы - Определяет версию dbt и выбирает совместимую структуру YAML для Semantic Layer
- Предлагает сущности, измерения и метрики на основе уровня детализации модели и бизнес-запроса
- Добавляет одобренные вами определения и проверяет их ссылки
Советы:
- Если вы не уверены, какие сущности использовать, сначала спросите: «Какие сущности подойдут для семантической модели на основе fct_orders?»
- dbt Wizard следует документации dbt Semantic Layer: вы можете попросить его объяснить любое сгенерированное поле
Примеры для конкретных версий и шаги проверки приведены в руководстве Создание определений Semantic Layer с помощью dbt Wizard.
Связанная документация
- Начало работы с dbt Wizard
- Изучение проекта dbt
- Проверка изменений dbt
- Добавление тестов на основе данных
- Диагностика сбоя задания
- Создание определений Semantic Layer
- Обзор dbt Wizard
- Настройка BYOK
- dbt Wizard в Studio IDE: тот же агент на платформе dbt
- Сборник запросов: дополнительные шаблоны запросов для dbt Wizard в Studio IDE (многие также подходят для CLI)