Переход с dbt Core на dbt Cloud: Советы по оптимизации
Введение
Переход с dbt Core на dbt Cloud упрощает рабочие процессы аналитической инженерии, позволяя командам разрабатывать, тестировать, развертывать и исследовать продукты данных, используя единый полностью управляемый программный сервис.
Изучите нашу серию из трех частей о переходе с dbt Core на dbt Cloud. Эта серия идеально подходит для пользователей, стремящихся к упрощенным рабочим процессам и улучшенной аналитике:
Руководство | Информация | Аудитория |
---|---|---|
Переход с dbt Core на dbt Cloud: Что нужно знать | Поймите, какие аспекты и методы нужно учитывать при переходе с dbt Core на dbt Cloud. | Руководители команд Администраторы |
Переход с dbt Core на dbt Cloud: Начало работы | Узнайте, какие шаги необходимы для перехода с dbt Core на dbt Cloud. | Разработчики Инженеры данных Аналитики данных |
Переход с dbt Core на dbt Cloud: Советы по оптимизации | Узнайте, как оптимизировать работу с dbt Cloud с помощью распространенных сценариев и полезных советов. | Все |
Почему стоит перейти на dbt Cloud?
Если ваша команда сегодня использует dbt Core, вы можете читать это руководство по следующим причинам:
- Вы осознали, насколько сложно поддерживать это развертывание.
- Человек, который его настроил, уже ушел.
- Вы заинтересованы в том, что dbt Cloud может предложить для лучшего управления сложностью вашего развертывания dbt, демократизации доступа для большего числа участников или улучшения практик безопасности и управления.
Переход с dbt Core на dbt Cloud упрощает рабочие процессы, предоставляя полностью управляемую среду, которая улучшает сотрудничество, безопасность и оркестрацию. С dbt Cloud вы получаете доступ к таким функциям, как межкомандное сотрудничество (dbt Mesh), управление версиями, упрощенный CI/CD, dbt Explorer для получения всесторонних инсайтов и многое другое — что облегчает управление сложными развертываниями dbt и эффективное масштабирование ваших рабочих процессов с данными.
Это идеальный выбор для команд, стремящихся снизить нагрузку на поддержку собственной инфраструктуры, одновременно улучшая управление и продуктивность.
Чему вы научитесь
Вы, возможно, уже начали переход на dbt Cloud и ищете советы, которые помогут вам оптимизировать ваш опыт работы с dbt Cloud. Это руководство включает советы и предостережения для следующих областей:
- Адаптеры и подключения
- Инструменты разработки
- Оркестрация
- dbt Mesh
- Семантический слой dbt
- dbt Explorer
Адаптеры и подключения
В dbt Cloud вы можете нативно подключиться к вашей платформе данных и протестировать ее подключение нажатием одной кнопки. Это особенно полезно для пользователей, которые новички в dbt Cloud или стремятся упростить настройку подключения. Вот некоторые советы и предостережения, которые стоит учитывать:
Советы
- Управляйте версиями dbt и обеспечивайте командное сотрудничество с помощью функции dbt Cloud в один клик, устраняя необходимость в ручных обновлениях и несоответствиях версий. Выберите трассу выпуска для постоянных обновлений, чтобы всегда быть в курсе исправлений и (по желанию) получить ранний доступ к новой функциональности для вашего проекта dbt.
- dbt Cloud поддерживает множество облачных провайдеров, включая Snowflake, Databricks, BigQuery, Fabric и Redshift (и это лишь некоторые из них).
- Используйте расширенные атрибуты для установки гибкого фрагмента profiles.yml в настройках среды dbt Cloud. Это дает вам больше контроля над средами (как развертывания, так и разработки) и расширяет возможности подключения dbt Cloud к платформе данных в данной среде.
- Например, если у вас есть поле в вашем
profiles.yml
, которое вы хотите добавить в пользовательский интерфейс адаптера dbt Cloud, вы можете использовать расширенные атрибуты для его настройки.
- Например, если у вас есть поле в вашем
Предостережения
- Не все параметры доступны для адаптеров.
- Проект может использовать только один тип хранилища.
Инструменты разработки
dbt Cloud предоставляет возможность специалистам по данным разрабатывать в инструменте по их выбору. Он поставляется с dbt Cloud CLI (локальным) или dbt Cloud IDE (на основе браузера) для создания, тестирования, запуска и контроля версий ваших проектов dbt.
Оба инструмента разработки адаптированы для различных аудиторий и предпочтений в вашей команде. Чтобы упростить рабочий процесс вашей команды, важно знать, кто предпочтет dbt Cloud IDE, а кто может склониться к dbt Cloud CLI. Этот раздел направлен на разъяснение этих предпочтений.
dbt Cloud IDE
Веб-интерфейс для создания, тестирования, запуска и контроля версий проектов dbt. Он компилирует код dbt в SQL и выполняет его непосредственно в вашей базе да нных. dbt Cloud IDE делает разработку быстрой и легкой как для новых, так и для опытных специалистов по данным, чтобы строить и тестировать изменения.
Кто может предпочесть dbt Cloud IDE?
- Новые пользователи dbt или те, кто переходит с других инструментов и ценит более управляемый опыт через интерфейс на основе браузера.
- Члены команды, сосредоточенные на скорости и удобстве для начала работы с новым или существующим проектом.
- Лица, которые придают приоритет прямой обратной связи от IDE, например, видя несохраненные изменения.
Ключевые особенности
- dbt Cloud IDE имеет упрощенную функциональность Git:
- Создавайте ветки функций из ветки, настроенной в среде разработки.
- Просматривайте сохраненные, но не зафиксированные изменения кода непосредственно в IDE.
- Форматируйте или проверяйте ваш код с помощью
sqlfluff
илиsqlfmt
. Это включает поддержку добавления ваших собственных правил проверки. - Позволяет пользователям нативно откладывать на производство метаданные непосредственно в их рабочих процессах разработки, уменьшая количество объектов.
- Поддерживает выполнение нескольких команд dbt одновременно через безопасное параллельное выполнение, функция, доступная в инфраструктуре dbt Cloud. В отличие от этого,
dbt-core
не поддерживает безопасное параллельное выполнение для нескольких вызовов в одном процессе.
dbt Cloud IDE предоставляет упрощенный интерфейс, доступный для всех пользователей, независимо от их технического уровня. Однако есть некоторые возможности, которые намеренно недоступны в dbt Cloud IDE из-за его акцента на простоте и удобстве использования:
- Предварительная проверка для автоматических проверок перед фиксацией кода пока недоступна.
- Массовое создание файлов / взаимодействие с файловой системой недоступно.
- Комбинирование/передача команд, таких как
dbt run -s (bash command)
, недоступно.
dbt Cloud CLI
dbt Cloud CLI позволяет вам выполнять команды dbt в вашей среде разработки dbt Cloud из вашей локальной командной строки. Для пользователей, которые ищут полный контроль над своей средой разработки и идеально подходят для тех, кто комфортно работает с командной строкой.
При переходе с dbt Core на dbt Cloud убедитесь, что файл .gitignore
содержит необходимые папки. dbt Core не взаимодействует с git, поэтому dbt Cloud не добавляет и не проверяет автоматически записи в файл .gitignore
. Кроме того, если репозиторий уже содержит код dbt и не требует инициализации, dbt Cloud не добавит недостающие записи в файл .gitignore
.
Кто может предпочесть dbt Cloud CLI?
- Специалисты по данным, привыкшие работать с определенным набором инструментов разработки.
- Пользователи, ищущие детальный контроль над своими рабочими процессами Git (например, предварительные проверки для автоматических проверок перед фиксацией кода).
- Специалисты по данным, которым необходимо выполнять сложные операции, такие как массовое создание файлов или специфические комбинации команд.
Ключевые особенности
- Позволяет пользователям выполнять команды dbt в их среде разработки dbt Cloud из их локальной командной строки с минимальной настройкой.
- Позволяет пользователям нативно откладывать на производство метаданные непосредственно в их рабочих процессах разработки, уменьшая количество объектов.
- Поддерживает выполнение нескольких команд dbt одновременно через безопасное параллельное выполнение, функция, доступная в инфраструктуре dbt Cloud. В отличие от этого,
dbt-core
не поддерживает безопасное параллельное выполнение для нескольких вызовов в одном процессе. - Возможность использования расширений Visual Studio (VS) Code (таких как dbt-power-user для улучшения опыта разработки, добавляя дополнительные функции.
Оркестрация
dbt Cloud предоставляет надежную оркестрацию, которая позволяет вам легко планировать, запускать и отслеживать задания dbt. Вот некоторые советы и предостережения, которые стоит учитывать при использовании функций оркестрации dbt Cloud:
Советы
- Включите частичное разбор между заданиями в dbt Cloud, чтобы значительно ускорить разбор проекта, обрабатывая только измененные файлы, оптимизируя производительность для больших проектов.
- Запускайте несколько CI/CD заданий одновременно, которые не будут блокировать производственные запуски. Планировщик заданий автоматически отменяет устаревшие запуски, когда поступает более новый коммит. Это происходит потому, что каждый PR будет запускаться в своей собственной схеме.
- dbt Cloud автоматически отменяет запланированный запуск, если существующий запуск все еще выполняется. Это предотвращает ненужные, дублирующие выполнения.
- Защитите вас и вашу свежесть данных от сбоев сторонних сервисов, включив кэширование Git-репозитория в dbt Cloud, которое сохраняет кэш Git-репозитория проекта. enterprise
- Связывайте задания развертывания между проектами dbt Cloud, настраивая ваше задание или используя API создания задания для этого. teamenterprise
- Перезапускайте ваши задания с начала или с точки сбоя, если выполнение вашего задания dbt завершилось со статусом
Ошибка.
Предостережения
- Чтобы автоматизировать настройку и конфигурацию вашей платформы dbt Cloud, вы можете хранить конфигурации ваших заданий как код в репозитории:
- Ознакомьтесь с нашим провайдером Terraform.
- Кроме того, ознакомьтесь с нашим репозиторием jobs-as-code, который является инструментом, созданным для обработки заданий dbt Cloud как хорошо определенного YAML-файла.
- Пользователи dbt Cloud и внешние электронные письма могут получать уведомления, если задание завершилось сбоем, успешно или было отменено. Чтобы получать уведомления о предупреждениях, вы можете создать подписку на вебхуки и отправлять сообщения в Slack.
dbt Mesh
dbt Mesh помогает организациям с зрелыми, сложными рабочими процессами трансформации в dbt повысить гибкость и производительность их проектов dbt. Он позволяет использовать несколько взаимосвязанных проектов dbt вместо одного большого монолитного проекта.
Это позволяет вам взаимодействовать и перемещаться между различными проектами и моделями с межпроектными зависимостями, улучшая сотрудничество и управление данными.
Вот некоторые советы и предостережения, которые стоит учитывать при использовании dbt Mesh:
Советы
- Чтобы динамически разрешать межпроектные ссылки, все разработчики должны разрабатывать с dbt Cloud (либо с dbt Cloud CLI, либо с dbt Cloud IDE). Межпроектные ссылки не поддерживаются нативно в dbt Core, за исключением установки исходного кода из вышестоящих проектов в виде пакетов
- Связывайте модели между проектами для модульного и масштабируемого подхода к вашему проекту и командам.
- Управляйте доступом к вашим моделям dbt как внутри, так и между проектами, используя:
- Группы — Организуйте узлы в вашем dbt DAG, которые имеют логическую связь, и назначьте владельца всей группы.
- Доступ к моделям — Контролируйте, какие другие модели или проекты могут ссылаться на эту модель.
- Версии моделей — Позволяют принимать и устаревать модели по мере их развития.
- Контракты моделей — Устанавливайте четкие ожидания относительно формы данных, чтобы гарантировать, что изменения данных выше по потоку dbt или в логике проекта не нарушают данные продуктов потребителей ниже по потоку.
- Используйте dbt-meshify для ускорения разделения вашего монолита на несколько проектов.
Предостережения
- Чтобы использовать межпроектные ссылки в dbt, каждый проект dbt должен соответствовать только одному проекту dbt Cloud. Мы настоятельно не рекомендуем определять несколько проектов для одной и той же кодовой базы, даже если вы пытаетесь управлять разрешениями доступа, подключаться к различным хранилищам данных или разделять производственные и непроизводственные данные. Хотя это было необходимо исторически, такие функции, как Стадии среды, RBAC на уровне среды (скоро будет) и Расширенные атрибуты сделают это ненужным.
- Зависимости проектов однонаправленные, что означает, что они идут в одном направлении. Это означает, что dbt проверяет наличие циклов между проектами (циклические зависимости) и выдает ошибки, если они обнаружены. Однако мы рассматриваем возможность поддержки, позволяющей проектам зависеть друг от друга в обоих направлениях в будущем, при этом dbt все еще будет проверять наличие циклов на уровне узлов, позволяя циклы на уровне проектов.
- Все в аккаунте могут просматривать общедоступные метаданные моделей, что помогает пользователям легче находить продукты данных. Это отдельно от того, кто может получить доступ к фактическим данным, что контролируется разрешениями в хранилище данных. Для случаев использования, когда даже метаданные о повторно используемом активе данных яв ляются конфиденциальными, мы рассматриваем возможность расширения защищенных моделей.
Обратитесь к Часто задаваемым вопросам о dbt Mesh для получения дополнительных вопросов.
Семантический слой dbt
Используйте Семантический слой dbt, поддерживаемый MetricFlow, чтобы создать единое представление ваших бизнес-метрик, обеспечивая согласованность во всех аналитических инструментах. Вот некоторые советы и предостережения, которые стоит учитывать при использовании Семантического слоя dbt:
Советы
- Определяйте семантические модели и метрики один раз в dbt Cloud с помощью Семантического слоя dbt (поддерживаемого MetricFlow). Повторн о используйте их на различных аналитических платформах, уменьшая избыточность и ошибки.
- Используйте API Семантического слоя dbt для запроса метрик в инструментах ниже по потоку для получения согласованных, надежных метрик данных.
- Подключайтесь к нескольким приложениям данных, от инструментов бизнес-аналитики до блокнотов, электронных таблиц, каталогов данных и многого другого, чтобы запрашивать ваши метрики. Доступные интеграции включают Tableau, Google Sheets, Hex и другие.
- Используйте экспорты для записи часто используемых запросов непосредственно в вашу платформу данных по расписанию.
Предостережения
- Семантический слой dbt в настоящее время поддерживает среду развертывания для выполнения запросов. Опыт выполнения запросов в среде разработки скоро появится.
- Запускайте команды запросов/семантического слоя в dbt Cloud CLI, однако выполнение команд запросов/семантического слоя в dbt Cloud IDE пока не поддерживается.
- Семантический слой dbt пока не поддерживает SSH-туннелирование для подключений Postgres или Redshift. Он также не поддерживает использование Единого входа (SSO) для производственных учетных данных Семантического слоя, однако SSO поддерживается для учетных записей пользователей разработки.
Обратитесь к Часто задаваемым вопросам о Семантическом слое dbt для получения дополнительной информации.
dbt Explorer
dbt Explorer улучшает вашу способность обнаруживать, понимать и устранять неполадки ваших активов данных через богатые метаданные и визуализацию родословной. Вот некоторые советы и предостережения, которые стоит учитывать при использовании dbt Explorer:
Советы
- Используйте возможности поиска и фильтрации в dbt Explorer, чтобы быстро находить модели, источники и тесты, упрощая ваш рабочий процесс.
- Просматривайте все различные проекты и общедоступные модели в аккаунте, где определены общедоступные модели, и как они используются, чтобы лучше понять ваши ресурсы между проектами.
- Используйте функцию Линзы, которая представляет собой слои, похожие на карты, для вашего DAG, доступные из графа родословной вашего проекта. Линзы помогают вам лучше понять контекстные метаданные вашего проекта в масштабе, особенно для различения конкретной модели или подмножества моделей.
- Получите доступ к родословной на уровне столбцов (CLL) для ресурсов в вашем проекте dbt. enterprise