Перейти к основному содержимому
(Версии dbt: v2.0 и новее)

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

Настройте адаптер Snowflake командой dbt init или вручную создайте profiles.yml с полями для выбранного способа аутентификации. Список функций Snowflake, поддерживаемых в режиме strict в dbt v2, приведён в разделе Поддержка функций Snowflake.

Адаптер Snowflake для dbt v2 поддерживает следующие способы аутентификации:

  • Password
  • Key pair
  • Single sign-on (SSO)
  • Password with MFA
  • Workload Identity Federation
примечание

Snowflake прекращает поддержку входа только по паролю. Разработчикам следует использовать MFA или SSO. Вход по паролю остаётся доступным для сервисных пользователей Snowflake типа LEGACY_SERVICE.

Разрешения в хранилище​

Пользователь или служебная учётная запись Snowflake, от имени которых подключается dbt v2, должны иметь возможность выполнять рабочие нагрузки dbt (запросы, операции с метаданными и стандартные материализации). Предоставьте привилегии через роль Snowflake, назначенную этому пользователю.

Необходимые объекты Snowflake​

Перед подключением должны существовать следующие объекты:

ОбъектНазначение
АккаунтИдентификатор вашего аккаунта Snowflake
ПользовательСлужебная учётная запись или пользователь для dbt v2
РольРоль с необходимыми привилегиями, назначенная пользователю
Виртуальный складВиртуальный склад для выполнения вычислений
База данныхЦелевая база данных или базы данных для моделей dbt
СхемаЦелевая схема или схемы в базе данных

Основные операции​

Для основных операций dbt необходимы следующие разрешения:

РазрешениеОбъектНазначение
USAGEВиртуальный складВыполнение запросов
USAGEБаза данныхДоступ к базе данных
USAGEСхемаДоступ к схемам
SELECTТаблицы или представленияЧтение существующих данных и источников
CREATE TABLEСхемаСоздание моделей, материализованных в виде таблиц
CREATE VIEWСхемаСоздание моделей, материализованных в виде представлений
INSERTТаблицыЗагрузка данных в таблицы
UPDATEТаблицыОбновление инкрементальных моделей
DELETEТаблицыИнкрементальные модели с удалением и вставкой данных
TRUNCATEТаблицыПолное обновление инкрементальных моделей
DROPТаблицы или представленияЗамена существующих объектов

Операции с метаданными​

Для операций dbt с метаданными необходимы следующие разрешения:

РазрешениеОбъектНазначение
USAGEINFORMATION_SCHEMAЗапрос метаданных таблиц и столбцов
DESCRIBE TABLEТаблицыПолучение информации о структуре таблиц
SHOW OBJECTSСхемаПолучение списка отношений в схеме
SHOW USER FUNCTIONSСхемаОбнаружение UDF (если используются)

Управление схемами и базами данных​

Следующие разрешения для управления схемами и базами данных необходимы при определённых условиях:

РазрешениеОбъектКогда требуется
CREATE SCHEMAБаза данныхЕсли dbt должен автоматически создавать схемы
CREATE DATABASEАккаунтЕсли dbt должен автоматически создавать базы данных

Расширенные возможности​

Для расширенных возможностей доступны следующие необязательные разрешения:

РазрешениеОбъектВозможность
CREATE STAGEСхемаПромежуточное размещение файлов для seeds или снимков
CREATE FILE FORMATСхемаПользовательские форматы файлов
CREATE SEQUENCEСхемаПоследовательности
EXECUTE TASKСхемаЗадачи Snowflake

Примеры ролей и выдачи прав через SQL приведены в разделе Разрешения Snowflake.

Параметры подключения Snowflake​

Данные для настройки адаптера можно найти в меню аккаунта Snowflake:

  1. Нажмите на своё имя в боковой панели Snowflake.
  2. Наведите указатель на Account.
  3. Рядом с именем аккаунта нажмите View account details.
  4. Нажмите Config file и выберите нужные Warehouse и Database.
Пример файла конфигурации в SnowflakeПример файла конфигурации в Snowflake

Настройка dbt v2​

При запуске dbt init в CLI укажите следующие данные:

  • Account: номер аккаунта Snowflake.
  • User: имя пользователя Snowflake.
  • Database: база данных Snowflake, которую нужно подключить к проекту.
  • Warehouse: вычислительное хранилище для выполнения задач проекта.
  • Schema: схема для разработки, промежуточной среды или развёртывания.
  • Role (необязательно): роль, которую dbt принимает при подключении к хранилищу.

Файл profiles.yml также можно создать вручную. Формат полей показан в разделе Способы аутентификации. Если файл уже существует, можно сохранить текущие поля или перезаписать их.

Выберите способ аутентификации и заполните запрошенные поля.

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

При аутентификации по паролю Snowflake запрашивает пароль аккаунта. Организации всё реже используют этот способ, переходя на более безопасные варианты.

Если выбрать Password with MFA, откроется страница входа в Snowflake, где нужно использовать ключ доступа или ввести код из приложения-аутентификатора.

Пример настройки с паролем​

profiles.yml
default:
target: dev
outputs:
dev:
type: snowflake
threads: 16
account: ABC123
user: JANE.SMITH@YOURCOMPANY.COM
database: JAFFLE_SHOP
warehouse: TRANSFORM
schema: JANE_SMITH
password: THISISMYPASSWORD

Пример настройки с паролем и MFA​

profiles.yml
default:
target: dev
outputs:
dev:
type: snowflake
threads: 16
authenticator: username_password_mfa
account: ABC123
user: JANE.SMITH@YOURCOMPANY.COM
database: JAFFLE_SHOP
warehouse: TRANSFORM
schema: JANE_SMITH

Дополнительные сведения​

Настройки Snowflake описаны в справочнике адаптера.

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

0
Loading