Курс обучения по Apache Superset BI

Оглавление курса по Superset

Добро пожаловать на курс обучения Apache Superset!

Этот курс предназначен для тех, кто хочет научиться использовать Apache Superset для создания визуализаций данных и отчетов. В этом курсе мы рассмотрим основные функции и возможности Apache Superset, а также научимся создавать красивые и информативные дашборды.

Модуль 1: Знакомство с Apache Superset

  • Что такое Apache Superset и какие задачи он решает?
  • Как установить и настроить Apache Superset?
  • Описание параметров конфиг файлов и docker файлов
  • Обзор интерфейса и основных функций
  • Как успешно запустить проект по Apache Superset? Что нужно подготовить и предусмотреть?
  • Рекомендации по разработке витрин данных

Модуль 2: Описание общего workflow по работе с Apache Superset

  • Описание workflow
  • Описание ролевой модели доступов
  • Создание подключения
  • Создание датасета (физический и виртуальный датасет)
  • Создание чартов (диаграм с визуализацией данных)
  • Создание дашборда (верстка пространства, настройка фильтров)

Модуль 3: Продвинутые возможности по работе в Apache Superset

  • Использование Jinja для параметризации чартов
  • Использование оконных функций в Apache Superset
  • Продвинутые настройки фильтров

Модуль 4: Работа с разрешениями доступа

  • Как настроить разрешения доступа для пользователей и групп
  • Создание ролей и назначение прав доступа
  • Использование различных методов аутентификации

Модуль 5: Расширение функциональности Apache Superset

  • Использование кастомных плагинов для расширения возможностей визуализации Superset
  • Использование API для автоматизации процессов

Модуль 6: Администрирование Apache Superset

  • Как настроить бекап

Модуль 1: Знакомство с Apache Superset

Что такое Apache Superset и какие задачи он решает?

Apache Superset — это современная открытая платформа для визуализации данных и бизнес-аналитики, которая позволяет пользователям создавать интерактивные дашборды, отчеты и рассылки на email или в slack.

Apache Superset распространяется по лицензии Apache 2.0, что означает, что вы или ваша компания может абсолютно бесплатно использовать данный продукт, вносить в него улучшения (как с контрибьюцией кода в основной проект, так и без публикации своих собственных доработок). При этом неважно сколько пользователей системы в вашей организации.

Apache Superset обладает масштабируемой архитектурой. Если Вам требуется использовать систему для сотен или тысяч сотрудников — это вполне реализуемый сценарий, однако он потребует соответствующих настроек среды, где будет развернут Apache Superset (и желательно в Kubernetes для большей отказоустойчивости).

Быстродействие Apache Superset зависит от нескольких параметров:

  1. Достаточно ли ресурсов для самой системы Apache Superset (рекомендуемые минимальные параметры от 2 CPU и 8Gb RAM). Если у вас много пользователей, которые одновременно используют систему, то рекомендуется увеличить число workers и увеличить ресурсы для компонентов системы.
  2. Какой объем данных вы пытаетесь анализировать. Сотни тысяч или сотни миллионов строк.
  3. Какую базу данных вы используете для витрин данных. Как вы оптимизируете витрины данных и настройки самих таблиц на уровне БД.
  4. Как вы проектируете дашборды и сколько одновременных запросов улетает в БД с дашборда.
  5. Физический или виртуальный датасет вы используете.

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

Apache Superset также обладает мощными функциями по настройке безопасности. Система позволяет управлять доступом к данным и дашбордам, что позволяет контролировать их использование через мониторинг (можно создать дашборды по просмотру дашбордов и метрик отдельными пользователями). Это делает эту платформу идеальным инструментом для работы с конфиденциальными данными.

Очень упрощенная архитектура Apache Superset

Краткая схема веб-приложения Apache Superset:

Визуальный слой Apache Superset — это React приложение, написанное с применением Typescript. В бекенде Flask (Python). Метаданные хранятся в PostgreSQL (можно также развернуть MySQL или SQLite, но лучше использовать по умолчанию постгрю). Redis используется, если мы хотим кешировать часто используемые выборки и снизить нагрузку к базе данных, где у нас собраны витрины данных.

Если вы хотите погрузиться в структуру репозитория Apache Superset, то рекомендую почитать две статьи:

По этим статьям вы сможете примерно представить как устроен Apache Superset (в первом приближении).

Как установить и настроить Apache Superset?

Вариант 1 — Установка с нуля без применения Docker

Установка и настройка Apache Superset — это процесс, который может занять некоторое время, но если вы следуете инструкциям и руководствам, он может быть достаточно простым. В этом разделе мы расскажем о том, как установить и настроить Apache Superset на вашем компьютере или сервере.

Шаг 1: Установка зависимостей

Перед установкой Apache Superset вам необходимо убедиться, что у вас есть все необходимые зависимости. В частности, вам нужно установить Python 3 и pip (менеджер пакетов для Python). Также необходимо установить PostgreSQL и Redis.

Шаг 2: Установка Apache Superset

После установки зависимостей вы можете перейти к установке Apache Superset. Существует несколько способов установки Apache Superset, но наиболее простой способ — это использовать pip.

Чтобы установить Apache Superset с помощью pip, выполните следующую команду:

pip install apache-superset

Шаг 3: Настройка базы данных

После установки Apache Superset вам необходимо настроить базу данных. Вы можете выбрать любую базу данных, которую поддерживает Apache Superset (например, PostgreSQL или MySQL).

Чтобы настроить базу данных, отредактируйте файл superset_config.py и внесите соответствующие изменения. Например, если вы используете PostgreSQL, вы можете указать следующие параметры:

SQLALCHEMY_DATABASE_URI = 'postgresql+psycopg2://user:password@host:port/dbname'

Шаг 4: Создание базы данных

После настройки базы данных вы должны создать базу данных для Apache Superset. Чтобы это сделать, выполните следующие команды:

superset db upgrade
superset init

Шаг 5: Запуск Apache Superset

После создания базы данных вы можете запустить Apache Superset. Чтобы это сделать, выполните следующую команду:

superset run -p 8088 --with-threads --reload --debugger

Эта команда запустит Apache Superset на порту 8088.

Шаг 6: Настройка безопасности

Наконец, после запуска Apache Superset вы можете настроить безопасность. Вы можете настроить аутентификацию и авторизацию пользователей, а также управлять доступом к данным.

Чтобы настроить безопасность, отредактируйте файл superset_config.py и внесите соответствующие изменения.

В заключение, установка и настройка Apache Superset может быть достаточно простым процессом, если вы следуете инструкциям и руководствам. Это мощный инструмент для визуализации данных и бизнес-аналитики, который может помочь вам быстро и удобно анализировать данные и принимать важные решения.

Вариант 2 — Установка с помощью Docker Compose

Обзор интерфейса и основных функций Apache Superset

Интерфейс Apache Superset

Интерфейс Apache Superset имеет удобный и интуитивно понятный дизайн, который позволяет быстро и легко создавать дашборды.

  1. Панель навигации (меню суперсета) — здесь расположены основные разделы приложения:
    • Dashboards — полный список дашбордов с фильтрами по ним
    • Charts — список чартов (диаграмм с визуализацией данных)
    • Datasets — список физических или виртуальных датасетов
    • SQL:
      • SQL Lab — встроенная в сам суперсет среда написания SQL запросов к базам данных, на основе имеющихся подключений. Ваши аналитики могут использовать интерфейс для исследования данных и при необходимости эти запросы можно сохранить в виде виртуального датасета и построить быстро чарты и сверстать дашборд. Запросы можно сохранять и позже к ним возвращаться. Запросами можно делиться с командой.
      • Saved queries — Список ваших сохраненных запросов.
      • Query history — Все запросы, выполненные в редакторе SQL. Функция полезная больше для администраторов Superset и для специалистов ИБ.
    • Settings — настройки функционала Superset, который доступен в web среде.
    • Language — переключение языка.
  2. Рабочая область дашборда — здесь вы можете сверстать дашборд из имеющихся чартов в режиме редактирования дашборда (если у вас есть необходимые доступы). Либо работа с дашбордом, если вы пользователь суперсета без прав на создание объектов (вам будут доступны фильтры и данные в соответствии с настройками доступа к функционалу суперсета и к данным).
  3. Фильтры — левая панель на картинке, здесь можно создать фильтры, которые будут доступны для интерактивной работы с дашбордом.

Основные функции Apache Superset

Apache Superset предоставляет широкие возможности для создания дашбордов и отчетов. Некоторые из основных функций включают:

  1. Создание графиков и таблиц — Apache Superset предоставляет широкий выбор инструментов для создания графиков и таблиц, включая столбчатые, круговые, линейные, тепловые карты и другие.
  2. Фильтры — Apache Superset позволяет создавать фильтры для данных, которые позволяют быстро и удобно настраивать отображение данных на дашборде.
  3. Агрегирование данных — Apache Superset предоставляет возможность агрегировать данные по различным параметрам, что позволяет быстро и удобно анализировать большие объемы данных.
  4. Интерактивность — Apache Superset позволяет создавать интерактивные дашборды, которые позволяют пользователям взаимодействовать с данными и изменять их отображение в реальном времени.
  5. Разделение доступа — Apache Superset предоставляет возможность разделять доступ к данным между пользователями, что позволяет контролировать и управлять доступом к конфиденциальным данным.

Модуль 2: Создание визуализаций данных

Как подключить источник данных

Для подключения источника данных в Apache Superset необходимо выполнить следующие шаги:

  1. Открыть раздел «Источники данных» в панели навигации.
  2. Нажать кнопку «Добавить новый источник данных».
  3. Выбрать тип источника данных из списка доступных опций (например, MySQL, PostgreSQL, Oracle, Google Sheets и т.д.).
  4. Заполнить необходимые поля для подключения к источнику данных, такие как имя базы данных, хост, порт, логин и пароль.
  5. Нажать кнопку «Тест соединения», чтобы проверить правильность заполнения полей.
  6. Сохранить настройки источника данных.

После успешного подключения к источнику данных, вы сможете использовать его для создания дашбордов и отчетов в Apache Superset.

Создание простых графиков и диаграмм

Для создания простых графиков и диаграмм в Apache Superset необходимо выполнить следующие шаги:1. Открыть раздел «Просмотр» в панели навигации.2. Нажать кнопку «Создать дашборд».3. Выбрать тип визуализации из списка доступных опций (например, график, диаграмма, карта и т.д.).4. Выбрать источник данных, который вы хотите использовать для создания визуализации.5. Выбрать таблицу или представление данных, которые вы хотите использовать для создания визуализации.6. Выбрать поля, которые вы хотите использовать для создания визуализации.

7. Настроить параметры визуализации, такие как тип графика, цвета, метки и т.д.

8. Сохранить настройки визуализации и добавить ее на дашборд.

После создания визуализации вы сможете анализировать данные и получать полезные инсайты в Apache Superset.

Использование фильтров и параметров для динамической фильтрации данных

Чтобы создать фильтр, необходимо выполнить следующие шаги:

  1. Открыть раздел «Просмотр» в панели навигации.
  2. Выбрать дашборд, на котором вы хотите создать фильтр.
  3. Нажать кнопку «Добавить фильтр» на панели инструментов.
  4. Выбрать поле, которое вы хотите использовать для фильтрации данных.
  5. Выбрать тип фильтра, например, текстовое поле, выпадающий список или диапазон значений.
  6. Настроить параметры фильтра, такие как название, описание и значение по умолчанию.
  7. Сохранить настройки фильтра и добавить его на дашборд.

Jinja

Чтобы использовать фильтры и параметры для динамической фильтрации данных, необходимо связать их с визуализацией или запросом. Для этого можно использовать специальный язык Jinja, который позволяет вставлять переменные и выражения в SQL-запросы и настройки визуализации.

Механизм работы Jinja в Apache Superset

Jinja — это шаблонизатор Python, который используется в Apache Superset для динамической генерации SQL-запросов и настроек визуализации на основе фильтров и параметров.

Для использования Jinja в Superset необходимо:

1. Включить поддержку Jinja в настройках Superset.

2. Использовать специальные теги Jinja в SQL-запросах и настройках визуализации, чтобы указать переменные и выражения, которые будут заменены на значения фильтров и параметров во время выполнения запроса.

Например, для использования параметра «country» в SQL-запросе можно написать следующий код:

SELECT *
FROM my_table
WHERE country = '{{ country }}'

Здесь «{{ country }}» — это тег Jinja, который будет заменен на значение параметра «country» во время выполнения запроса.

Аналогично, для использования фильтра «date_range» в настройках визуализации можно написать следующий код:

{
  "type": "time_table",
  "time_range": "{{ date_range }}"
}

Здесь «{{ date_range }}» — это тег Jinja, который будет заменен на текущее значение фильтра «date_range» во время отображения визуализации.

Таким образом, использование Jinja позволяет создавать динамические запросы и визуализации, которые автоматически адаптируются к изменениям фильтров и параметров.

Создание сложных визуализаций с помощью SQL-запросов в Apache Superset

Apache Superset позволяет создавать сложные визуализации на основе SQL-запросов с использованием различных типов графиков, таблиц и диаграмм.Для создания визуализации с помощью SQL-запроса необходимо выполнить следующие шаги:1. Создать SQL-запрос, который будет извлекать данные для визуализации.2. Выбрать тип визуализации, который соответствует требованиям исследования.3. Настроить параметры визуализации, такие как цвета, размеры, подписи и т.д.4. Применить фильтры и параметры, чтобы адаптировать визуализацию к конкретным требованиям.Примером сложной визуализации может быть график, отображающий количество заказов по странам за определенный период времени. Для создания такой визуализации необходимо выполнить следующие шаги:

1. Создать SQL-запрос, который будет извлекать данные о количестве заказов по странам за определенный период времени.

SELECT country, COUNT(*) as orders_count
FROM orders
WHERE order_date BETWEEN '{{ date_range.start }}' AND '{{ date_range.end }}'
GROUP BY country

Здесь «{{ date_range }}» — это тег Jinja, который будет заменен на текущее значение фильтра «date_range» во время выполнения запроса.

2. Выбрать тип визуализации «Столбчатая диаграмма».

3. Настроить параметры визуализации, такие как цвета, размеры, подписи и т.д.

4. Применить фильтры и параметры, чтобы адаптировать визуализацию к конкретным требованиям, например, добавить фильтр по типу продукта или отобразить только топ-10 стран по количеству заказов.

Таким образом, с помощью SQL-запросов и визуализаций в Apache Superset можно проводить анализ данных и получать ценные инсайты для бизнеса.

Ivan Shamaev (Admin)
Работаю с Apache Superset с 2021 года. Веду этот блог, чтобы систематизировать свои знания и поделиться ими с другими специалистами. Подписывайтесь на мой телеграм канал @apache_superset_bi
0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x