Настройка dbt Snowflake Native App Preview
dbt Snowflake Native App включает следующие возможности непосредственно в интерфейсе Snowflake: Catalog, чат-бот Ask dbt, а также функции наблюдаемости оркестрации из dbt.
Для настройки этой интеграции необходимо сконфигурировать как dbt, так и Snowflake. Общая последовательность шагов выглядит следующим образом:
- Настроить конфигурацию Ask dbt.
- Настроить Snowflake.
- Настроить dbt.
- Приобрести и установить dbt Snowflake Native App.
- Настроить приложение.
- Проверить успешную установку приложения.
- Подключить новых пользователей к приложению.
Порядок шагов немного отличается, если вы приобрели публичный листинг Native App: в этом случае вы начинаете с покупки Native App, выполнения предварительных требований, а затем последовательно выполняете оставшиеся шаги.
Предварительные требования
Ниже приведены предварительные требования для dbt и Snowflake.
dbt
- У вас должен быть аккаунт dbt на тарифе уровня Enterprise, размещённый в регионе AWS или Azure. Если у вас его ещё нет, пожалуйста, свяжитесь с нами, чтобы начать.
- В настоящее время Semantic Layer недоступен для Azure ST-инстансов, и чат-бот Ask dbt не будет работать в dbt Snowflake Native App без него.
- У вашего аккаунта dbt должны быть права на создание service token. Подробнее см. в разделе Enterprise permissions.
- В dbt должен существовать проект с настроенным Semantic Layer и объявленными метриками.
- У вас должна быть настроена production deployment environment.
- В этом окружении должен быть как минимум один успешный запуск job, включающий шаг
docs generate.
- В этом окружении должен быть как минимум один успешный запуск job, включающий шаг
Snowflake
- У вас есть доступ ACCOUNTADMIN в Snowflake.
- Ваш аккаунт Snowflake должен иметь доступ к интеграции Native App/SPCS и конфигурациям NA/SPCS (публичный превью планируется в конце июня). Если вы не уверены, уточните у вашего аккаунт-менеджера Snowflake.
- Аккаунт Snowflake должен находиться в регионе AWS. Azure в настоящее время не поддерживается для интеграции Native App/SPCS.
- У вас должен быть доступ к Snowflake Cortex через ваши права в Snowflake, и Snowflake Cortex должен быть доступен в вашем регионе. Без этого Ask dbt работать не будет.
Настройка конфигурации для Ask dbt
Настройте dbt и Snowflake Cortex для работы чат-бота Ask dbt.
-
В dbt перейдите к конфигурациям Semantic Layer.
- В левой панели навигации нажмите на имя вашего аккаунта. Затем выберите Account settings.
- В левой боковой панели выберите Projects и выберите ваш dbt-проект из списка.
- В панели Project details нажмите ссылку Edit Semantic Layer Configuration (она находится ниже параметра GraphQL URL).
-
В панели Semantic Layer Configuration Details определите учётные данные Snowflake (которые будут использоваться для доступа к Snowflake Cortex), а также окружение, в котором выполняется Semantic Layer. Сохраните имя пользователя, роль и окружение во временном месте — они понадобятся позже.
-
В Snowflake убедитесь, что пользователю SL и пользователю деплоя предоставлены права на использование Snowflake Cortex. Подробнее см. в разделе Required Privileges документации Snowflake.
По умолчанию все пользователи должны иметь доступ к Snowflake Cortex. Если у вас он отключён, откройте SQL worksheet в Snowflake и выполните следующие команды:
create role cortex_user_role;
grant database role SNOWFLAKE.CORTEX_USER to role cortex_user_role;
grant role cortex_user_role to user SL_USER;
grant role cortex_user_role to user DEPLOYMENT_USER;Обязательно замените
SNOWFLAKE.CORTEX_USER,DEPLOYMENT_USERиSL_USERна соответствующие значения для вашей среды.
Настройка dbt
Соберите следующую информацию из dbt для настройки приложения.
-
В левой панели навигации нажмите на имя вашего аккаунта. Затем выберите Account settings и перейдите в API tokens > Service tokens. Создайте service token с доступом ко всем проектам, которые вы хотите использовать в dbt Snowflake Native App. Назначьте следующие наборы прав:
- Manage marketplace apps
- Job Admin
- Metadata Only
- Semantic Layer Only
Обязательно сохраните данные токена во временном месте — они понадобятся позже при настройке Native App.
Ниже приведён пример назначения наборов прав для всех проектов:
-
В левой боковой панели выберите Account и сохраните следующую информацию во временном месте для последующей настройки Native App:
- Account ID — числовая строка, представляющая ваш аккаунт dbt.
- Access URL — если у вас мультиарендный аккаунт в Северной Америке, используйте
cloud.getdbt.comв качестве access URL. Для всех остальных регионов см. раздел Access, Regions, & IP addresses и найдите нужный access URL в таблице.
Установка dbt Snowflake Native App
-
Перейдите к листингу dbt Snowflake Native App:
- Private listing (рекомендуется) — используйте ссылку из письма, отправленного вам.
- Public listing — перейдите в Snowflake Marketplace.
-
Нажмите Get на странице листинга, чтобы установить dbt Snowflake Native App. Процесс может занять несколько минут. После завершения установки вам будет отправлено письмо.
Появится сообщение с предложением изменить приложение и предоставить доступ к warehouse для установки. dbt Labs настоятельно рекомендует не изменять имя приложения, если в этом нет необходимости.
-
После успешной установки dbt Snowflake Native App нажмите Configure в модальном окне.
Настройка dbt Snowflake Native App
-
На странице Activate dbt нажмите Grant в Step 1: Grant Account Privileges.
-
После успешного предоставления прав нажмите Review в Step 2: Allow Connections.
Пройдите шаги Connect to dbt External Access Integration. Вам понадобится информация об аккаунте dbt, которую вы собрали ранее. Введите Account ID, Access URL и API service token в качестве Secret value, когда будет предложено.
-
На странице Activate dbt нажмите Activate, когда соединение с dbt External Access Integration будет успешно установлено. Запуск необходимых сервисов Snowflake и вычислительных ресурсов может занять несколько минут.
-
После завершения активации перейдите на вкладку Telemetry и включите отправку логов уровня
INFO. Отображение этой опции может занять некоторое время, так как Snowflake должен создать таблицу событий для совместного использования. -
После успешного включения опции нажмите Launch app, затем войдите в приложение, используя свои учётные данные Snowflake.
Если вместо страницы входа происходит перенаправление в Snowsight worksheet, это означает, что установка приложения ещё не завершена. Обычно эту проблему можно решить, обновив страницу.
Ниже приведён пример dbt Snowflake Native App после завершения настройки:
Проверка успешной установки приложения
Чтобы убедиться, что приложение установлено корректно, выберите любой из следующих пунктов в боковом меню:
- Explore — запустите Catalog и убедитесь, что у вас есть доступ к информации о вашем dbt-проекте.
- Jobs — просмотрите историю запусков dbt job’ов.
- Ask dbt — нажмите на любой из предложенных запросов, чтобы задать вопрос чат-боту. В зависимости от количества метрик, определённых в dbt-проекте, первая загрузка Ask dbt может занять несколько минут, так как dbt строит Retrieval Augmented Generation (RAG). Последующие запуски будут происходить быстрее.
Ниже приведён пример чат-бота Ask dbt с предложенными запросами в верхней части:
Подключение новых пользователей
-
В боковом меню Snowflake выберите Data Products > Apps. Выберите dbt из списка, чтобы открыть страницу конфигурации приложения. Затем нажмите Manage access (в правом верхнем углу), чтобы подключить новых пользователей к приложению. Назначьте роль APP_USER тем ролям, которым нужен доступ к приложению без возможности редактировать конфигурации. Назначьте APP_ADMIN ролям, которые должны иметь возможность редактировать или удалять конфигурации.
-
Новые пользователи могут получить доступ к приложению либо по URL Snowflake app, который был им предоставлен, либо нажав Launch app на странице конфигурации приложения.



