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

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

примечание

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

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

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

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

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

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

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

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

Имя пользователя и пароль с MFA

Snowflake authentication

Начиная с ноября 2025 года Snowflake начнет поэтапно отключать однофакторную аутентификацию по паролю, и будет принудительно включена многофакторная аутентификация (MFA).

MFA будет обязательной для всей аутентификации типа Username / Password.

Чтобы продолжить использование аутентификации по ключевой паре, пользователям необходимо обновить все среды развертывания, которые в настоящее время используют Username / Password, до ноября 2025 года.

Для получения дополнительной информации см. публикацию в блоге Snowflake.

Доступность плана Snowflake MFA

MFA в Snowflake доступна для всех типов планов.

Доступно в: средах разработки

Метод аутентификации Username / Password — это самый простой способ аутентифицировать учетные данные разработки в dbt-проекте. Достаточно ввести имя пользователя Snowflake (а именно login_name) и соответствующий password этого пользователя Snowflake, чтобы аутентифицировать dbt для выполнения запросов к Snowflake от имени пользователя Snowflake.

Аутентификация Username / Password не поддерживается для учетных данных сред развертывания, так как требуется MFA. В средах развертывания вместо этого используйте аутентификацию по keypair.

Примечание: Поле Schema* в разделе Developer Credentials является обязательным.

Snowflake username/password authenticationSnowflake username/password authentication

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

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

MFA требуется Snowflake для всех входов с использованием Username / Password. Поддержка MFA в Snowflake реализована с помощью сервиса Duo Security.

  • В dbt задайте следующий extended attribute в среде разработки на странице General settings, в разделе Extended attributes:

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

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

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

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

Доступно в: Development environments, Deployment environments

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

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

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

    • Примечание: Незашифрованные приватные ключи допускаются. Используйте passphrase только при необходимости. dbt может указывать private_key напрямую как строку вместо private_key_path. Эта строка private_key может быть либо в формате DER, закодированном в Base64 (представляющем байты ключа), либо в виде обычного текстового PEM‑формата. Подробнее о том, как Snowflake генерирует ключи, см. в документации Snowflake.
    • Указание приватного ключа с помощью переменной окружения (например, {{ env_var('DBT_PRIVATE_KEY') }}) не поддерживается.
  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

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

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

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

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

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

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

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
Loading