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

Настройка Microsoft Fabric Synapse Data Warehouse

к сведению

Ниже представлено руководство по использованию Synapse Data Warehouse, нового продукта в составе Microsoft Fabric. Адаптер в настоящее время поддерживает только подключение к хранилищу данных, но не к конечной точке lakehouse. Вы можете получить доступ к данным в вашем lakehouse через хранилище, если вы находитесь в одном рабочем пространстве.

Чтобы узнать, как настроить dbt с Azure Synapse Dedicated Pools, обратитесь к настройке Microsoft Azure Synapse DWH.

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

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

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

Конфигурация 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 Synapse Data Warehouses (также называемыми Warehouses).
  • Мы тестируем все комбинации с Microsoft ODBC Driver 17 и Microsoft ODBC Driver 18.
  • Колляции, на которых мы проводим тесты, это Latin1_General_100_BIN2_UTF8.

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

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

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

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

Общая конфигурация

Для всех методов аутентификации обратитесь к следующим параметрам конфигурации, которые можно задать в вашем файле 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 изменились. Оба этих параметра теперь всегда будут включены в строку соединения с сервером, независимо от того, оставили ли вы их в конфигурации профиля или нет.

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

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

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

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

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

Аутентификация Microsoft Entra ID (ранее Azure AD) является механизмом аутентификации по умолчанию в Microsoft Fabric Synapse 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 Synapse Data Warehouse. Хотя в dbt 1.2 или новее вы можете использовать блок конфигурации 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