Подключение 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.
Полная справка по всем параметрам доступна в конце этой страницы.
| Параметр конфигурации | Описание | Тип | Пример |
|---|---|---|---|
driver | ODBC-драйвер для использования | Обязательный | 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 (доступна через автоматический вариант ниже)
- Автоматическая аутентификация
Настройка автоматической аутентификации в большинстве случаев является самым простым выбором и работает для всех вышеперечисленных методов.
- Имя пользователя и пароль Microsoft Entra ID
- Сервисный принципал
- Управляемая идентичность
- На основе окружения
- Azure CLI
- Автоматическая
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: ActiveDirectoryPassword
user: bill.gates@microsoft.com
password: iheartopensource
Client ID часто также называется Application ID.
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: ServicePrincipal
tenant_id: 00000000-0000-0000-0000-000000001234
client_id: 00000000-0000-0000-0000-000000001234
client_secret: S3cret!
Эта опция аутентификации позволяет динамически выбирать метод аутентификации в зависимости от доступных переменных окружения.
Документация Microsoft по EnvironmentCredential объясняет доступные комбинации переменных окружения, которые вы можете использовать.
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: environment
Сначала установите Azure CLI, затем выполните вход:
az login
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
Эта опция аутентификации автоматически попытается использовать все доступные методы аутентификации.
Следующие методы пробуются по порядку:
- Аутентификация на основе окружения
- Аутентификация с управляемой идентичностью. Управляемая идентичность в настоящее время не поддерживается.
- Аутентификация Visual Studio (только Windows, игнорируется на других операционных системах)
- Аутентификация Visual Studio Code
- Аутентификация Azure CLI
- Аутентификация модуля Azure PowerShell
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: auto
Дополнительные опции для Microsoft Entra ID на Windows
На системах Windows также доступны следующие дополнительные методы аутентификации для Azure SQL:
- Интерактивная аутентификация Microsoft Entra ID
- Интегрированная аутентификация Microsoft Entra ID
- Аутентификация Visual Studio (доступна через автоматический вариант выше)
- Интерактивная аутентификация Microsoft Entra ID
- Интегрированная аутентификация Microsoft Entra ID
Эта настройка может опционально показывать запросы многофакторной аутентификации.
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
Используются учетные данные, с которыми вы вошли в систему на текущем компьютере.
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: ActiveDirectoryIntegrated
Автоматическое предоставление 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.
Справочник по всем параметрам подключения
| Параметр конфигурации | Описание | Обязательный | Значение по умолчанию |
|---|---|---|---|
driver | ODBC-драйвер для использования. | ✅ | |
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 CLIenvironment: Аутентификация Microsoft Entra ID с использованием переменных окружения, как описано здесьauto: Аутентификация Microsoft Entra ID с последовательным перебором предыдущих методов аутентификации до тех пор, пока не будет найден работающий метод