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

Подключение Snowflake

примечание

Подключения и учетные данные dbt Cloud наследуют разрешения настроенных учетных записей. Вы можете настроить роли и связанные с ними разрешения в Snowflake в соответствии с требованиями вашей компании и точно настроить доступ к объектам базы данных в вашей учетной записи. См. Разрешения Snowflake для получения дополнительной информации о настройке ролей в Snowflake.

Обратитесь к Разрешениям Snowflake для получения дополнительной информации о настройке ролей в Snowflake.

Следующие поля обязательны при создании подключения Snowflake

ПолеОписаниеПримеры
AccountУчетная запись Snowflake для подключения. Посмотрите здесь, чтобы определить, как должно выглядеть поле учетной записи в зависимости от вашего региона.

  db5261993 или db5261993.east-us-2.azure
  db5261993.eu-central-1.snowflakecomputing.com

RoleОбязательное поле, указывающее, какую роль следует принять после подключения к Snowflaketransformer
DatabaseЛогическая база данных для подключения и выполнения запросов.analytics
WarehouseВиртуальный склад для использования при выполнении запросов.transforming

Методы аутентификации

Этот раздел описывает различные методы аутентификации для подключения dbt Cloud к Snowflake. Настройте учетные данные среды развертывания (Production, Staging, General) глобально в разделе Connections в Account settings. Индивидуальные пользователи настраивают свои учетные данные разработки в разделе Credentials своего профиля пользователя.

Имя пользователя / Пароль

Доступно в: Среды разработки, Среды развертывания

Метод аутентификации Имя пользователя / Пароль является самым простым способом аутентификации учетных данных разработки или развертывания в проекте dbt. Просто введите ваше имя пользователя Snowflake (конкретно, login_name) и соответствующий пароль пользователя Snowflake, чтобы аутентифицировать dbt Cloud для выполнения запросов в Snowflake от имени пользователя Snowflake.

Примечание: Поле схемы в разделе Учетные данные разработчика является обязательным.

Аутентификация Snowflake по имени пользователя/паролюАутентификация Snowflake по имени пользователя/паролю

Snowflake MFA

Предварительные условия:

  • Среда разработки в проекте dbt Cloud
  • Приложение аутентификации Duo
  • Административный доступ к Snowflake (если настройки MFA еще не применены к учетной записи)
  • Административный (запись) доступ к средам dbt Cloud

dbt Cloud поддерживает многофакторную аутентификацию (MFA) Snowflake как еще один вариант имени пользователя и пароля для повышения безопасности входа. Поддержка MFA в Snowflake осуществляется с помощью сервиса Duo Security.

  • В dbt Cloud установите следующий расширенный атрибут на странице Общие настройки среды разработки в разделе Расширенные атрибуты:

    authenticator: username_password_mfa
  • Чтобы уменьшить количество запросов к пользователю при подключении к Snowflake с MFA, включите кэширование токенов в Snowflake.

  • При необходимости, если пользователи пропускают запросы и их учетные записи Snowflake блокируются, вы можете предотвратить автоматические повторные попытки, добавив следующее в тот же раздел Расширенные атрибуты:

    connect_retries: 0
Настройка имени пользователя и пароля MFA, а также connect_retries в настройках среды разработки.Настройка имени пользователя и пароля MFA, а также connect_retries в настройках среды разработки.

Ключевая пара

Доступно в: Среды разработки, Среды развертывания

Метод аутентификации Keypair использует аутентификацию с помощью ключевой пары Snowflake для аутентификации учетных данных разработки или развертывания для проекта dbt Cloud.

  1. После генерации зашифрованной ключевой пары обязательно установите rsa_public_key для пользователя Snowflake для аутентификации в dbt Cloud:

    alter user jsmith set rsa_public_key='MIIBIjANBgkqh...';   
  2. Наконец, установите поля Private Key и Private Key Passphrase на странице Credentials, чтобы завершить настройку dbt Cloud для аутентификации с Snowflake с использованием ключевой пары.

    • Примечание: Разрешены незашифрованные закрытые ключи. Используйте пароль только при необходимости. Начиная с версии dbt 1.7, dbt ввел возможность указывать private_key непосредственно в виде строки вместо private_key_path. Эта строка private_key может быть в формате DER, закодированном в Base64, представляющем байты ключа, или в формате PEM в виде обычного текста. Обратитесь к документации Snowflake для получения дополнительной информации о том, как они генерируют ключ.
  3. Чтобы успешно заполнить поле Private Key, необходимо включить закомментированные строки. Если вы получаете ошибку Could not deserialize key data или JWT token, обратитесь к разделу Устранение неполадок для получения дополнительной информации.

Пример:

-----BEGIN ENCRYPTED PRIVATE KEY-----
< encrypted private key contents here - line 1 >
< encrypted private key contents here - line 2 >
< ... >
-----END ENCRYPTED PRIVATE KEY-----
Аутентификация Snowflake с помощью ключевой парыАутентификация Snowflake с помощью ключевой пары

Snowflake OAuth

Доступно в: Среды разработки, только корпоративные планы

Метод аутентификации OAuth позволяет dbt Cloud выполнять запросы на разработку от имени пользователя Snowflake без настройки пароля Snowflake в dbt Cloud.

Для получения дополнительной информации о настройке подключения Snowflake OAuth в dbt Cloud, пожалуйста, ознакомьтесь с документацией по настройке Snowflake OAuth.

Настройка подключения Snowflake OAuthНастройка подключения Snowflake OAuth

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

Чтобы узнать, как оптимизировать производительность с помощью специфичных для платформы данных конфигураций в dbt Cloud, обратитесь к конфигурации, специфичной для Snowflake.

URL-адрес пользовательского домена

Чтобы подключиться к Snowflake через пользовательский домен (vanity URL) вместо локатора учетной записи, используйте расширенные атрибуты для настройки параметра host с пользовательским доменом:

host: https://custom_domain_to_snowflake.com

Эта конфигурация может конфликтовать с Snowflake OAuth при использовании с PrivateLink. Если пользователи не могут достичь серверов аутентификации Snowflake с точки зрения сети, пожалуйста, свяжитесь с поддержкой dbt, чтобы найти обходной путь с этой архитектурой.

Устранение неполадок

Если вы получаете ошибку Could not deserialize key data или JWT token, обратитесь к следующим причинам и решениям:

 Ошибка: `Could not deserialize key data`
 Ошибка: `JWT token`
0