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

Настройка 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‑приложение.

~/.dbt/profiles.yml
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

Параметры хоста

Следующие поля профиля всегда обязательны.

ПолеОписаниеПример
hostИмя хоста вашего кластера.

Не включайте префикс http:// или https://.
YOURORG.databrickshost.com
http_pathHTTP-путь к вашему SQL Warehouse или универсальному кластеру./SQL/YOUR/HTTP/PATH
schemaИмя схемы в каталоге вашего кластера.

Не рекомендуется использовать имена схем с заглавными или смешанными буквами.
MY_SCHEMA
Loading table...

Параметры аутентификации

Адаптер dbt-databricks поддерживает как аутентификацию на основе токенов, так и аутентификацию на основе OAuth-клиента.

Обратитесь к следующим обязательным параметрам для настройки вашего профиля для каждого типа аутентификации:

ПолеТип аутентификацииОписаниеПример
tokenToken-basedПерсональный токен доступа (Personal Access Token, PAT) для подключения к Databricks.dapiXXXXXXXXX
XXXXXXXXXXXXXX
client_idOAuth-based (AWS/GCP)Идентификатор клиента для вашего OAuth‑приложения Databricks.OAUTH_CLIENT_ID
client_secretOAuth-based (AWS/GCP)Клиентский секрет для вашего OAuth‑приложения Databricks.XXXXXXXXXXXXX
XXXXXXXXXXXXXX
azure_client_idOAuth-based (Azure)Идентификатор клиента для вашего OAuth‑приложения Azure Databricks.AZURE_CLIENT_ID
azure_client_secretOAuth-based (Azure)Клиентский секрет для вашего OAuth‑приложения Azure Databricks.XXXXXXXXXXXXX
XXXXXXXXXXXXXX
auth_typeOAuth-basedТип авторизации, необходимый для подключения к Databricks.
oauth
Loading table...

Дополнительные параметры

Следующие поля профиля являются опциональными для настройки. Они помогают настроить, как сессия вашего кластера и dbt работают для вашего подключения.

Поле профиляОписаниеПример
threadsКоличество потоков, которые должен использовать dbt (по умолчанию 1)8
connect_retriesКоличество попыток повторного подключения к Databricks (по умолчанию 1)3
connect_timeoutСколько секунд до истечения времени ожидания подключения к Databricks (по умолчанию без ограничений)1000
session_propertiesУстанавливает свойства сессии Databricks, используемые в подключении. Выполните SET -v, чтобы увидеть доступные опцииansi_mode: true
Loading table...

Поддерживаемая функциональность

Delta Lake

Поддерживается большая часть функциональности dbt Core, однако некоторые возможности доступны только при использовании Delta Lake.

Возможности, доступные только для Delta:

  1. Инкрементальные обновления моделей по unique_key вместо partition_by (см. стратегию merge)
  2. Снимки (Snapshots)

Функции, доступные только в Delta:

  1. Инкрементальные обновления моделей по unique_key вместо partition_by (см. стратегия merge)
  2. Снимки

Unity Catalog

Адаптер dbt-databricks>=1.1.1 поддерживает 3-уровневое пространство имен Unity Catalog (каталог / схема / отношения), что позволяет организовать и защитить ваши данные так, как вам нужно.

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

0
Loading