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

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

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

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

Ниже приведено руководство по работе с Fabric Data Warehouse — новым продуктом в составе Microsoft Fabric. В настоящее время адаптер поддерживает подключение к хранилищу данных (warehouse).

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

Чтобы узнать, как настроить dbt для работы с выделенными пулами SQL в Azure Synapse Analytics, обратитесь к разделу Настройка Microsoft Azure Synapse Analytics.

  • Поддерживается: Microsoft
  • Авторы: Microsoft
  • Репозиторий GitHub: Microsoft/dbt-fabric
  • Пакет PyPI: dbt-fabric
  • Канал Slack:
  • Поддерживаемая версия dbt: 1.4.0 и новее
  • Поддержка dbt: Supported
  • Минимальная версия платформы данных:

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

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

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

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

Предварительные требования​

На Debian/Ubuntu убедитесь, что у вас есть заголовочные файлы ODBC перед установкой

sudo apt install unixodbc-dev

Скачайте и установите Microsoft ODBC Driver 18 для SQL Server. Если у вас уже установлен ODBC Driver 17, то он также подойдет.

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

  • Адаптер протестирован с Microsoft Fabric Data Warehouse (также называемыми warehouses).
  • Мы тестируем все комбинации с Microsoft ODBC Driver 17 и Microsoft ODBC Driver 18.
  • Сортировки (collations), на которых мы запускаем наши тесты — Latin1_General_100_BIN2_UTF8.

Поддержка адаптера не ограничивается матрицей вышеуказанных конфигураций. Если вы заметите проблему с любой другой конфигурацией, дайте нам знать, открыв проблему на GitHub.

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

Конечные точки SQL analytics доступны только для чтения и поэтому не подходят для рабочих нагрузок трансформации, используйте вместо этого Warehouse.

Методы аутентификации и конфигурация профиля​

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

Microsoft Fabric поддерживает два типа аутентификации:

  • Субъект-служба Microsoft Entra
  • Пароль Microsoft Entra

Чтобы лучше разобраться в механизмах аутентификации, ознакомьтесь со страницей Подключение Microsoft Fabric.

Общие настройки​

Для всех методов аутентификации обратитесь к следующим параметрам конфигурации, которые можно задать в вашем файле profiles.yml. Полная справка по всем параметрам доступна в конце этой страницы.

Параметр конфигурацииОписаниеТипПример
driverODBC-драйвер для использованияОбязательныйODBC Driver 18 for SQL Server
serverИмя хоста сервераОбязательныйlocalhost
portПорт сервераОбязательный1433
databaseИмя базы данныхОбязательныйНе применимо
schemaИмя схемыОбязательныйdbo
retriesКоличество автоматических попыток повторить запрос перед неудачей. По умолчанию 1. Запросы с синтаксическими ошибками не будут повторяться. Этот параметр можно использовать для преодоления временных сетевых проблем.НеобязательныйНе применимо
login_timeoutКоличество секунд, используемых для установления соединения перед неудачей. По умолчанию 0, что означает, что тайм-аут отключен или используются системные настройки по умолчанию.НеобязательныйНе применимо
query_timeoutКоличество секунд, используемых для ожидания выполнения запроса перед неудачей. По умолчанию 0, что означает, что тайм-аут отключен или используются системные настройки по умолчанию.НеобязательныйНе применимо
schema_authorizationОпционально укажите принципала, который должен владеть схемами, создаваемыми dbt. Подробнее о авторизации схемы.НеобязательныйНе применимо
encryptШифровать ли соединение с сервером. По умолчанию true. Подробнее о шифровании соединения.НеобязательныйНе применимо
trust_certДоверять ли сертификату сервера. По умолчанию false. Подробнее о шифровании соединения.НеобязательныйНе применимо

Шифрование соединения​

Microsoft внесла несколько изменений в выпуске ODBC Driver 18, которые влияют на то, как настраивается шифрование соединения. Чтобы учесть эти изменения, начиная с dbt-sqlserver 1.2.0 или новее, значения по умолчанию для encrypt и trust_cert изменились. Оба этих параметра теперь всегда будут включены в строку соединения с сервером, независимо от того, оставили ли вы их в конфигурации профиля или нет.

  • Значение по умолчанию для encrypt — true, что означает, что соединения по умолчанию шифруются.
  • Значение по умолчанию для trust_cert — false, что означает, что сертификат сервера будет проверен. Установив это значение в true, будет принят самоподписанный сертификат.

Более подробная информация о том, как эти значения влияют на ваше соединение и как они используются в разных версиях ODBC-драйвера, доступна в документации Microsoft.

Стандартная аутентификация SQL Server​

SQL Server и аутентификация Windows не поддерживаются в Microsoft Fabric Data Warehouse.

Аутентификация Microsoft Entra ID​

Аутентификация Microsoft Entra ID (ранее Azure AD) является механизмом аутентификации по умолчанию в Microsoft Fabric Data Warehouse.

Следующие дополнительные методы доступны для аутентификации в продуктах Azure SQL:

  • Имя пользователя и пароль Microsoft Entra ID
  • Сервисный принципал
  • Аутентификация на основе окружения
  • Аутентификация Azure CLI
  • Аутентификация VS Code (доступна через автоматический вариант ниже)
  • Аутентификация модуля Azure PowerShell (доступна через автоматический вариант ниже)
  • Автоматическая аутентификация

Настройка автоматической аутентификации в большинстве случаев является самым простым выбором и работает для всех вышеперечисленных методов.

Сначала установите Azure CLI, затем выполните вход:

az login

profiles.yml
your_profile_name:
target: dev
outputs:
dev:
type: fabric
driver: 'ODBC Driver 18 for SQL Server' # (ODBC-драйвер, установленный в вашей системе)
server: hostname или IP вашего сервера
port: 1433
database: exampledb
schema: schema_name
authentication: CLI

Дополнительные опции для Microsoft Entra ID на Windows​

На системах Windows также доступны следующие дополнительные методы аутентификации для Azure SQL:

  • Интерактивная аутентификация Microsoft Entra ID
  • Интегрированная аутентификация Microsoft Entra ID
  • Аутентификация Visual Studio (доступна через автоматический вариант выше)

Эта настройка может опционально показывать запросы многофакторной аутентификации.

profiles.yml
your_profile_name:
target: dev
outputs:
dev:
type: fabric
driver: 'ODBC Driver 18 for SQL Server' # (ODBC-драйвер, установленный в вашей системе)
server: hostname или IP вашего сервера
port: 1433
database: exampledb
schema: schema_name
authentication: ActiveDirectoryInteractive
user: bill.gates@microsoft.com

Автоматическое предоставление Microsoft Entra ID для грантов​

Обратите внимание, что автоматическое назначение принципалов Microsoft Entra ID в настоящее время не поддерживается Microsoft Fabric Data Warehouse. Несмотря на то что в dbt можно использовать блок конфигурации grants для автоматической выдачи и отзыва прав доступа на ваши модели для пользователей или групп, хранилище данных на данный момент не поддерживает эту возможность.

Вам нужно добавить сервисный принципал или идентичность Microsoft Entra в рабочее пространство Fabric в качестве администратора.

Авторизация схемы​

Вы можете опционально указать принципала, который должен владеть всеми схемами, создаваемыми dbt. Это затем используется в операторе CREATE SCHEMA следующим образом:

CREATE SCHEMA [schema_name] AUTHORIZATION [schema_authorization]

Распространенный случай использования — это использование, когда вы аутентифицируетесь с принципалом, у которого есть разрешения на основе группы, такой как группа Microsoft Entra ID. Когда этот принципал создает схему, сервер сначала попытается создать индивидуальный логин для этого принципала, а затем связать схему с этим принципалом. Если бы вы использовали Microsoft Entra ID в этом случае, то это бы не удалось, так как Azure SQL не может автоматически создавать логины для индивидуальных участников группы AD.

Справочник по всем параметрам подключения​

Параметр конфигурацииОписаниеОбязательныйЗначение по умолчанию
driverODBC-драйвер для использования.✅
hostИмя хоста сервера базы данных.✅
portПорт сервера базы данных.1433
databaseИмя базы данных для подключения.✅
schemaСхема для использования.✅
authenticationМетод аутентификации для использования. Это не требуется для аутентификации Windows.'sql'
UIDИмя пользователя для аутентификации. Это можно не указывать в зависимости от метода аутентификации.
PWDПароль для аутентификации. Это можно не указывать в зависимости от метода аутентификации.
tenant_idИдентификатор арендатора экземпляра Microsoft Entra ID. Это используется только при подключении к Azure SQL с сервисным принципалом.
client_idИдентификатор клиента сервисного принципала Microsoft Entra. Это используется только при подключении к Azure SQL с сервисным принципалом Microsoft Entra.
client_secretСекрет клиента сервисного принципала Microsoft Entra. Это используется только при подключении к Azure SQL с сервисным принципалом Microsoft Entra.
encryptУстановите это значение в false, чтобы отключить использование шифрования. См. выше.true
trust_certУстановите это значение в true, чтобы доверять сертификату сервера. См. выше.false
retriesКоличество попыток повторить неудачное соединение.1
schema_authorizationОпционально укажите принципала, который должен владеть схемами, создаваемыми dbt. Подробнее выше.
login_timeoutКоличество секунд ожидания до получения ответа от сервера при установлении соединения. 0 означает, что тайм-аут отключен.0
query_timeoutКоличество секунд ожидания до получения ответа от сервера при выполнении запроса. 0 означает, что тайм-аут отключен.0

Допустимые значения для authentication:

  • ActiveDirectoryPassword: Аутентификация Active Directory с использованием имени пользователя и пароля
  • ActiveDirectoryInteractive: Аутентификация Active Directory с использованием имени пользователя и запросов многофакторной аутентификации (MFA)
  • ActiveDirectoryIntegrated: Аутентификация Active Directory с использованием учётных данных текущего пользователя
  • ServicePrincipal: Аутентификация Microsoft Entra ID с использованием субъекта-службы
  • CLI: Аутентификация Microsoft Entra ID с использованием учётной записи, под которой вы вошли в Azure CLI
  • environment: Аутентификация Microsoft Entra ID с использованием переменных окружения, как описано здесь
  • auto: Аутентификация Microsoft Entra ID с последовательным перебором предыдущих методов аутентификации до тех пор, пока не будет найден работающий метод

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

0
Loading