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

Подключение Microsoft Fabric Lakehouse к dbt v1

Файл profiles.yml нужен только для dbt v1 и dbt v2

Если вы используете dbt platform, создавать файл profiles.yml не нужно. Этот файл необходим только при локальном использовании v1 или v2. Подробнее о предварительных требованиях для v2 см. в разделе Поддерживаемые возможности. Чтобы подключить вашу платформу данных к dbt, см. раздел О платформах данных.

Ниже приведено руководство по работе с Fabric Data Engineering — новым продуктом в составе Microsoft Fabric. В настоящее время этот адаптер поддерживает подключение к конечной точке Lakehouse.

Чтобы узнать, как настроить dbt для работы с Fabric Warehouse, обратитесь к разделу Microsoft Fabric Data Warehouse.

  • Поддерживается: Microsoft
  • Авторы: Microsoft
  • Репозиторий GitHub: microsoft/dbt-fabricspark
  • Пакет PyPI: dbt-fabricspark
  • Канал Slack: db-fabric-synapse
  • Поддерживаемая версия dbt: v1.7 и новее
  • Поддержка dbt: Not supported
  • Минимальная версия платформы данных: n/a

Установка dbt-fabricspark

Установите адаптер с помощью `pip`: python -m pip install dbt-fabricspark

Настройка dbt-fabricspark

Конфигурацию, специфичную для Microsoft Fabric, см. на странице настроек Microsoft Fabric.

Дополнительную информацию см. в репозитории GitHub: microsoft/dbt-fabricspark

Поддерживаемые типы аутентификации​

Адаптер Fabric Lakehouse (dbt-fabricspark) подключается к Fabric Spark через Livy API. Выберите метод аутентификации в зависимости от того, где вы запускаете dbt v1.

Используйте Azure CLI для установок dbt в собственной инфраструктуре. Это позволяет dbt v1 использовать учётные данные из активного сеанса az login. Чтобы использовать этот метод, задайте authentication: CLI в файле profiles.yml и выполните az login.

При аутентификации Azure CLI может открыть окно браузера или предложить перейти на страницу входа Microsoft с устройства и ввести одноразовый код для завершения входа. После успешной аутентификации dbt автоматически использует активный сеанс Azure CLI для последующих команд.

Пример конфигурации Azure CLI​

profiles.yml
default:
target: dev
outputs:
dev:
type: fabricspark
method: livy
endpoint: https://api.fabric.microsoft.com/v1
workspaceid: WORKSPACE_ID
lakehouseid: LAKEHOUSE_ID
lakehouse: LAKEHOUSE_NAME
schema: LAKEHOUSE_OR_SCHEMA_NAME
threads: 1

# Authentication (CLI for self-hosted dbt installations)
authentication: CLI

Методы подключения​

dbt-fabricspark может подключаться к среде выполнения Fabric Spark с помощью Fabric Livy API. Fabric Livy API позволяет отправлять задания в двух разных режимах:

  • session-jobs — задание в сеансе Livy предполагает создание сеанса Spark, который остаётся активным на протяжении всего сеанса. В одном сеансе Spark можно выполнять несколько заданий (каждое задание представляет собой действие), совместно используя состояние и кешированные данные.
  • Пакетные задания предполагают отправку приложения Spark для однократного выполнения задания. В отличие от задания в сеансе Livy, пакетное задание не поддерживает постоянно работающий сеанс Spark. При использовании пакетных заданий Livy каждое задание запускает новый сеанс Spark, который завершается по окончании задания.
Поддерживаемый режим

Чтобы совместно использовать состояние сеанса между заданиями и сократить накладные расходы на управление сеансами, адаптер dbt-fabricspark поддерживает только режим session-jobs.

session-jobs​

session-jobs — предпочтительный метод подключения к Fabric Lakehouse.

~/.dbt/profiles.yml
your_profile_name:
target: dev
outputs:
dev:
type: fabricspark
method: livy
authentication: CLI
endpoint: https://api.fabric.microsoft.com/v1
workspaceid: [Fabric Workspace GUID]
lakehouseid: [Lakehouse GUID]
lakehouse: [Lakehouse Name]
schema: [Lakehouse Name]
spark_config:
name: [Application Name]
# optional
archives:
- "example-archive.zip"
conf:
spark.executor.memory: "2g"
spark.executor.cores: "2"
tags:
project: [Project Name]
user: [User Email]
driverMemory: "2g"
driverCores: 2
executorMemory: "4g"
executorCores: 4
numExecutors: 3
# optional
connect_retries: 0
connect_timeout: 10
retry_all: true

Дополнительные настройки​

Повторные попытки​

При выполнении запросов к Fabric Spark могут неожиданно возникать временные ошибки. Если включён параметр retry_all, dbt-fabricspark будет повторно выполнять любые запросы, завершившиеся с ошибкой, в соответствии с настройками connect_timeout и connect_retries. При этом адаптер не пытается определить, была ли ошибка запроса временной и может ли повторная попытка завершиться успешно. Эта настройка рекомендуется для производственных сред, где запросы должны выполняться успешно. Значение connect_retries по умолчанию — 2.

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

~/.dbt/profiles.yml
retry_all: true
connect_timeout: 5
connect_retries: 3

Настройка Spark​

Spark можно настроить с помощью свойств приложения. Эти свойства позволяют изменять параметры выполнения, например выделять больше памяти процессу драйвера. Кроме того, с помощью этих свойств можно настроить среду выполнения Spark SQL. Например, это позволяет пользователю задать каталоги Spark.

Поддерживаемые возможности​

Поддерживается большинство возможностей dbt v1. Подробнее см. в разделе Совместимость Delta Lake.

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

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

Ограничения​

  1. Fabric Lakehouse поддерживает только форматы данных таблиц Delta, CSV и Parquet.

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

0
Loading