Перейти к содержанию

Коннектор источника для Snowflake

Это руководство описывает, как настроить digna для подключения к Snowflake через ODBC со строкой подключения без DSN (DSN-less).

Сторона digna одинакова для всех технологий — где создаются подключения, как шифруются значения свойств, как проверяется подключение и что означают режимы профилирования. Она описана в разделе Обзор подключений к базам данных. Эта страница описывает то, что специфично для Snowflake.


1. Установка драйвера ODBC

Установите Snowflake ODBC Driver на машину, где работает бэкенд digna, следуя руководству по установке Snowflake.

Драйвер регистрируется как SnowflakeDSIIDriver. Узнайте точное зарегистрированное имя на вашем хосте, как описано в разделе Установка драйвера ODBC на хосте digna.


2. Свойства ODBC

Подключение к Snowflake выполняется с помощью programmatic access token (PAT) — это способ аутентификации, на котором проверена digna, и именно его Snowflake требует для учётных записей, где вход только по паролю заблокирован.

Пример, а не спецификация

Набор ниже — одна комбинация, которая заведомо работает. Свойства принадлежат драйверу Snowflake ODBC, поэтому их имена, значения по умолчанию и допустимые значения различаются между версиями драйвера и платформами, а то, какие варианты аутентификации разрешены для вашей учётной записи, определяется её политикой безопасности. Используйте этот набор как отправную точку и сверяйтесь с документацией установленной версии драйвера.

Ключ Пример значения Примечания
Driver {SnowflakeDSIIDriver} Должно совпадать с именем драйвера, зарегистрированным на хосте digna
Server <account>.snowflakecomputing.com Идентификатор учётной записи плюс суффикс, например rx42698.switzerland-north.azure.snowflakecomputing.com
UID digna Пользователь Snowflake, которому принадлежит токен
Database TEST База данных, содержащая исходные схемы. Это единственная база данных, которую может профилировать это подключение
Schema PUBLIC Схема сессии по умолчанию
authenticator PROGRAMMATIC_ACCESS_TOKEN Включает аутентификацию по токену
token <programmatic access token> Отметьте Encrypted

Итоговая строка подключения выглядит так:

Driver={SnowflakeDSIIDriver};Server=<account>.snowflakecomputing.com;UID=digna;Database=TEST;Schema=PUBLIC;authenticator=PROGRAMMATIC_ACCESS_TOKEN;token=<programmatic access token>

Хранилище (warehouse) и роль

Для выполнения запросов нужно хранилище (warehouse). Если у пользователя digna есть хранилище и роль по умолчанию, сессия использует их, и настраивать ничего не нужно. В противном случае добавьте:

Ключ Пример значения Примечания
Warehouse DIGNA_WH Хранилище, в котором выполняются запросы профилирования
Role DIGNA_READER Роль, права которой использует сессия

Выделите digna собственное хранилище

Отдельное небольшое хранилище с автоматической приостановкой делает затраты на профилирование прозрачными и не даёт digna конкурировать за вычислительные ресурсы с интерактивными пользователями.

Аутентификация по паролю

Если учётная запись это ещё допускает, вместо токена можно использовать пароль — удалите authenticator и token и добавьте:

Ключ Пример значения Примечания
PWD <password> Отметьте Encrypted

3. Настройка digna

На экране Add DB Connection укажите следующее:

Name:               Name of the connection. This is used for referencing the connection in other screens.
Technology:         Snowflake
Profiling Mode:     Standard, Permanent or Session
Work Schema:        Schema for the work tables of "Permanent" profiling, e.g. "PUBLIC"

4. Особенности Snowflake

  • Срок действия токенов истекает. Programmatic access token выдаётся с ограниченным сроком действия, и профилирование прекращается в день его истечения. Запишите дату окончания срока при создании токена и введите новый токен в свойство token — зашифрованные значения можно заменить, но нельзя прочитать обратно.
  • Одно подключение видит одну базу данных. digna предлагает схемы базы данных, указанной в Database, потому что Snowflake сообщает в качестве каталога только текущую базу данных. Для исходных таблиц в другой базе данных нужно отдельное подключение.
  • Идентификаторы записываются в верхнем регистре, если только они не были созданы в кавычках. digna использует имена в том виде, в каком их сообщает Snowflake.
  • Режимы профилирования. Permanent создаёт рабочие таблицы в Work Schema, поэтому роли нужно право CREATE TABLE в ней. Session использует CREATE TEMPORARY TABLE и не затрагивает Work Schema. Для Standard нужен только доступ на чтение — и никаких прав на запись.

5. Проверка драйвера (необязательно)

Для подключения без DSN настраивать источник данных ODBC не требуется, но собственный диалог драйвера — удобный способ убедиться, что драйвер, URL учётной записи и ваши учётные данные работают, прежде чем вводить их в digna.

Шаг 1

Шаг 1

Примечания:

  • Значение для Server состоит из идентификатора вашей учётной записи Snowflake, за которым следует .snowflakecomputing.com.
  • Введённые здесь Database, Schema и Warehouse соответствуют свойствам Database, Schema и Warehouse из раздела 2.

Шаг 2 – проверка подключения

Нажмите кнопку TEST. Успешное подключение должно выглядеть так:

Шаг 2