Перейти к основному содержимому

Архитектура

Эта страница помогает новым администраторам понять компоненты типичного развёртывания Liteset.

к сведению

Liteset — drop-in async-замена Apache Superset 6.0.0. Высокоуровневая диаграмма компонентов одинакова для обоих — меняется только процесс веб-сервера (Litestar/Uvicorn вместо Flask/Gunicorn).

Компоненты

Установка Liteset состоит из:

  1. Самого приложения Liteset (Litestar/ASGI на Uvicorn).
  2. БД метаданных (схема унаследована 1:1 от Apache Superset 6.0.0).
  3. Слоя кэширования (опционально, но требуется для ряда функций).
  4. Воркера и beat (Celery, опционально, но требуется для ряда функций).

Опциональные компоненты и связанные функции

Опциональные компоненты выше нужны для:

При установке через Kubernetes или Docker Compose все эти компоненты создаются автоматически.

При установке из PyPI создаётся только само приложение — слой кэширования, воркер и beat нужно настраивать вручную, если вы хотите включить функции выше. Конфигурация этих компонентов для PyPI-установки в этой документации пока не описана.

Ниже — подробнее о каждом компоненте.

Приложение Liteset

Это ядро. Жизненный цикл запроса:

  • Пользователь открывает график или дашборд.
  • Это инициирует SQL-запрос в аналитическую БД, в которой лежат данные.
  • Результат отображается в виде визуализации.
  • Приложение Liteset состоит из Python-бэкенда на Litestar (сервер), API-слоя и React-фронтенда (собранного webpack'ом) со статикой, необходимой для работы.

БД метаданных

Здесь хранятся описания графиков и дашбордов, информация о пользователях, логи и т. д. Liteset тестируется с PostgreSQL и MySQL в качестве БД метаданных (не путать с источником данных, которым могут быть Snowflake, Redshift и десятки других вариантов).

Некоторые способы установки (Quickstart, PyPI) по умолчанию используют SQLite-файл. В Docker Compose БД хранится в томе контейнера PostgreSQL. Оба варианта не рекомендуются для продакшена.

Для продакшена рекомендуется отдельная, корректно настроенная и управляемая БД. Какую бы базу вы ни выбрали, регулярно делайте резервные копии.

Слой кэширования

Кэш выполняет две функции:

  • Хранит результаты запросов к вашей аналитической БД, чтобы при повторной загрузке графика данные приходили из кэша — ускоряет приложение и снижает нагрузку на хранилище.
  • Работает брокером сообщений для воркеров, обеспечивая Alerts & Reports, async-запросы и кэш превью.

Чаще всего используют Redis, но Liteset поддерживает и другие варианты. См. документацию по кэшу.

Worker и Beat

Один или несколько воркеров, выполняющих задачи (async-запросы, снимки отчётов, отправка писем), и beat — планировщик, который сообщает воркерам, когда запускать задачи. Большинство инсталляций используют Celery.

Прочие компоненты

В Liteset можно встроить и другие компоненты — лучшее место узнать о дополнительных настройках это страница Конфигурация. Например, можно настроить балансировщик или reverse-proxy для HTTPS перед Liteset, либо указать Mapbox URL для поддержки геокарт.

Liteset не запустится без некоторых обязательных настроек, так что обязательно прочитайте страницу конфигурации.