Руководство по Apache Superset
- Для чего нужно исследование данных
- Архитектура Apache Superset
- Установка
- Необходимые условия
- Исходные данные
- Работа с Apache Superset
- За и против
- За
- Против
- Заключение
Для чего нужно исследование данных?
Во многих компаниях конечными потребителями данных являются аналитики и люди, непосредственно вовлеченные в бизнес процессы. Визуализация данных – мощный инструмент, позволяющий сотрудникам обнаружить определенные закономерности в предоставленных данных. При запросе данных конечные пользователи отдают предпочтение инструменту, помогающему визуализировать эти самые данные, создавать на их основе дашборды, а также делиться визуализациями с другими пользователями.
Если Вы задаетесь такими вопросами, как:
- Что является хорошей альтернативой с открытым исходным кодом таких дорогостоящих BI инструментов, как Looker?
- Как начать работать с Apache Superset?
Тогда эта статья – именно для Вас. Мы рассмотрим архитектуру Apache Superset, подключимся к хранилищу данных и узнаем, как создавать графики и диаграммы, а также дашборды.
Архитектура Apache Superset
Apache Superset включает в себя следующие компоненты:
- Веб-сервер;
- Метаданные базы данных;
- Кэш;
- Очередь сообщений для асинхронной обработки запросов;
- Бэкенд результатов.
Веб-сервер представляет собой приложение Flask Python, использующее SqlAlchemy ORM для подключения к любой базе данных. Мы можем настроить хранилища данных для подключения, кроме того, у нас есть возможность выбрать серверную часть результатов, в которой мы хотели бы хранить результаты длительных запросов.
Установка
Для развертывания будем использовать Docker-Compose.
Необходимые условия
git clone https://github.com/josephmachado/sde_superset_demo.git cd sde_superset_demo docker-compose up -d
Docker-контейнер будем использовать отсюда. В основном, данная инструкция запускает веб-сервер, SQLite DB для метаданных базы данных, мы также запустим Postgres для нашего хранилища. Поскольку мы не собираемся выполнять длинные запросы, мы можем пропустить часть асинхронного выполнения запросов.
Дайте контейнерам несколько минут для развертывания, а затем посетите
http://localhost:8088/, чтобы увидеть Ваш Apache Superset. username: admin password: superset
Исходные данные
В папке sde_superset_demo Вы найдете папку с некоторыми данными. Это данные о доходах населения, полученные в результате переписи . В нашем файле Docker-Compose Вы увидите, что мы поместили папку с данными в контейнер по этой линии ./data:/data.
Официальный контейнер Postgres включает в себя функцию установки, которая запускает любые запросы в папке контейнера /docker-entrypoint-initdb.d/ сразу после запуска контейнера. Это необходимо для создания схемы, таблицы и загрузки данных переписи из файла Adult.data.
Если Вы посмотрите на файл init.sql, Вы увидите схему и скрипт создания таблицы.
CREATE SCHEMA clickstream; DROP TABLE IF EXISTS clickstream.people; CREATE TABLE IF NOT EXISTS clickstream.people ( age INT, workclass VARCHAR(100), fnlwgt BIGINT, education VARCHAR(100), education_num INT, marital_status VARCHAR(100), occupation VARCHAR(100), relationship VARCHAR(100), race VARCHAR(100), sex VARCHAR(100), capital_gain INT, capital_loss INT, hours_per INT, native_country VARCHAR(100), earnings VARCHAR(50) ); COPY clickstream.people FROM '/data/adult.data' DELIMITER ',';
Работа с Apache Superset
Теперь мы можем перейти к работе с Apache Superset с целью создания дашбордов и изучения наших данных.
1. Подключение к хранилищу данных
Сначала нам нужно установить соединение с нашим хранилищем данных. Поскольку веб-сервер использует SQL Alchemy, а мы используем Postgres для нашего хранилища, мы можем сгенерировать строку подключения, используя библиотеку Psycopg, как показано ниже:
postgresql+psycopg2://sde:password@warehouse:5432/warehouse
Перейдите в Источники >> Базы данных (Sources -> Databases) и создайте новую базу данных с указанными выше учетными данными, проверьте соединение.
Не забудьте проверить параметры «Разрешить CREATE TABLE AS» (Allow CREATE TABLE AS), «Разрешить CREATE VIEW AS» (Allow CREATE VIEW AS) и «Разрешить DML» (Allow DML), прежде чем нажать кнопку «Сохранить».
2. Запросы в SQL Lab
Мы можем запросить данные в SQL Lab. Перейдите в Лаборатория SQL >> Редактор SQL (SQL Lab >> SQL Editor). Здесь Вы можете написать простой SQL-запрос и запустить его, как показано ниже.
Это стандартный SQL-клиент, в котором Вы можете писать запросы и исследовать данные. Нажав кнопку Исследовать (Explore), Вы перейдете на страницу диаграмм и графиков, где Вы сможете начать создавать визуализации данных.
3. Создание графиков и диаграмм
Диаграммы основаны на одной таблице. Чтобы создать диаграмму, нам сначала нужно определить эту самую таблицу.
Добавление таблицы
Перейдите в «Источники» >> «Таблицы» (Sources >> Tables), нажмите на знак +, чтобы добавить новую запись, и введите «clickstream» в качестве схемы и «people» в качестве имени таблицы.
Создание графика
Для создания графика идите в раздел «Графики» (Charts) и нажмите на знак + для того, чтобы добавить новый график.
В качестве первого графика давайте выберем большое число, отображающее общий прирост капитала. Сохраните его как total_cap_gain.
В качестве второго графика давайте создадим график с разделениями, который отображает общий прирост капитала в разбивке по роду занятий, а затем по образованию. Сохраните его как cap_gain_part_chart.
4. Создания дашборда
Дашборд может состоять из одного или нескольких графиков и может использоваться совместно с другими пользователями. Чтобы его создать, щелкните вкладку «Дашборды» (Dashboard) и нажмите знак +, чтобы добавить новую запись. Давайте назовем его cap gain dashboard и укажем cgdash в качестве слага. Позже мы увидим, что представляет собой этот слаг.
После сохранения дашборда нажмите на него. Теперь нажмите кнопку «Редактировать дашборд» (EDIT DASHBOARD). В редакторе дашборда перетащите 1 строку. Получите доступ к графикам, созданным с помощью Ваших диаграмм и фильтров. Поставьте их в один ряд, рядом друг с другом. Нажмите «Сохранить изменения» (SAVE CHANGES) и переключите Черновик (Draft) на Опубликовано (Published).
http://localhost:8088/superset/dashboard/cgdash/ - это ссылка, которую другой пользователь Superset может использовать для доступа к созданному Вами дашборду. Обратите внимание, что cgdash — это слаг, которое мы указали при создании дашборда.
Вы можете настраивать свои диаграммы и дашборды в соответствии с Вашими потребностями.
Разрушьте конструкцию, используя команду ниже.
docker-compose down -v
За и против
За
- Открытый источник;
- Большое количество готовых визуализаций;
- Используйте Apache Superset для встраивания дашбордов в приложения для работы с данными;
- Отличное сообщество (я смог получить супер быструю поддержку на выходных);
- Простая архитектура веб-сервера;
- Гранулированная матрица прав доступа.
- Rest API на основе спецификации OpenAPI.
Против
- Невозможно соединять графики и разделы исследования. Набор данных должен быть предварительно объединен или представлять собой представление.
- Пользователям необходимо знать SQL. Безусловно, дата-инженеры могут помочь с созданием представлений и т. д., но, чтобы быть полностью самостоятельным в использовании BI инструмента, необходимо знать SQL.
- Без хорошей команды разработчиков и дата-инженеров управление может быть затруднено. Пока Вы не получите управляемую версию от preset.
Заключение
Надеюсь, эта статья даст Вам хорошее представление о том, что такое Apache Superset, его плюсах и минусах, а также о том, и как Вы можете его использовать для создания визуализаций и дашбордов. Конечно же, Superset предлагает гораздо больше возможностей, например, оповещения по расписанию и создание пользовательских визуализаций.
Сегодня на рынке представлено огромное множество дорогих BI инструментов. Но я считаю, что если у Вашей компании есть необходимые инженерные ресурсы, использование инструмента с открытым исходным кодом поможет Вам существенно сэкономить деньги.