Обновление до Fusion, часть 2: переход
Это руководство помогает выполнить in-place обновление с последней версии dbt Core на движок dbt Fusion в dbt platform.
Введение
dbt Fusion Engine доступен в рамках закрытого превью для всех тарифных планов аккаунтов dbt platform. Компания dbt Labs включает Fusion только для аккаунтов, в которых есть проекты, соответствующие требованиям. Выполнение шагов, описанных в этом руководстве, не гарантирует, что вы получите доступ к Fusion.
dbt Fusion Engine представляет собой следующий этап эволюции трансформации данных. dbt был полностью переработан с нуля, но на базовом уровне Fusion — это новая версия, и переход на неё аналогичен обновлению между версиями dbt Core в dbt platform. Когда ваш проект готов к Fusion, для перехода достаточно выполнить несколько шагов, при этом у вас есть гибкость в выборе подхода, особенно в средах разработки.
После завершения миграции на Fusion ваша команда получит следующие преимущества:
- ⚡ До 30 раз более быструю фазу парсинга и компиляции
- 💰 Снижение затрат на хранилище данных на 30% и более (за счёт state-aware orchestration)
- 🔍 Улучшенную валидацию SQL и более информативные сообщения об ошибках
- 🚀 State-aware orchestration для интеллектуального пересборки моделей
- 🛠️ Современные инструменты разработки
Fusion в dbt platform в настоящее время находится в стадии Private preview. Возможность включения зависит от вашего тарифного плана:
- Тарифы Enterprise и Enterprise+: Свяжитесь с вашим аккаунт-менеджером, чтобы включить Fusion для вашей среды.
- Тарифы Developer и Starter: Выполните шаги из руководства Part 1: Prepare for upgrade, чтобы ваш проект стал совместимым с Fusion. После этого он будет автоматически включён для вашего аккаунта, и вы сможете начать процесс обновления.
Предварительные требования
Перед обновлением среды разработки убедитесь, что:
- Ваш проект использует трек релизов
Latest(выполнено в Part 1: Preparing to upgrade) - Проект использует поддерживаемый адаптер и метод аутентификации
- У вас есть лицензия разработчика в dbt platform
- Fusion включён для вашего аккаунта
- У вас есть необходимые права для изменения сред (см. Assign upgrade access, если доступ ограничен)
Обновление среды разработки
После подготовки проекта и тестирования на треке Latest вы готовы обновить среду разработки до Fusion. dbt platform предоставляет пошаговый мастер обновления, который проведёт вас через процесс и поможет убедиться, что проект готов к Fusion.
Всегда сначала обновляйте среду разработки, прежде чем переходить к production. Это позволяет вам и вашей команде безопасно протестировать Fusion и устранить возможные проблемы до того, как они затронут production‑процессы.
Назначение доступа к обновлению (необязательно)
По умолчанию мастер обновления Fusion доступен всем пользователям, однако администраторы аккаунта могут ограничить доступ с помощью набора разрешений Fusion admin (permission set).
Чтобы ограничить доступ к процессу обновления:
- Перейдите в Account settings в dbt platform.
- Выберите Groups и укажите группу, которой нужно предоставить доступ.
- Нажмите Edit и прокрутите до Access and permissions.
- Нажмите Add permission и выберите Fusion admin в выпадающем списке.
- Укажите проект(ы), к которым пользователи должны иметь доступ.
- Нажмите Save.
Подробнее о контроле доступа см. Assign access to upgrade.
Шаг 1: Запуск мастера обновления
Запустите процесс обновления Fusion из вашего проекта:
- Войдите в dbt platform и перейдите к нужному проекту.
- На главной странице проекта или в боковой панели нажмите Start Fusion upgrade или Get started.
Вы будете перенаправлены в Studio IDE, где мастер обновления будет отображаться в верхней части интерфейса.
Шаг 2: Проверка предупреждений о депрекейтах
Даже если вы устранили депрекейты в части 1, выполните финальную проверку, чтобы убедиться, что ничего не было пропущено:
- В верхней части Studio IDE нажмите Check deprecation warnings.
- Дождитесь завершения парсинга (это может занять некоторое время в зависимости от размера проекта).
- Ознакомьтесь с результатами:
- No warnings found: Переходите сразу к шагу 4.
- Warnings found: Перейдите к шагу 3 для их устранения.
dbt-autofixВы можете увидеть предупреждения Fusion о том, что некоторые пакеты несовместимы с Fusion, в то время как dbt autofix сообщает об их совместимости. В этом случае используйте dbt autofix как источник истины, поскольку он обладает дополнительным контекстом, которого пока нет у предупреждений Fusion. Это временное несоответствие и будет устранено после внедрения расширенной логики определения совместимости из dbt-autofix в предупреждения Fusion.
Шаг 3: Устранение оставшихся депрекейтов
Если были найдены предупреждения, используйте инструмент autofix для их устранения:
- В списке предупреждений нажмите Autofix warnings.
- Ознакомьтесь с предлагаемыми изменениями в диалоге.
- Нажмите Continue, чтобы автоматически применить исправления.
- Дождитесь завершения работы инструмента autofix и повторного парсинга.
- Проверьте изменённые файлы в панели Version control.
- Если все предупреждения устранены, вы увидите сообщение об успехе.
Подробную информацию см. в разделе Fix deprecation warnings.
Если инструмент autofix не может автоматически устранить все депрекейты, вам потребуется исправить их вручную. Ознакомьтесь с текстом предупреждений, внесите необходимые изменения в код и снова запустите Check deprecation warnings.
Шаг 4: Включение Fusion
После устранения всех депрекейтов обновите среду разработки:
- Нажмите кнопку Enable Fusion в верхней части Studio IDE.
- Подтвердите обновление.
- Дождитесь завершения обновления среды (обычно это занимает несколько секунд).
Ваша среда разработки теперь работает на Fusion!
Шаг 5: Перезапуск IDE
После обновления всем пользователям необходимо перезапустить IDE, чтобы подключиться к новой среде на базе Fusion:
- Если вы находитесь в Studio IDE, обновите страницу браузера.
- Уведомите остальных членов команды о необходимости перезапуска IDE.
Шаг 6: Проверка обновления
Убедитесь, что среда разработки работает на Fusion:
- Откройте или создайте файл dbt‑модели в Studio IDE.
- Обратите внимание на возможности, работающие на базе Fusion:
- Более быстрый парсинг и компиляция
- Улучшенная валидация SQL и сообщения об ошибках
- Улучшенный автокомплит
- Запустите простую команду для проверки:
dbt compile - Убедитесь, что выполнение команды стало заметно быстрее.
Шаг 7: Тестирование рабочих процессов
Перед тем как считать обновление завершённым, протестируйте типовые сценарии разработки:
- Внесите изменения в модель и выполните
dbt compile. - Запустите подмножество моделей:
dbt run --select model_name. - Выполните тесты.
- Просмотрите результаты в встроенном инструменте запросов.
- Убедитесь, что операции Git (commit, push, pull) работают корректно.
Если вы столкнулись с неожиданным поведением или у вас есть обратная связь по работе Fusion, поделитесь ею с вашей аккаунт‑командой или через dbt Support.
А как насчёт продакшена?
Ваше окружение разработки теперь работает на Fusion, но продакшен‑окружение и deployment jobs по‑прежнему выполняются на dbt Core. Это сделано намеренно, чтобы дать вам и вашей команде время:
- Тщательно протестировать Fusion в разработке.
- Укрепить уверенность в новом движке.
- Выявить и устранить любые проблемы, специфичные для проекта.
- Обучить участников команды изменениям в процессах.
Когда вы будете готовы обновить продакшен, вы обновите ваши окружения развертывания и jobs так, чтобы они использовали release track Latest Fusion. Мы разберём это в следующем разделе.
Обновите staging и промежуточные окружения
После успешного обновления и тестирования окружения разработки следующий шаг — обновление staging‑окружения или других промежуточных deployment environments. Эти окружения служат критически важным слоем валидации перед тем, как продвигать Fusion в продакшен: они позволяют тестировать на продакшен‑подобных данных и в продакшен‑подобных процессах, при этом ограничивая риск.
Staging‑окружения дают:
- Финальный слой валидации Fusion на данных продакшен‑масштаба
- Возможность тестировать запланированные jobs и процессы развертывания
- Возможность проверить интеграции и downstream‑зависимости
- Безопасное окружение, чтобы оценить характеристики производительности до продакшена
Что такое staging‑окружение?
Staging environment — это deployment environment, которое зеркалирует вашу продакшен‑настройку, но использует не‑продакшен данные или учётные данные с ограниченным доступом. Оно позволяет команде тестировать процессы развертывания, запланированные jobs и преобразования данных, не затрагивая продакшен‑системы.
Если у вас ещё нет staging‑окружения, подумайте о том, чтобы создать его до обновления продакшена до Fusion. Это даст вам крайне полезный «полигон» для тестирования.
Шаг 1: Перейдите в настройки окружения
Откройте настройки для вашего staging‑окружения или промежуточного окружения:
- Войдите в dbt platform и перейдите в ваш проект.
- В левом сайдбаре нажмите Orchestration.
- В выпадающем списке выберите Environments.
- Нажмите на название staging‑окружения, чтобы открыть его настройки.
- В правом верхнем углу нажмите кнопку Edit.
Шаг 2: Обновите версию dbt
Переключите staging‑окружение на release track Fusion:
- В настройках окружения прокрутите до раздела dbt version.
- Откройте выпадающее меню dbt version.
- Выберите Latest Fusion из списка.
- Прокрутите вверх и нажмите Save.
Ваше staging‑окружение теперь настроено на использование Fusion! Все jobs, связанные с этим окружением, будут использовать Fusion при следующем запуске.
Шаг 3: Запустите тестовую job
Проверьте, что Fusion корректно работает в вашем staging‑окружении, запустив job:
- На странице Environments нажмите на ваше staging‑окружение.
- Выберите существующую job или нажмите Create job, чтобы создать новую.
- Нажмите Run now, чтобы запустить job сразу.
- Следите за выполнением job в реальном времени, открыв детали запуска.
Шаг 4: Мониторьте запланированные jobs
Если у вас в staging‑окружении есть jobs по расписанию, проследите за их следующими запланированными запусками:
- Перейдите в Deploy → Jobs и отфильтруйте по staging‑окружению.
- Дождитесь автоматического запуска jobs по расписанию (или запустите вручную).
- Просмотрите историю запусков на предмет неожиданных ошибок или предупреждений.
- Сравните время выполнения с предыдущими запусками на dbt Core. Вы должны увидеть заметные улучшения.
Шаг 5: Проверьте интеграции и зависимости
Протестируйте интеграции и зависимости, которые опираются на ваше staging‑окружение:
- Межпроектные ссылки: если используете dbt Mesh, убедитесь, что downstream‑проекты по‑прежнему могут ссылаться на ваши staging‑модели.
- BI‑инструменты: проверьте, что любые BI‑инструменты или дашборды, подключённые к staging, продолжают работать корректно.
- Downstream‑потребители: уведомите команды, которые потребляют staging‑данные, чтобы они подтвердили, что их процессы по‑прежнему работают.
- CI/CD‑процессы: запустите любые CI jobs, которые таргетят staging, чтобы убедиться, что они выполняются корректно.
Повторите для других промежуточных окружений
Если вы столкнулись с проблемами на staging:
- Просмотрите ограничения Fusion, чтобы понять, не является ли это известной проблемой.
- Проверьте логи job на наличие конкретных сообщений об ошибках.
- Протестируйте те же модели в окружении разработки, чтобы локализовать проблему.
- Обратитесь в dbt Support или к вашей аккаунт‑команде за помощью.
На время расследования вы можете откатить staging‑окружение на release track Latest.
Сколько времени нужно тестировать на staging?
Рекомендуемый период тестирования зависит от вашей организации:
- Минимум: хотя бы один успешный запуск всех критически важных jobs.
- Рекомендуется: мониторить jobs по расписанию 3–7 дней, чтобы отловить проблемы, зависящие от времени или данных.
- Enterprise/сложные проекты: рассмотрите 1–2 недели тестирования, особенно если у вас много downstream‑зависимостей.
Не торопитесь на этом этапе. Тщательное тестирование на staging предотвращает сбои в продакшене.
Обновите продакшен‑окружение
Поздравляем! Вы успешно обновили окружения разработки и staging и теперь готовы к финальному шагу — обновлению продакшен‑окружения до dbt Fusion Engine.
Обновление продакшена — критически важная операция. Хотя Fusion готов к продакшену и был тщательно протестирован в dev и staging‑окружениях, следуйте этим best practices:
- Планируйте обновление на период низкой нагрузки, чтобы минимизировать влияние.
- Уведомите стейкхолдеров о сервисном окне.
- Подготовьте план отката (возврат на release track
Latest). - Внимательно мониторьте первые несколько запусков jobs после обновления.
Шаг 1: Запланируйте сервисное окно
Выберите оптимальное время для обновления продакшена:
- Просмотрите расписание jobs: определите периоды с минимальной активностью jobs.
- Проверьте downstream‑зависимости: убедитесь, что зависимые системы могут пережить короткие прерывания.
- Уведомите стейкхолдеров: сообщите пользователям BI‑инструментов, потребителям данных и участникам команды.
- Задокументируйте план: зафиксируйте, какие jobs мониторить и критерии успеха.
Шаг 2: Перейдите в настройки продакшен‑окружения
Откройте конфигурацию продакшен‑окружения:
- Войдите в dbt platform и перейдите в ваш проект.
- В левом сайдбаре нажмите Orchestration.
- В выпадающем списке выберите Environments.
- Нажмите на ваше продакшен‑окружение (обычно помечено бейджем Production).
- В правом верхнем углу нажмите кнопку Edit.
Шаг 3: Обновитесь до Latest Fusion
Переключите продакшен‑окружение на Fusion:
- В настройках окружения прокрутите до раздела dbt version.
- Откройте выпадающее меню dbt version.
- Выберите Latest Fusion из списка.
- Ещё раз проверьте настройки, чтобы убедиться, что всё корректно.
- Прокрутите вверх и нажмите Save.
Ваше продакшен‑окружение теперь работает на Fusion!
Шаг 4: Запустите тестовую job сразу
Проверьте обновление, запустив job:
- На странице Environments нажмите на ваше продакшен‑окружение.
- Выберите критически важную job, которая покрывает хорошую часть моделей.
- Нажмите Run now, чтобы выполнить job сразу.
- Внимательно следите за запуском job:
- Проверьте шаги parse и compile.
- Убедитесь, что все модели собираются успешно.
- Убедитесь, что тесты проходят как ожидается.
- Просмотрите логи на предмет неожиданных предупреждений.
Если job прошла успешно — обновление продакшена выполнено!
Шаг 5: Включите state-aware orchestration (необязательно, но рекомендуется) EnterpriseEnterprise+
Одна из самых мощных возможностей Fusion — state-aware orchestration: она автоматически определяет, какие модели нужно пересобрать, на основе изменений кода или данных. Это может сократить расходы на хранилище данных на 30% и более.
В новых jobs state-aware orchestration автоматически включена в окружениях Fusion.
Чтобы включить её для существующих jobs:
- Перейдите в Deploy → Jobs.
- Откройте настройки продакшен‑job.
- В правом верхнем углу нажмите Edit.
- Прокрутите до Execution settings.
- Отметьте чекбокс Enable Fusion cost optimization features.
- Раскройте More options, чтобы увидеть дополнительные настройки:
- State-aware orchestration
- Efficient testing
- Нажмите Save.
Повторите это для всех продакшен‑jobs, чтобы максимально сократить расходы. Подробнее см. Setting up state-aware orchestration.
Если используется state-aware orchestration, dbt не обнаружит изменение, если таблица или представление были удалены вне dbt, поскольку кеш уникален для каждого окружения dbt platform. Это означает, что state-aware orchestration не пересоберёт эту модель до тех пор, пока либо не появятся новые данные, либо не произойдёт изменение в коде, который использует модель.
Чтобы обойти это ограничение:
- Нажмите кнопку Clear cache на странице целевого Environment, чтобы принудительно выполнить полный rebuild (это работает как сброс), или
- Временно отключите state-aware orchestration для job и запустите её снова.
Шаг 6: Мониторьте продакшен‑jobs
Внимательно следите за продакшен‑jobs в первые 24–48 часов:
- Проверьте запуски jobs по расписанию: перейдите в Deploy → Jobs → Run history
- Мониторьте время выполнения: сравните с историческими средними значениями. Вы должны увидеть заметные улучшения.
- Просмотрите state-aware интерфейс: откройте график Models built and reused, чтобы увидеть экономию затрат в действии.
- Следите за предупреждениями: просматривайте логи на предмет неожиданных сообщений.
При включённой state-aware orchestration в логах job вы увидите модели, помеченные как Reused, если их не нужно пересобирать. Это ожидаемое поведение и признак экономии затрат!
Шаг 7: Проверьте downstream‑интеграции
Убедитесь, что все системы, зависящие от ваших продакшен‑данных, продолжают работать корректно:
- BI‑инструменты: проверьте, что дашборды и отчёты обновляются правильно.
- Потребители данных: подтвердите, что downstream‑команды могут получать доступ к данным и выполнять запросы.
- API и интеграции: протестируйте любые приложения, которые потребляют результаты dbt.
- Semantic Layer: если вы используете dbt Semantic Layer, убедитесь, что запросы метрик работают.
- Алерты и мониторинг: проверьте, что алерты качества данных и мониторинги работают корректно.
Шаг 8: Обновите оставшиеся jobs с version overrides
У некоторых jobs могут быть настроены version overrides после предыдущего тестирования. Теперь, когда продакшен работает на Fusion, удалите эти overrides:
- Перейдите в Orchestration → Jobs.
- Проверьте настройки каждой job.
- Если у job есть version override (он отображается в разделе dbt version), нажмите Edit.
- Удалите override, чтобы job унаследовала настройку Fusion от окружения.
- Нажмите Save.
Процедура отката
Если вы столкнулись с критическими проблемами в продакшене, вы можете откатить версию dbt:
- Перейдите в Orchestration → Environments → Production.
- Нажмите Edit.
- Измените dbt version с Latest Fusion обратно на Latest.
- Нажмите Save.
- При следующем запуске jobs будут использовать dbt Core.
Откат на Latest отключит специфичные для Fusion функции, такие как state-aware orchestration. Делайте откат только если вы сталкиваетесь с критическими для продакшена проблемами.
Следующие шаги
🎉 Поздравляем!
Вы успешно обновили весь проект dbt platform до Fusion!
Дальше можно:
- Оптимизировать дальше: изучите расширенные конфигурации state-aware, чтобы тонко настроить интервалы обновления.
- Мониторить экономию: используйте state-aware интерфейс, чтобы отслеживать модели, которые были собраны, и те, которые были переиспользованы.
- Обучить команду: поделитесь возможностями и best practices Fusion с командой.
- Изучить новые возможности: посмотрите column-level lineage, live CTE previews и другие возможности на базе Fusion.
- Быть в курсе: следите за Fusion Diaries, чтобы узнавать о новых возможностях.
Нам будет интересно узнать о вашем опыте обновления до Fusion! Поделитесь обратной связью с вашей аккаунт‑командой или присоединяйтесь к dbt Community Slack, чтобы обсудить Fusion с другими пользователями.






