Гайд: подключаем Apache Superset к Snowflake
В кейсе Zero to Snowflake нужно было реализовать end-to end решение от поставки исходных данных их CRM Salesforce до создания визуализации на основе этих данных. Оригинальный пайплайн поставки данных выглядел так:
Salesforce data -> Fivetran replication -> Snowflake warehouse -> Tableau dashboards
Я решил заменить последний шаг пайплайна на Apache Superset. И вот здесь все пошло не так гладко. В этом небольшом гайде решил описать, с какими трудностями пришлось столкнуться и как я их решал.
Для того, чтобы подключить Superset нужно проделать следующие шаги
На стороне Snowflake
Зайти в раздел Admin/Security на боковой панели и создать сетевую политику (Network Policy)
Я на стал заморачиваться с прописыванием своего ip, для тестовых целей просто задал allow для всех адресов.
Не делайте так для своего продакшн окружения!
Затем создадим сервисную учетку для Superset. Идем в меню Admin/Users & Roles и добавляем юзера superset
Из дополнительных параметров я рекомендую задать сразу роль. Я выбрал SYSADMIN. Роль из данного кейса PC_FIVETRAN_ROLE дочерняя для SYSADMIN, поэтому доступ по идее должен наследоваться.
Я правда позже грантовал PC_FIVETRAN_ROLE для Суперсет отдельным образом,т .к. искал причины почему нет коннекта и пробовал разные варианты. Поэтому, возможно, назначение именно PC_FIVETRAN_ROLE будет достаточно.
Сразу после добавления следует обратить внимание на параметр Status, чтобы он был Enabled. У меня на второй день экспериментов вчера созданный юзер пропал, хотя точно помню, что создавал его. Если статус не Enabled, тогда для уверенности следует разлогиниться из учётки ACCOUNTADMIN, зайти под SUPERSET и потом опять вернуться в ACCOUNTADMIN.
После того следует сходить в меню Admin/Accounts и найти название своего аккаунта Snowflake. Внимание! Для подключение самого названия недостаточно. Нужно нажать на значок ссылки и скопировать URL, затем вставить его в блокнот.
Будет примерно так (данные фейковые): https://kjefvdc-df02672.snowflakecomputing.com. Где kjefvd - название вашей организации , а df02672 - имя вашего аккаунта. Нам дальше понадобится эта подстрока: kjefvdc-df0267
Вопросы по драйверу Snowflake для Apache Superset
Перед подключением вам стоит сразу озаботится, чтобы Superset был установлен с драйвером для Snowflake. Что делать, если драйвер исходно не был установлен, читаем здесь:https://superset.apache.org/docs/databases/installing-database-drivers и здесь: https://superset.apache.org/docs/databases/docker-add-drivers, но сейчас мы этой истории касаться не будем.
На стороне Superset
Итак, надеюсь с драйвером для Снежинки у вас все ок, тогда приступим к созданию соединения. Логинимся в админку Суперсета админом, роль должна быть именно admin т.к. права на подключения новых источников данных закреплены за ней.
Идем в меню Data/Databases и нажимаем кнопку +Database
В появившемся окне выбираем Snowflake
и затем жмем на надпись, что хотим создавать подключение через SQL Alchemy URI
В документации Superset указано, что строка подключения должна иметь вид:
snowflake://{user}:{password}@{account}.{region}/{database}?role={role}&warehouse={warehouse}
Если убрать необязательные параметры, то сгодится и короткий вариант:
snowflake://{user}:{password}@{account}.{region}/{database}
По факту параметр .{region} тоже можно пропустить. Таким образом строка подключения будет следующего вида:
snowflake://{user}:{password}@{account}/{database}
Первый нюанс - в админке Снежинки названия юзеров, ролей, аккаунтов, баз данных, схем, отображаются написанные капсом, и это может сбить с толку. Как указывать в строке подключения, маленькими буквами или капсом? Отвечаю - никакого капса! Все пишем только маленькими латинскими буквами.
Второй нюанс - это имя аккаунта. Просто имя аккаунта не прокатит. Его нужно использовать в связке с именем организации. Берем подстроку, что мы сохранили в блокноте, и вставляем в URI. В моем случае строка подключения выглядела так:
snowflake://superset:qwerty@kjefvdc-df02672/pc_fivetran_db/salesforce_z2s
После этого жмём на кнопку test connection. В случаем успеха появится всплывающее окошко Connection looks good!
На этом собственно все с подключением, можно приступать к BI-экспериментам
Комментарии
Отправить комментарий