В 2022 году, когда случилось то, что нельзя называть и иностранные компании стали покидать отечественный IT рынок, мы у себя в отделе пришли к выводу, что пора подумать над тем, как минимизировать вероятные риски и обезопасить свою аналитическую деятельность.
На тот момент нашим основным BI-инструментом была GDS - Google Data Studio (она же Looker) в связке с хранилищем на BigQuery. Скажу по-честному, офигенный инструмент - коннекторы есть, графиков куча, возможности для стилизации большие, формулы и расчетные метрики есть, даже кастомные графики через JS можно было установить. Связка с BigQuery обеспечивала быстрый отклик данных и очень быстрое обновление. Да, это не Power BI и не Tableau, но это немного другого уровня инструменты, которые как минимум стоят много денег. А GDS была бесплатной, платили мы только за занимаемые данные в BigQuery.
Но, как я уже сказал, в турбулентное время приходится предпринимать некоторые действия, мы решили, что займемся планомерным переходом на Open Source, т.к. никто не давал гарантий, что та же GDS продолжит работать с российским аккаунтом в гугле. На тот момент с оплатой хранилища в облаке уже начались проблемы.
Какие были варианты?
Сперва мы пошли смотреть Redash - но он оказался скорее SQL IDE с возможностью строить несколько графиков. Хороший инструмент, но для нас слабый функционал, его отмели сразу. Затем установили Metabase - уже лучше, классный интерфейс, функционал получше, но в итоге почитав интернет решили, что надо смотреть в сторону Apache Superset.
Плюсы и минусы Apache Superset? Перечислю то, что он умеет и не умеет:
- Есть большинство нужных чартов - простые таблицы, сводные таблицы, бар чарты, лайн чарты, временные ряды, пироги, показатели, боксплоты, хитмапы и всяческие вариации этих графиков
- SQL Lab - среда написания запросов к вашим таблицам в хранилище
- PostgreSQL синтаксис при формировании метрик, вычисляемых полей или фильтрации
- Работа как с физическими датасетами (готовыми таблицами в вашем хранилище), так и с виртуальными (сохраняете запрос в SQL Lab и это становится как View в базе данных)
- Собственно дашборды. По сути дашборд это набор чартов и что очень круто в сравнении с GDS, вы без проблем можете один и тот же чарт разместить на нескольких дашбордах. В GDS с этим были проблемы, т.к. чарты не являлись отдельной сущностью.
- Понятная структура: База данных - Датасет - Чарт - Дашборд
- т.к. Superset написан на python, то и установка коннекторов достаточно простая, нужно лишь доустановить нужную библиотеку из pip
- Ролевая модель - есть роли, есть права в ролях, эти роли назначаются пользователям. Эти же роли можно назначать и дашбордам - в итоге нет проблем с тем, чтобы одним показывать все, а другим только выборочные дашборды
- Кастомизируемая авторизация - логин/пароль, OAUTH или LDAP. В зависимости от политики внутренней безопасности вы можете настроить авторизацию под себя
- CSS стилизация дашбордов - она есть, но это скорее костыль, который хоть как-то помогает украсить внешний вид. В плане стилей GDS ушла далеко-далеко вперед. Считаю этот момент со стилизацией самым жирным минусом
- Внутри дашбордов 12 колоночная сетка, всё форматирование заточено под нее. Есть ряды, колонки, но нет свободного размещения чартов. Тоже минус, у GDS можно было оформить дашборд как душе угодно.
- Кастомные чарты - боль! Оно возможно, но это надо билдить образ докера из исходников, именно фронтовую часть. И уже брать умеющего в JS и React и лезть во внутренности, чтобы установить какие-то внешние разработки. Если устанавливать сам суперсет из pip или без билда фронтенда, то можете забыть про кастомизацию JS кода
- Open source - это и хорошо и плохо. Хорошо, т.к. бесплатно и работает, плохо, т.к. обновления могут выходить не быстро и могут влиять на работоспособность того, что было в прошлой версии. Ну и с усатновкой всего этого тоже могут быть проблемы. Например, наш DevOps (честь ему и хвала) полностью перепилил docker-compose конфиг, чтобы развернуть нормально Superset без всяких странных ошибок в логах
Если обобщить вышесказанное, то это отличный инструмент, который все чаще фигурирует в крупных компаниях на замену ушедшим Power BI и Tableau. Сбербанк и Ростелеком даже выпустили несколько методичек по тому, как пользоваться. Назвали его Sber Data Platform и RT Data Vision соответственно) Однако, для меня самый существенный его минус - стилизация и слабый функционал в плане кастомизации чартов. Это сейчас уже новая версия 2.1.0 и т.д. Но еще пол года назад в суперсете не было горизонтального бар чарта, а так же сборку таблиц нельзя было сделать драг-энд-дропом. То есть вам приходит ТЗ на таблицу из 20 полей, вы их натсраиваета, а потом вам говорят: "А добавь на 3 позицию еще одну колонку." А ты не можешь просто так это сделать, надо удалить 17 поле, запихнуть новое, а потом обратно добавить те самые 17.....бред, конечно, но приходилось с этим жить.
Вот тут очень полезный ТГ-канал, в котором народ делится опытом и задает вопросы по тому, как, что и почему. Если вы задумываетесь на переезд или хотите себе что-то с нуля, то Superset вполне может закрывать большинство задач.