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

Настройка Microsoft Fabric Lakehouse

Файл profiles.yml предназначен только для dbt Core и dbt Fusion

Если вы используете dbt platform, вам не нужно создавать файл profiles.yml. Этот файл требуется только в том случае, если вы используете dbt Core или dbt Fusion локально. Чтобы узнать больше о требованиях к Fusion, см. раздел Supported features. Чтобы подключить вашу платформу данных к dbt, см. раздел About data platforms.

Ниже приведено руководство по использованию Fabric Data Engineering — нового продукта в составе Microsoft Fabric. В настоящее время этот адаптер поддерживает подключение только к endpoint’у lakehouse.

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

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

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

Установите адаптер с помощью pip. До версии 1.8 установка адаптера автоматически устанавливала dbt-core и любые дополнительные зависимости. Начиная с 1.8 установка адаптера не устанавливает dbt-core автоматически. Это потому, что версии адаптеров и dbt Core были развязаны, и мы больше не хотим перезаписывать существующие установки dbt-core. Используйте следующую команду для установки:

python -m pip install dbt-core dbt-fabricspark

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

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

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

Способы подключения

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

  • session-jobs Livy session job предполагает установку Spark-сессии, которая остаётся активной на протяжении всей работы Spark. В рамках одной Spark-сессии можно выполнять несколько заданий (каждое задание — это действие), при этом между заданиями разделяется состояние и кэшированные данные.
  • batch jobs предполагают отправку Spark-приложения для выполнения одного задания. В отличие от Livy session job, batch job не поддерживает длительную Spark-сессию. При использовании Livy batch jobs для каждого задания создаётся новая 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

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

Повторы (Retries)

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

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

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

Конфигурация Spark

Spark можно настраивать с помощью Application Properties. Используя эти свойства, можно изменить параметры выполнения, например, выделить больше памяти для процесса драйвера. Также через эти свойства можно задать настройки Spark SQL runtime. Например, это позволяет пользователю настроить Spark catalogs.

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

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

Функциональность, доступная только для Delta:

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

Ограничения

  1. Схемы Lakehouse не поддерживаются. См. ограничения
  2. Аутентификация через Service Principal пока не поддерживается Livy API.
  3. Fabric Lakehouse поддерживает только форматы данных таблиц Delta, CSV и Parquet.

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

0
Loading