Настройка 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-jobsLivy 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.
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 секунд между попытками:
retry_all: true
connect_timeout: 5
connect_retries: 3
Конфигурация Spark
Spark можно настраивать с помощью Application Properties. Используя эти свойства, можно изменить параметры выполнения, например, выделить больше памяти для процесса драйвера. Также через эти свойства можно задать настройки Spark SQL runtime. Например, это позволяет пользователю настроить Spark catalogs.
Поддерживаемая функциональность
Поддерживается большая часть функциональности dbt Core. Подробнее см. Delta Lake interoporability.
Функциональность, доступная только для Delta:
- Инкрементальные обновления моделей по
unique_keyвместоpartition_by(см. стратегиюmerge) - Snapshots
- Сохранение описаний столбцов на уровне базы данных в виде комментариев
Ограничения
- Схемы Lakehouse не поддерживаются. См. ограничения
- Аутентификация через Service Principal пока не поддерживается Livy API.
- Fabric Lakehouse поддерживает только форматы данных таблиц Delta, CSV и Parquet.