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

Обновление до Fusion, часть 2: переход

Это руководство помогает выполнить in-place обновление с последней версии dbt Core на движок dbt Fusion в dbt platform.

dbt Fusion engine
dbt platform
Upgrade
Intermediate
Menu

    Введение

    private preview

    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

    Fusion в dbt platform в настоящее время находится в стадии Private preview. Возможность включения зависит от вашего тарифного плана:

    • Тарифы Enterprise и Enterprise+: Свяжитесь с вашим аккаунт-менеджером, чтобы включить Fusion для вашей среды.
    • Тарифы Developer и Starter: Выполните шаги из руководства Part 1: Prepare for upgrade, чтобы ваш проект стал совместимым с Fusion. После этого он будет автоматически включён для вашего аккаунта, и вы сможете начать процесс обновления.

    Предварительные требования

    Перед обновлением среды разработки убедитесь, что:

    • Ваш проект использует трек релизов Latest (выполнено в Part 1: Preparing to upgrade)
    • Проект использует поддерживаемый адаптер и метод аутентификации
       BigQuery
       Databricks
      • Служебная учетная запись / токен пользователя
      • Нативный OAuth
       Redshift
      • Имя пользователя / пароль
      • Профиль IAM
       Snowflake
      • Имя пользователя / пароль
      • Нативный OAuth
      • Внешний OAuth
      • Пара ключей с использованием современного метода PKCS#8
      • MFA
    • У вас есть лицензия разработчика в dbt platform
    • Fusion включён для вашего аккаунта
    • У вас есть необходимые права для изменения сред (см. Assign upgrade access, если доступ ограничен)

    Обновление среды разработки

    После подготовки проекта и тестирования на треке Latest вы готовы обновить среду разработки до Fusion. dbt platform предоставляет пошаговый мастер обновления, который проведёт вас через процесс и поможет убедиться, что проект готов к Fusion.

    Начинайте с development

    Всегда сначала обновляйте среду разработки, прежде чем переходить к production. Это позволяет вам и вашей команде безопасно протестировать Fusion и устранить возможные проблемы до того, как они затронут production‑процессы.

    Назначение доступа к обновлению (необязательно)

    По умолчанию мастер обновления Fusion доступен всем пользователям, однако администраторы аккаунта могут ограничить доступ с помощью набора разрешений Fusion admin (permission set).

    Чтобы ограничить доступ к процессу обновления:

    1. Перейдите в Account settings в dbt platform.
    2. Выберите Groups и укажите группу, которой нужно предоставить доступ.
    3. Нажмите Edit и прокрутите до Access and permissions.
    4. Нажмите Add permission и выберите Fusion admin в выпадающем списке.
    5. Укажите проект(ы), к которым пользователи должны иметь доступ.
    6. Нажмите Save.
    Назначение прав Fusion admin группамНазначение прав Fusion admin группам

    Подробнее о контроле доступа см. Assign access to upgrade.

    Шаг 1: Запуск мастера обновления

    Запустите процесс обновления Fusion из вашего проекта:

    1. Войдите в dbt platform и перейдите к нужному проекту.
    2. На главной странице проекта или в боковой панели нажмите Start Fusion upgrade или Get started.
    Запуск обновления Fusion с главной страницы проектаЗапуск обновления Fusion с главной страницы проекта

    Вы будете перенаправлены в Studio IDE, где мастер обновления будет отображаться в верхней части интерфейса.

    Шаг 2: Проверка предупреждений о депрекейтах

    Даже если вы устранили депрекейты в части 1, выполните финальную проверку, чтобы убедиться, что ничего не было пропущено:

    1. В верхней части Studio IDE нажмите Check deprecation warnings.
    Проверка предупреждений о депрекейтах в проектеПроверка предупреждений о депрекейтах в проекте
    1. Дождитесь завершения парсинга (это может занять некоторое время в зависимости от размера проекта).
    2. Ознакомьтесь с результатами:
      • No warnings found: Переходите сразу к шагу 4.
      • Warnings found: Перейдите к шагу 3 для их устранения.
    Несоответствие предупреждений Fusion и логов dbt-autofix

    Вы можете увидеть предупреждения Fusion о том, что некоторые пакеты несовместимы с Fusion, в то время как dbt autofix сообщает об их совместимости. В этом случае используйте dbt autofix как источник истины, поскольку он обладает дополнительным контекстом, которого пока нет у предупреждений Fusion. Это временное несоответствие и будет устранено после внедрения расширенной логики определения совместимости из dbt-autofix в предупреждения Fusion.

    Шаг 3: Устранение оставшихся депрекейтов

    Если были найдены предупреждения, используйте инструмент autofix для их устранения:

    1. В списке предупреждений нажмите Autofix warnings.
    2. Ознакомьтесь с предлагаемыми изменениями в диалоге.
    3. Нажмите Continue, чтобы автоматически применить исправления.
    4. Дождитесь завершения работы инструмента autofix и повторного парсинга.
    5. Проверьте изменённые файлы в панели Version control.
    6. Если все предупреждения устранены, вы увидите сообщение об успехе.
    Сообщение об успешном устранении депрекейтовСообщение об успешном устранении депрекейтов

    Подробную информацию см. в разделе Fix deprecation warnings.

    Требуются ручные исправления?

    Если инструмент autofix не может автоматически устранить все депрекейты, вам потребуется исправить их вручную. Ознакомьтесь с текстом предупреждений, внесите необходимые изменения в код и снова запустите Check deprecation warnings.

    Шаг 4: Включение Fusion

    После устранения всех депрекейтов обновите среду разработки:

    1. Нажмите кнопку Enable Fusion в верхней части Studio IDE.
    2. Подтвердите обновление.
    3. Дождитесь завершения обновления среды (обычно это занимает несколько секунд).

    Ваша среда разработки теперь работает на Fusion!

    Шаг 5: Перезапуск IDE

    После обновления всем пользователям необходимо перезапустить IDE, чтобы подключиться к новой среде на базе Fusion:

    1. Если вы находитесь в Studio IDE, обновите страницу браузера.
    2. Уведомите остальных членов команды о необходимости перезапуска IDE.

    Шаг 6: Проверка обновления

    Убедитесь, что среда разработки работает на Fusion:

    1. Откройте или создайте файл dbt‑модели в Studio IDE.
    2. Обратите внимание на возможности, работающие на базе Fusion:
      • Более быстрый парсинг и компиляция
      • Улучшенная валидация SQL и сообщения об ошибках
      • Улучшенный автокомплит
    3. Запустите простую команду для проверки:
      dbt compile
    4. Убедитесь, что выполнение команды стало заметно быстрее.

    Шаг 7: Тестирование рабочих процессов

    Перед тем как считать обновление завершённым, протестируйте типовые сценарии разработки:

    1. Внесите изменения в модель и выполните dbt compile.
    2. Запустите подмножество моделей: dbt run --select model_name.
    3. Выполните тесты.
    4. Просмотрите результаты в встроенном инструменте запросов.
    5. Убедитесь, что операции Git (commit, push, pull) работают корректно.
    Обратная связь

    Если вы столкнулись с неожиданным поведением или у вас есть обратная связь по работе Fusion, поделитесь ею с вашей аккаунт‑командой или через dbt Support.

    А как насчёт продакшена?

    Ваше окружение разработки теперь работает на Fusion, но продакшен‑окружение и deployment jobs по‑прежнему выполняются на dbt Core. Это сделано намеренно, чтобы дать вам и вашей команде время:

    • Тщательно протестировать Fusion в разработке.
    • Укрепить уверенность в новом движке.
    • Выявить и устранить любые проблемы, специфичные для проекта.
    • Обучить участников команды изменениям в процессах.

    Когда вы будете готовы обновить продакшен, вы обновите ваши окружения развертывания и jobs так, чтобы они использовали release track Latest Fusion. Мы разберём это в следующем разделе.

    Обновите staging и промежуточные окружения

    После успешного обновления и тестирования окружения разработки следующий шаг — обновление staging‑окружения или других промежуточных deployment environments. Эти окружения служат критически важным слоем валидации перед тем, как продвигать Fusion в продакшен: они позволяют тестировать на продакшен‑подобных данных и в продакшен‑подобных процессах, при этом ограничивая риск.

    Почему сначала обновлять staging?

    Staging‑окружения дают:

    • Финальный слой валидации Fusion на данных продакшен‑масштаба
    • Возможность тестировать запланированные jobs и процессы развертывания
    • Возможность проверить интеграции и downstream‑зависимости
    • Безопасное окружение, чтобы оценить характеристики производительности до продакшена

    Что такое staging‑окружение?

    Staging environment — это deployment environment, которое зеркалирует вашу продакшен‑настройку, но использует не‑продакшен данные или учётные данные с ограниченным доступом. Оно позволяет команде тестировать процессы развертывания, запланированные jobs и преобразования данных, не затрагивая продакшен‑системы.

    Если у вас ещё нет staging‑окружения, подумайте о том, чтобы создать его до обновления продакшена до Fusion. Это даст вам крайне полезный «полигон» для тестирования.

    Шаг 1: Перейдите в настройки окружения

    Откройте настройки для вашего staging‑окружения или промежуточного окружения:

    1. Войдите в dbt platform и перейдите в ваш проект.
    2. В левом сайдбаре нажмите Orchestration.
    3. В выпадающем списке выберите Environments.
    4. Нажмите на название staging‑окружения, чтобы открыть его настройки.
    5. В правом верхнем углу нажмите кнопку Edit.
    Перейдите в настройки окруженияПерейдите в настройки окружения

    Шаг 2: Обновите версию dbt

    Переключите staging‑окружение на release track Fusion:

    1. В настройках окружения прокрутите до раздела dbt version.
    2. Откройте выпадающее меню dbt version.
    3. Выберите Latest Fusion из списка.
    4. Прокрутите вверх и нажмите Save.
    Выберите Latest Fusion в выпадающем списке dbt versionВыберите Latest Fusion в выпадающем списке dbt version

    Ваше staging‑окружение теперь настроено на использование Fusion! Все jobs, связанные с этим окружением, будут использовать Fusion при следующем запуске.

    Шаг 3: Запустите тестовую job

    Проверьте, что Fusion корректно работает в вашем staging‑окружении, запустив job:

    1. На странице Environments нажмите на ваше staging‑окружение.
    2. Выберите существующую job или нажмите Create job, чтобы создать новую.
    3. Нажмите Run now, чтобы запустить job сразу.
    4. Следите за выполнением job в реальном времени, открыв детали запуска.

    Шаг 4: Мониторьте запланированные jobs

    Если у вас в staging‑окружении есть jobs по расписанию, проследите за их следующими запланированными запусками:

    1. Перейдите в DeployJobs и отфильтруйте по staging‑окружению.
    2. Дождитесь автоматического запуска jobs по расписанию (или запустите вручную).
    3. Просмотрите историю запусков на предмет неожиданных ошибок или предупреждений.
    4. Сравните время выполнения с предыдущими запусками на dbt Core. Вы должны увидеть заметные улучшения.

    Шаг 5: Проверьте интеграции и зависимости

    Протестируйте интеграции и зависимости, которые опираются на ваше staging‑окружение:

    1. Межпроектные ссылки: если используете dbt Mesh, убедитесь, что downstream‑проекты по‑прежнему могут ссылаться на ваши staging‑модели.
    2. BI‑инструменты: проверьте, что любые BI‑инструменты или дашборды, подключённые к staging, продолжают работать корректно.
    3. Downstream‑потребители: уведомите команды, которые потребляют staging‑данные, чтобы они подтвердили, что их процессы по‑прежнему работают.
    4. 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: Перейдите в настройки продакшен‑окружения

    Откройте конфигурацию продакшен‑окружения:

    1. Войдите в dbt platform и перейдите в ваш проект.
    2. В левом сайдбаре нажмите Orchestration.
    3. В выпадающем списке выберите Environments.
    4. Нажмите на ваше продакшен‑окружение (обычно помечено бейджем Production).
    5. В правом верхнем углу нажмите кнопку Edit.
    Откройте настройки продакшен‑окруженияОткройте настройки продакшен‑окружения

    Шаг 3: Обновитесь до Latest Fusion

    Переключите продакшен‑окружение на Fusion:

    1. В настройках окружения прокрутите до раздела dbt version.
    2. Откройте выпадающее меню dbt version.
    3. Выберите Latest Fusion из списка.
    4. Ещё раз проверьте настройки, чтобы убедиться, что всё корректно.
    5. Прокрутите вверх и нажмите Save.
    Выберите Latest Fusion для продакшенаВыберите Latest Fusion для продакшена

    Ваше продакшен‑окружение теперь работает на Fusion!

    Шаг 4: Запустите тестовую job сразу

    Проверьте обновление, запустив job:

    1. На странице Environments нажмите на ваше продакшен‑окружение.
    2. Выберите критически важную job, которая покрывает хорошую часть моделей.
    3. Нажмите Run now, чтобы выполнить job сразу.
    4. Внимательно следите за запуском job:
      • Проверьте шаги parse и compile.
      • Убедитесь, что все модели собираются успешно.
      • Убедитесь, что тесты проходят как ожидается.
      • Просмотрите логи на предмет неожиданных предупреждений.

    Если job прошла успешно — обновление продакшена выполнено!

    Одна из самых мощных возможностей Fusionstate-aware orchestration: она автоматически определяет, какие модели нужно пересобрать, на основе изменений кода или данных. Это может сократить расходы на хранилище данных на 30% и более.

    В новых jobs state-aware orchestration автоматически включена в окружениях Fusion.

    Чтобы включить её для существующих jobs:

    1. Перейдите в DeployJobs.
    2. Откройте настройки продакшен‑job.
    3. В правом верхнем углу нажмите Edit.
    4. Прокрутите до Execution settings.
    5. Отметьте чекбокс Enable Fusion cost optimization features.
    6. Раскройте More options, чтобы увидеть дополнительные настройки:
      • State-aware orchestration
      • Efficient testing
    7. Нажмите Save.
    Включите Fusion cost optimization featuresВключите Fusion cost optimization features

    Повторите это для всех продакшен‑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 по расписанию: перейдите в DeployJobsRun history
    • Мониторьте время выполнения: сравните с историческими средними значениями. Вы должны увидеть заметные улучшения.
    • Просмотрите state-aware интерфейс: откройте график Models built and reused, чтобы увидеть экономию затрат в действии.
    • Следите за предупреждениями: просматривайте логи на предмет неожиданных сообщений.
    Мониторинг state-aware

    При включённой state-aware orchestration в логах job вы увидите модели, помеченные как Reused, если их не нужно пересобирать. Это ожидаемое поведение и признак экономии затрат!

    Шаг 7: Проверьте downstream‑интеграции

    Убедитесь, что все системы, зависящие от ваших продакшен‑данных, продолжают работать корректно:

    1. BI‑инструменты: проверьте, что дашборды и отчёты обновляются правильно.
    2. Потребители данных: подтвердите, что downstream‑команды могут получать доступ к данным и выполнять запросы.
    3. API и интеграции: протестируйте любые приложения, которые потребляют результаты dbt.
    4. Semantic Layer: если вы используете dbt Semantic Layer, убедитесь, что запросы метрик работают.
    5. Алерты и мониторинг: проверьте, что алерты качества данных и мониторинги работают корректно.

    Шаг 8: Обновите оставшиеся jobs с version overrides

    У некоторых jobs могут быть настроены version overrides после предыдущего тестирования. Теперь, когда продакшен работает на Fusion, удалите эти overrides:

    1. Перейдите в OrchestrationJobs.
    2. Проверьте настройки каждой job.
    3. Если у job есть version override (он отображается в разделе dbt version), нажмите Edit.
    4. Удалите override, чтобы job унаследовала настройку Fusion от окружения.
    5. Нажмите Save.

    Процедура отката

    Если вы столкнулись с критическими проблемами в продакшене, вы можете откатить версию dbt:

    1. Перейдите в OrchestrationEnvironmentsProduction.
    2. Нажмите Edit.
    3. Измените dbt version с Latest Fusion обратно на Latest.
    4. Нажмите Save.
    5. При следующем запуске 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 с другими пользователями.

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

    0