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

  • Богатый набор визуализаций данных.
  • Простой в использовании интерфейс для исследования и визуализации данных.
  • Создавайте информационные панели и делитесь ими.

Прочитав о Superset, я захотел его попробовать, и поскольку Superset - это проект на основе python языка программирования, мы можем легко установить его с помощью pip, но я решил настроить его как контейнер на основе Docker. Вы можете следить за другим моим постом о том, как просто исследовать Superset с помощью Docker. Apache-Superset GitHub Repo содержит код для сборки и запуска Superset в качестве контейнера. Поскольку я хочу запускать Superset полностью распределенным образом и в коде возможно меньше изменений (мое мнение), я решил изменить код, чтобы он мог работать в нескольких разных режимах. Ниже приведен список конкретных изменений / улучшений, сделанных в коде.

  • Другая версия образа Superset может быть создана с использованием того же кода.
  • Конфигурацию суперсета можно легко редактировать и монтировать в контейнер без необходимости перестраивать образ.
  • Выполнение асинхронного запроса через исполнитель на базе Celery и управление им через Flower UI.

Исследование стало проще

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

  • Сначала вытащите образ docker-superset из docker-hub.
  • Получите docker-compose.yml и superset-config.py из code-base и следуйте той же структуре каталогов, что и в code-base.
  • Наконец, запустите образ Superset как контейнер в режиме local или prod с помощью docker-compose:

Запуск Superset в полностью распределенном режиме

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

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

  • Балансировщик нагрузки впереди для маршрутизации запроса от клиентов к одному контейнеру сервера.
  • Несколько контейнеров в server режиме для обслуживания пользовательского интерфейса надмножества. Запуск контейнера server с использованием docker run можно выполнить как
  • Несколько контейнеров в режиме worker для выполнения SQL-запросов в асинхронном режиме с помощью исполнителя Celery. Запуск контейнера worker с использованием docker run может быть выполнен как
  • Централизованный контейнер Redis или Redis-кластер для работы в качестве слоя кеширования и очередей задач Celery для рабочих.
  • Централизованная база данных метаданных Superset.

Я обнаружил, что настроить Superset как контейнер Docker довольно просто, и то же самое можно использовать для разных сред. Вы можете аналогичным образом изучить Superset.

Первоначально опубликовано на gist.github.com.