Миграция с dbt-spark на dbt-databricks
Введение
Вы можете перенести свои проекты с использованием адаптера dbt-spark на использование адаптера dbt-databricks. В сотрудничестве с dbt Labs, Databricks создали этот адаптер, используя dbt-spark в качестве основы и добавив некоторые важные улучшения. С ним вы получаете более простую настройку — требуется всего три параметра для аутентификации — и больше функций, таких как поддержка Unity Catalog.
Предварительные требования
- Для dbt вам потребуются административные (admin) права для миграции проектов dbt.
Упрощенная аутентификация
Ранее вам нужно было предоставить ID cluster или endpoint, который было сложно извлечь из предоставленного http_path. Теперь не имеет значения, используете ли вы кластер или SQL endpoint, потому что настройка dbt-databricks требует одинаковые параметры для обоих. Все, что вам нужно предоставить:
- имя хоста рабочего пространства Databricks
- HTTP путь к SQL хранилищу или кластеру Databricks
- соответствующие учетные данные
Улучшенные значения по умолчанию
Адаптер dbt-databricks предоставляет более оптимальные значения по умолчанию, чем dbt-spark. Эти значения помогают оптимизировать ваш рабочий процесс, чтобы вы могли получить быструю производительность и экономичность Databricks. Они следующие:
- Модели dbt используют формат таблиц Delta. Вы можете удалить любые объявленные конфигурации
file_format = 'delta', так как они теперь избыточны. - Ускорьте ваши дорогие запросы с помощью Photon engine.
- Конфигурация
incremental_strategyустановлена наmerge.
Однако в dbt-spark значение по умолчанию для incremental_strategy — это append. Если вы хотите продолжать использовать incremental_strategy=append, вам нужно будет явно установить эту конфигурацию на ваших инкрементальных моделях. Если вы уже указали incremental_strategy=merge на ваших инкрементальных моделях, вам не нужно ничего менять при переходе на dbt-databricks; но вы можете сохранить ваши модели чистыми, удалив конфигурацию, так как она избыточна. Прочтите О стратегии инкрементального обновления, чтобы узнать больше.
Для получения дополнительной информации о значениях по умолчанию, см. Предостережения.
Чистый Python
Если вы используете dbt Core, вам больше не нужно загружать независимый драйвер для взаимодействия с Databricks. Вся информация о подключении встроена в библиотеку на чистом Python под названием databricks-sql-connector.
Миграция ваших dbt проектов в dbt Cloud
Миграция ваших dbt‑проектов в dbt
Вы можете перенести свои проекты с универсального адаптера Apache Spark на адаптер, специфичный для Databricks. Если вы используете dbt Core, переходите сразу к шагу 4.
Чтобы обновить подключение к Databricks в dbt Cloud:
Чтобы обновить подключение Databricks в dbt:
- В главной панели навигации выберите Account Settings.
- На вкладке Projects найдите проект, который вы хотите мигрировать на адаптер dbt-databricks.
- Нажмите на гиперссылку Connection для этого проекта.
- Нажмите Edit в правом верхнем углу.
- Выберите Databricks в качестве warehouse.
- Введите:
hostnamehttp_path- (опционально) имя каталога
- Нажмите Сохранить.
Всем в вашей организации, кто использует dbt, необходимо обновить Studio IDE перед тем, как снова приступить к работе. Обновление должно занять меньше минуты.
Настройка ваших учетных данных
Когда вы обновляете Databricks connection в dbt, ваша команда не потеряет свои учетные данные. Это упрощает миграцию, так как требуется лишь удалить Databricks connection и заново добавить информацию о кластере или endpoint.
Эти учетные данные не будут потеряны при успешном подключении к Databricks с использованием метода dbt-spark ODBC:
- Учётные данные, которые вы передали в dbt, чтобы подключиться к вашему рабочему пространству Databricks.
- Персональные токены доступа, которые участники вашей команды добавили в свой профиль dbt, чтобы иметь возможность разрабатывать в Studio IDE для конкретного проекта.
- Токен доступа, который вы добавили для каждой среды развертывания, чтобы dbt мог подключаться к Databricks во время выполнения production‑задач.
Миграция dbt проектов в dbt Core
Чтобы перенести ваши проекты dbt Core на адаптер dbt-databricks с dbt-spark, вам нужно:
- Установить адаптер dbt-databricks в вашей среде
- Обновить ваше подключение к Databricks, изменив ваш
targetв файле~/.dbt/profiles.yml
Любой, кто использует ваш проект, также должен внести эти изменения в своей среде.
Попробуйте эти примеры
Вы можете использовать следующие примеры файла profiles.yml, чтобы увидеть настройку аутентификации с dbt-spark по сравнению с более простой настройкой с dbt-databricks при подключении к SQL endpoint. Пример для кластера будет выглядеть аналогично.
Пример того, как выглядит аутентификация с dbt-spark:
your_profile_name:
target: dev
outputs:
dev:
type: spark
method: odbc
driver: '/opt/simba/spark/lib/64/libsparkodbc_sb64.so'
schema: my_schema
host: dbc-l33t-nwb.cloud.databricks.com
endpoint: 8657cad335ae63e3
token: [my_secret_token]
Пример того, насколько проще аутентификация с dbt-databricks:
your_profile_name:
target: dev
outputs:
dev:
type: databricks
schema: my_schema
host: dbc-l33t-nwb.cloud.databricks.com
http_path: /sql/1.0/endpoints/8657cad335ae63e3
token: [my_secret_token]