Настройка Databricks
profiles.yml предназначен только для dbt Core и dbt FusionЕсли вы используете dbt platform, вам не нужно создавать файл profiles.yml. Этот файл требуется только в том случае, если вы используете dbt Core или dbt Fusion локально. Чтобы узнать больше о требованиях к Fusion, см. раздел Supported features. Чтобы подключить вашу платформу данных к dbt, см. раздел About data platforms.
- Поддерживается: Databricks
- Авторы: some dbt loving Bricksters
- Репозиторий GitHub: databricks/dbt-databricks
- Пакет PyPI:
dbt-databricks - Канал в Slack: #db-databricks-and-spark
- Поддерживаемая версия dbt Core: v0.18.0 и новее
- Поддержка dbt: Supported
- Минимальная версия платформы данных: Databricks SQL or DBR 12+
Установка dbt-databricks
Установите адаптер с помощью pip. До версии 1.8 установка адаптера автоматически устанавливала dbt-core и любые дополнительные зависимости. Начиная с 1.8 установка адаптера не устанавливает dbt-core автоматически. Это потому, что версии адаптеров и dbt Core были развязаны, и мы больше не хотим перезаписывать существующие установки dbt-core.
Используйте следующую команду для установки:
python -m pip install dbt-core dbt-databricks
Настройка dbt-databricks
Конфигурацию, специфичную для Databricks, см. на странице настроек Databricks.
dbt-databricks — это рекомендуемый адаптер для Databricks. Он включает функции, недоступные в dbt-spark, такие как:
- Поддержка Unity Catalog
- Нет необходимости устанавливать дополнительные драйверы или зависимости для использования в CLI
- Использование Delta Lake для всех моделей по умолчанию
- SQL макросы, оптимизированные для работы с Photon
Подключение к Databricks
Чтобы подключиться к платформе данных с помощью dbt Core, создайте соответствующие ключи/значения profile и target в YAML-файле конфигурации profiles.yml для вашего Databricks SQL Warehouse/кластера. Этот YAML-файл dbt находится в директории .dbt/ вашего пользовательского/домашнего каталога. Для получения дополнительной информации обратитесь к Профили подключения и profiles.yml.
dbt-databricks может подключаться к Databricks SQL Warehouses и универсальным кластерам. Databricks SQL Warehouses — это рекомендуемый способ начать работу с Databricks.
Обратитесь к документации Databricks для получения дополнительной информации о том, как получить учетные данные для настройки вашего профиля.
Примеры
Примеры
Вы можете использовать аутентификацию на основе токена или аутентификацию на основе OAuth‑клиента для подключения к Databricks. Обратитесь к следующим примерам, чтобы узнать больше о том, как настроить профиль для каждого типа аутентификации.
Приложение OAuth по умолчанию для dbt-databricks автоматически включено в каждой учетной записи с ожидаемыми настройками. Вы можете найти приложение адаптера в Account Console > Settings > App Connections > dbt adapter for Databricks. Если вы не можете найти приложение адаптера, возможно, dbt отключен в вашей учетной записи. В этом случае обратитесь к данному руководству, чтобы повторно включить dbt-databricks как OAuth‑приложение.
- Аутентификация на основе токенов
- Аутентификация OAuth на основе клиента (M2M)
- Аутентификация OAuth на основе клиента (U2M)
your_profile_name:
target: dev
outputs:
dev:
type: databricks
catalog: CATALOG_NAME #опциональное имя каталога, если вы используете Unity Catalog
schema: SCHEMA_NAME # Обязательно
host: YOURORG.databrickshost.com # Обязательно
http_path: /SQL/YOUR/HTTP/PATH # Обязательно
token: dapiXXXXXXXXXXXXXXXXXXXXXXX # Обязательно, если используется аутентификация на основе токенов
threads: 1_OR_MORE # Опционально, по умолчанию 1
your_profile_name:
target: dev
outputs:
dev:
type: databricks
catalog: CATALOG_NAME # необязательное имя каталога, если вы используете Unity Catalog
schema: SCHEMA_NAME # обязательно
host: YOUR_ORG.databrickshost.com # обязательно
http_path: /SQL/YOUR/HTTP/PATH # обязательно
auth_type: oauth # обязательно при использовании аутентификации на основе OAuth
client_id: OAUTH_CLIENT_ID # идентификатор вашего OAuth‑приложения. Обязательно при использовании OAuth. Для Azure Databricks ключ должен называться azure_client_id.
client_secret: XXXXXXXXXXXXXXXXXXXXXXXXXXX # секрет OAuth‑клиента. Обязателен при использовании OAuth. Для Azure Databricks ключ должен называться azure_client_secret.
threads: 1_OR_MORE # необязательно, значение по умолчанию — 1
your_profile_name:
target: dev
outputs:
dev:
type: databricks
catalog: CATALOG_NAME # необязательное имя каталога, если вы используете Unity Catalog
schema: SCHEMA_NAME # обязательно
host: YOUR_ORG.databrickshost.com # обязательно
http_path: /SQL/YOUR/HTTP/PATH # обязательно
auth_type: oauth # обязательно при использовании аутентификации на основе OAuth
threads: 1_OR_MORE # необязательно, по умолчанию 1
Параметры хоста
Следующие поля профиля всегда обязательны.
| Loading table... |
Параметры аутентификации
Адаптер dbt-databricks поддерживает как аутентификацию на основе токенов, так и аутентификацию на основе OAuth-клиента.
Обратитесь к следующим обязательным параметрам для настройки вашего профиля для каждого типа аутентификации:
| Loading table... |
Дополнительные параметры
Следующие поля профиля являются опциональными для настройки. Они помогают настроить, как сессия вашего кластера и dbt работают для вашего подключения.
| Loading table... |
Поддерживаемая функциональность
Delta Lake
Поддерживается большая часть функциональности dbt Core, однако некоторые возможности доступны только при использовании Delta Lake.
Возможности, доступные только для Delta:
- Инкрементальные обновления моделей по
unique_keyвместоpartition_by(см. стратегиюmerge) - Снимки (Snapshots)
Функции, доступные только в Delta:
- Инкрементальные обновления моделей по
unique_keyвместоpartition_by(см. стратегияmerge) - Снимки
Unity Catalog
Адаптер dbt-databricks>=1.1.1 поддерживает 3-уровневое пространство имен Unity Catalog (каталог / схема / отношения), что позволяет организовать и защитить ваши данные так, как вам нужно.