Apache Superset
Введение
Apache Superset — это платформа с открытым исходным кодом для анализа и визуализации данных. Она позволяет устанавливать соединения с различными источниками данных, создавать наборы данных (datasets), визуализации (графики) и интерактивные панели (дашборды) для представления аналитической информации.
Установка
Установка Apache Superset требует более сложной подготовки, чем просто скачивание архива. Поскольку Superset функционирует как веб-приложение, необходимо развернуть серверную часть. Существуют три основных подхода:
В данном случае рассматривается установка посредством Docker (на платформе Windows с использованием Docker Desktop и WSL).
Установка WSL и Docker
Для начала вам нужно установить WSL, поскольку Docker Desktop работает с Linux.
- Сочетание клавиш: Win+R
- Ввести cmd и нажать Enter
- wsl --install --web-download
- подождать установку, ввести название подсистемы, пароль
После успешной установки WSL, скачайте Docker Desktop, и убедитесь что во время загрузки установили опцию Use WSL 2 instead of Hyper-V.
Запускаем приложение Docker Desktop. Переходим в настройки:
В настройках включаем интеграцию с Ubuntu:
Загрузка контейнера (Вариант 1)
В данном примере предложена загрузка подготовленного образа Superset стабильной версии 2.1.0 с возможностью динамической настройки файла конфигурации.
git clone https://github.com/yupest/superset-course
Измените файл docker-compose.yml. Сгенерируйте секретный ключ через команду: openssl rand -base64 42.
Перейдите в папку superset-course
cd superset-course
docker-compose up
Такой способ позволит динамически конфигурировать Superset. Вы можете вносить изменения в superset_config.py без изменения основного config.py. И перезагружать контейнер с суперсетом.
Загрузка контейнера (Вариант 2)
После установки Docker Desktop, запустите его и залогиньтесь/зарегистрируйтесь.
Используйте образ Apache Superset с тегом 4a5d978-dev, загруженный из Docker Hub.
- После установки образа запустите его, нажав на кнопку RUN, указав наобходимые параметры: название, порт хоста для доступа к приложению и задать переменную окружения SUPERSET_SECRET_KEY. Сгенерируйте секретный ключ через команду:
openssl rand -base64 42.
Загрузка контейнера (Вариант 3)
git clone https://github.com/apache/superset.git
cd superset
Настройте файлы конфигурации или сам docker файл. После чего запустите приложение Docker и введите команду в wls.
sudo docker-compose -f docker-compose-non-dev.yml up
Подробнее о загрузке и настройке Apache Superset:
- https://www.youtube.com/watch?v=sS-P2OI0fgk
- https://youtu.be/idCgc1tR1d0?si=gOexKDmuUYLPgv9R
- https://youtu.be/V6sVVLrDZUE?si=kLBDCL24XA8f2rLO
- https://superset-bi.ru/apache-superset-building-custom-plugin-visualization-development-guide/
- https://www.rathishkumar.in/2023/07/how-to-install-configure-use-apache-superset-linux.html
- https://datafinder.ru/products/zapusk-dev-sredy-i-razrabotka-prosteyshego-plagina-v-apache-superset
Настройка
После запуска контейнера нужно создать администратора, инициализировать базу данных Superset и выполнить начальную настройку системы.
Перейдите во вкладку containers и откройте созданный контейнер.
containers и откройте созданный контейнер.ExecВ этой консоли напишите следующие команды, друг за другом
superset db upgrade
Во время выполнения команды ниже укажите username и password админа суперсет, например: admin admin.
superset fab create-admin
superset load_examples
superset init
Следует отметить, что существует множество дополнительных параметров конфигурации, флагов и разрешений, которые можно настраивать в конфигурационных файлах. Они преимущественно актуальны для разработчиков или пользователей, которые используют API, настраиваемую стилизацию (CSS), шаблонизаторы и др. Для большинства базовых задач, связанных с созданием дашбордов и визуализаций, достаточно минимальной конфигурации.
После выполнения всех команд открываем Приложение Apache Superset нажав сюда (https://localhost:8088)
Откроется окно в браузере, где нужно войти под учетной записью админа, которого вы создали.
Вы запустили Apache Superset c базой данных примеров, на которой можно протестировать функционал платформы.
Использование
Подключение к данным
- Superset позволяет подключаться к реляционным базам данных, таким как MySQL, PostgreSQL, SQLite, а также к альтернативным источникам, например Google Sheets.
- После настройки соединения необходимо создать dataset (набор данных). Dataset — это сущность, представляющая таблицу данных; в неё можно включать исходные поля, вычисляемые поля и метрики.
- Интерфейс SQL Lab предоставляется для работы через SQL-запросы — можно писать запросы, сохранять их, формировать новые наборы данных на их основе или использовать их для дальнейшей визуализации.
Чтобы сделать возможной загрузку CSV и Excel файлов потребуется подключить свою локальную пустую БД.
Вместо root может быть другой пользователь и другой пароль.mysql -u root -p
SELECT user FROM mysql.user;
Получить текущего пользователя:
SELECT USER();
Установить пароль пользователю:
SET PASSWORD FOR 'root'@'localhost' = 'MyNewPass';
ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';
CREATE DATABASE my_db;
По умолчанию БД имеет порт 3306.
Подключите свою БД в Apache Superset.
Для этого перейдите Setting -> Database Connection
Подключите свою БД через кнопку + Database. Выберите подключение:
Выберите URI-формат или заполните информацию в полях.
mysql://root:root@host.docker.internal:3306/my_db
Включите возможность загрузки CSV Allow file uploads to database.
Теперь загрузка файлов станет возможной.
Создание визуализаций (графиков)
- В большинстве визуализаций требуются следующие элементы:
- X-axis (ось X) — одна колонка данных
- Metrics — одна или несколько колонок, определяющих метрики (ось Y или аналогичные показатели)
- Dimensions — поля, определяющие разбивку данных (например, группировка)
- Filters — фильтры для ограничения или отбора данных
- В зависимости от типа визуализации могут быть разные требования. Например, круговая диаграмма может требовать меньше обязательных полей, а диаграмма типа «пузырь» (Bubble Chart) может требовать указания осей X и Y, размеров точек и прочего.
Кастомизация визуализаций
- Встроенный интерфейс позволяет настраивать визуальные аспекты: размер и стиль текста, подписи, маркеры, взаимодействие (например, возможность масштабирования по оси X), а также другие элементы представления.
- После внесения изменений необходимо запускать действие «обновить график» (
update chart), чтобы они вступили в силу.
Создание дашборда
- После создания визуализаций пользователь может собрать дашборд посредством перетаскивания объектов (графиков) и размещения их на панели.
- В настройках дашборда можно изменить его название, цветовую схему, права доступа пользователей, а также URL.
- Для детальной стилизации элементов дашборда часто требуется использование CSS. Это предоставляет гибкость, однако усложняет некоторые задачи, которые в других платформах реализованы более прямо (например, изменение цвета отдельных элементов, рамок и др.).
Дополнительные возможности
- Superset поддерживает экспорт и импорт объектов (дашбордов, визуализаций). Однако эффективность этих функций ограничена: во многих случаях они работают корректно лишь внутри одной инстанции Superset, поскольку экспорт/импорт строится на идентификаторах (ID), которые могут изменяться в зависимости от конфигурации и других зависимостей.
- Система ролей и прав доступа позволяет разграничивать возможности пользователей. Для администратора также доступна система логов, фиксирующая действия в системе.
- Superset - платформа с открытым исходным кодом, благодаря чему разработчики могут добавлять свои виды графиков и диаграмм.
Преимущества и недостатки
Преимущества
- Открытый исходный код и бесплатный доступ.
- Возможность работы локально / без постоянного подключения к интернету.
- Повышенный уровень безопасности при правильной настройке.
- Поддержка командной работы: ролей, прав, разграничения доступа.
Недостатки
- Установка и первоначальная настройка могут быть сложными для начинающих пользователей.
- Настройки кастомизации иногда непросты, особенно для нестандартных визуализаций или дизайнов.
- Некоторые функции требовательны к знаниям CSS или другим техническим аспектам, что может быть препятствием.
- Ограниченные возможности для распространения результатов (дашбордов) внешним пользователям вне системы — без дополнительных настроек.