Apache Superset
BI-платформа поверх базы, которая у вас уже есть: SQL-редактор, датасеты, дашборды. Своих данных не хранит. Разбираем, почему Apache не советует ставить его так, как ставим мы, и что из этого следует на практике.
Вердикт
- Если данные уже лежат в PostgreSQL, ClickHouse, Greenplum или MySQL
- Раскладу «двое строят дашборды, тридцать смотрят»
- Когда данные нельзя выпускать за периметр
- Команде, где есть человек, пишущий SQL
- Если данных в SQL-базе еще нет - Superset их не соберет
- Если нужен русский интерфейс
- Если нужна конфигурация, которую апстрим поддерживает официально
- Как замена мониторингу или веб-аналитике
Витрина поверх чужой базы
Superset ничего не собирает и ничего не хранит. Он показывает то, что уже лежит в вашей базе.
Схема простая. Человек открывает дашборд, Superset переводит это в SQL-запрос к вашему хранилищу, получает строки и рисует график. В собственной базе он держит только определения графиков, пользователей и логи.
Отсюда главное следствие: данные никуда не копируются. Если требование «ничего не покидает периметр» у вас записано в политике, половина вопросов снимается сама.
Апстрим описывает продукт как «enterprise-ready business intelligence web application» и прямо предлагает им заменять платные BI-инструменты. Это не наша трактовка, это заявление проекта.
За Superset не стоит компания. Проект принадлежит Apache Software Foundation: код и товарный знак у фонда, коммерческий хостинг продает отдельная компания Preset, основанная автором продукта.
Практический смысл в том, что ядро нельзя закрыть. Перелицензировать проект фонда в BSL или SSPL некому - владельца, который мог бы это сделать, не существует.
Apache не рекомендует ставить его так
Об этом стоит знать до заказа сервера, а не после.
В документации по установке через Docker Compose стоит предупреждение, которое легко пролистать: «мы не поддерживаем и не рекомендуем использовать наши конструкции docker compose для продакшена».
Дальше еще прямее: для одного хоста апстрим советует поднимать minikube и ставить через Kubernetes. А в сентябре 2026 он депрекировал и helm-чарт - официальным путем стал Kubernetes Operator.
Разберем, что за этим стоит, потому что звучит это страшнее, чем есть.
Довод у апстрима один и честный: compose работает на одной машине и не дает отказоустойчивости. Если сервер выключится, выключится и Superset. Это правда и для любого другого продукта на одном сервере.
Все остальное на compose работает штатно. Метабаза в PostgreSQL, кэш в Redis, фоновый обработчик, планировщик - мы подняли полный комплект и прошли клиентский путь целиком.
Как это читать. «Не поддерживаем» означает «не придем чинить и не обещаем высокую доступность», а не «не заработает». Если вам нужна конфигурация, за которую отвечает апстрим, вам нужен Kubernetes - и это честный повод выбрать другой путь.
Пять контейнеров вместо одного
Superset тяжелее, чем выглядит на скриншотах, и вес надо понимать заранее.
Веб-приложение - это Python и Flask с собранным React-фронтендом. Рядом обязательно живут еще четыре контейнера, и выкинуть их нельзя без потери функций.
| Контейнер | Зачем | Памяти в простое |
|---|---|---|
| superset | веб-приложение и API | 311 МиБ |
| superset-worker | асинхронные запросы, отчеты | 428 МиБ |
| superset-worker-beat | планировщик задач | 238 МиБ |
| db (PostgreSQL 17) | метабаза: графики, права, логи | 178 МиБ |
| redis (Redis 7) | кэш результатов и очередь | 4 МиБ |
Шестой контейнер, superset-init, одноразовый: прогоняет миграции, заводит администратора и загружает демо-данные. О нем отдельный разговор ниже - он определяет, сколько вы ждете первого входа.
Метабаза в комплекте идет контейнером, и апстрим для продакшена это не рекомендует. Под серьезной нагрузкой ее выносят на отдельный управляемый PostgreSQL, но на старте контейнерной хватает.
Как ставится
Официальный путь начинается с клона репозитория: compose-файлы лежат внутри него.
Docker и клон репозитория
Ставим Docker Engine с compose-плагином - 81 секунда. Клонируем репозиторий на теге релиза: 24 секунды и 401 МБ рабочей копии.
Меняем все дефолты
В файле
docker/.envлежит ключ подписи сессий со значениемTEST_NON_DEV_SECRET, пароль базыsupersetи пароль администратораadmin. Все три меняются до первого запуска.Правим ссылку на образ
Compose апстрима тянет образ не с Docker Hub, а через шлюз телеметрии Scarf. У нас он дважды отвалился - подробности в разделе про грабли.
Закрываем порт и поднимаем TLS
Приложение слушает только на
127.0.0.1:8088, наружу смотрит reverse-proxy с сертификатом. Голый порт в интернет не выставляем.
# тег обязательно с суффиксом -dev: в нем лежит драйвер psycopg2,
# без которого приложение не увидит метабазу в контейнере
export TAG=6.1.0-dev
docker compose -f docker-compose-image-tag.yml up -d
Первый вход - через двенадцать минут
Все это время сайт отдает отказ, и выглядит это как «не работает». Мы разобрали, куда уходит время: миграции 36 секунд, администратор 10, роли 25, а загрузка демо-примеров - 10 минут 26 секунд.
Отсюда прямой вывод: отключите примеры переменной SUPERSET_LOAD_EXAMPLES=no, и первый старт займет полторы минуты вместо двенадцати. Дашбордов из коробки при этом не будет.
Еще одна особенность: контейнер инициализации запускается заново при каждом docker compose up -d и снова проходит все четыре шага. Во второй раз это сорок секунд, но знать об этом стоит.
Восемьдесят баз в документации и семь драйверов в образе
Самая дорогая неожиданность этого разбора. Проверяйте до заказа.
Документация обещает поддержку восьми десятков СУБД, и в интерфейсе действительно перечислено 78 типов баз - от ClickHouse и Greenplum до Snowflake и Oracle.
Но список типов и установленные драйверы - разные вещи. Мы проверили импортом прямо в контейнере: Snowflake в списке есть, драйвера нет. Oracle в списке есть, драйвера нет.
Что лежит в официальном образе 6.1.0: PostgreSQL (он же закрывает Greenplum, TimescaleDB и Yugabyte), MySQL и MariaDB, Trino, Presto и Hive, Apache Druid, DuckDB, BigQuery.
Драйвера ClickHouse в образе нет. Для российских команд это главное, потому что данные у многих лежат именно там.
Лечится одной строкой, и это штатный механизм апстрима, а не хак. В файл docker/requirements-local.txt дописывается нужный пакет, и при старте контейнера он ставится сам.
echo "clickhouse-connect>=0.13.0" > docker/requirements-local.txt
docker compose up -d --force-recreate superset superset-worker
Мы это проверили: драйвер встал и в веб-приложение, и в фоновый обработчик, собственный образ собирать не понадобилось. Минимальная версия взята из файла обновлений апстрима, в 6.1.0 ее подняли.
SQL-редактор и конструктор графиков
Два входа в продукт: для того, кто пишет SQL, и для того, кто не пишет.
SQL Lab - это полноценный веб-редактор с деревом схем, историей запросов и правами по ролям. Запрос с группировкой по таблице в 11 770 строк выполнился за 3,2 секунды.
Отдельно стоит отметить, как продукт сообщает об ошибке. На запрос с несуществующей колонкой он показал цепочку состояний и текст самой базы с номером строки, а не пустой экран.
Второй вход - датасеты. Аналитик один раз описывает таблицу, метрики и измерения, после чего человек без SQL собирает график мышью поверх готового описания. Апстрим называет это легким семантическим слоем.
Типов графиков несколько десятков: временные ряды, круговые, воронки, тепловые карты, диаграммы Санкея, деревья, сводные таблицы и геовизуализация на deck.gl.
Сколько просит на самом деле
Мы ожидали больше. Пять контейнеров оказались легче, чем звучат.
| Память, все контейнеры в простое | 1171 МиБ |
| Занято на машине целиком | 1739 МБ |
| Прирост при открытии трех дашбордов | +30 МиБ |
| Процессор в простое | 8% одного ядра |
| Диск после установки | 7,9 ГБ |
| Образы | 3,41 ГБ |
| Вход в интерфейс | 4,6 с |
| Открытие дашборда с 18 графиками | 3,4 с |
Рекомендация по тарифу - CPU2-RAM4-DISK50 за 500 руб/мес. Мы заходили с гипотезой, что понадобится вдвое больше, и замер ее не подтвердил.
Но у этой рекомендации есть граница, и она важнее самой цифры. Результат запроса Superset затягивает в память веб-приложения, поэтому тариф выбирается под размер ответа вашей базы, а не под сам продукт.
На четырех гигабайтах после базового потребления остается около 2,3 ГБ. Умеренной работе этого хватает. Если ваши запросы вытаскивают из ClickHouse миллионы строк, берите следующий тариф сразу.
Нашли лишнюю четверть ядра. Проверка здоровья фонового обработчика в compose апстрима запускает команду, которая импортирует все приложение целиком - 11 секунд процессорного времени каждые 30. Мы задали интервал 120 секунд, и расход упал с 24,7% ядра до 7,1%.
Против подписки на каждого смотрящего
Здесь Superset выигрывает не функциями, а моделью.
Платные BI продаются по людям. Вы платите за каждого, кто просто открывает дашборд раз в неделю. Своя установка эту переменную из расчета убирает совсем.
| Продукт | Модель | Порог входа |
|---|---|---|
| Apache Superset, своя установка | бесплатно, людей неограниченно | только стоимость сервера |
| Metabase, своя установка | бесплатно, людей неограниченно | только стоимость сервера |
| Preset Cloud (управляемый Superset) | за человека | 20 долларов в месяц |
| Microsoft Power BI Pro | за человека | 14 долларов в месяц |
| Tableau Standard | за человека, только годовой контракт | от 15 долларов в месяц |
| Metabase Cloud Starter | подписка + за человека | 100 долларов в месяц |
Посчитаем расклад «двое строят, тридцать смотрят». Тридцать два человека в Power BI Pro - это 448 долларов в месяц, в Tableau Standard - 480. Superset на своем сервере - 500 рублей, сколько бы людей ни смотрело.
Экономия эта стоит администрирования. Сервер, обновления, бэкап метабазы и слежение за уязвимостями ложатся на вас. Подписка покупает не софт, а отсутствие этой работы.
Цены сняты с официальных страниц вендоров в сентябре 2026. Ближайший бесплатный сосед - Metabase, и у нас есть его разбор: он легче и проще, Superset дает больше коннекторов, прав и типов графиков.
Продукт, который выдает людям SQL
Это не недостаток, а природа инструмента. Из нее следуют обязанности.
Superset по устройству дает человеку выполнять запросы к вашему хранилищу. Поэтому его уязвимости концентрируются в одном месте - в проверке того, что именно пользователю позволено спросить.
В версии 6.0.0 апстрим закрыл четыре такие уязвимости, включая обход режима «только чтение» в SQL-редакторе на PostgreSQL с возможностью менять данные. Раньше были обход построчных прав и чтение файла с сервера.
Правильный вывод отсюда не «продукт дырявый» - дыры ищут и закрывают, это признак живого проекта. Правильный вывод в том, что три вещи здесь обязательны, а не желательны.
- SQL-редактор не выдается широкой роли: это прямой доступ к базе;
- инстанс стоит за обратным прокси с аутентификацией, а не голым портом;
- обновления ставятся вовремя - апстрим ведет список уязвимостей по релизам.
Продавать Superset как «поставил и забыл» было бы неправдой. Это инструмент, который требует внимания к ролям.
Где может сломаться
Четыре грабли из живой установки, а не из документации.
Шлюз Scarf не отдает образ. Compose апстрима ссылается не на Docker Hub, а на промежуточный шлюз телеметрии. У нас скачивание оборвалось дважды, на разных слоях.
Лечится не повторами, а заменой ссылки: тот же образ напрямую с docker.io пришел с первой попытки за 61 секунду.
Тег без суффикса -dev не подключится к метабазе
В комплектной сборке с PostgreSQL в контейнере нужен тег вида 6.1.0-dev: именно в нем лежит драйвер psycopg2. С тегом 6.1.0 приложение базу не увидит.
Интерфейс только английский, и это не настройка
В образе лежат переводы на 22 языка, русский переведен на 89%. Но ни один из них не собран в рабочий формат - файлов перевода в образе нет вообще. Мы собрали русский вручную: получилась смесь, где меню русское, а содержимое страниц английское.
Геокарты ходят в интернет за подложкой
Графики на deck.gl рисуются поверх внешних картографических тайлов. В полностью изолированном контуре они останутся без карты - у фразы «все на своем сервере» здесь есть исключение.
Когда это НЕ ваш выбор
Четыре ситуации, в которых мы бы отговаривали.
Данных в SQL-базе еще нет
Superset ничего не собирает и не загружает. Если вы ждете, что он сам начнет копить события или метрики, это не тот продукт - сначала нужно хранилище.
В команде некому писать SQL
Конструктор графиков без кода есть, но датасеты и метрики кто-то должен описать. Без этого человека Superset превращается в дорогой способ показать таблицу.
Нужен русский интерфейс
Полноценного русского UI в официальном образе нет, и включением настройки он не появляется. Если это требование, выбор сузится до других инструментов.
Нужен мониторинг серверов или веб-аналитика
Это другой класс задач. За метриками инфраструктуры идут в Grafana с Prometheus, за посещаемостью сайта - в счетчики вроде Plausible или Umami.
Частые вопросы
Хватит ли четырех гигабайт памяти?
Да, с запасом: все пять контейнеров держат 1171 МиБ в простое. Но следите за размером результатов запросов - они попадают в память приложения.
Можно ли подключить ClickHouse?
Да, но драйвера в образе нет. Нужная строка дописывается в файл docker/requirements-local.txt, и пакет ставится при старте контейнера. Собственный образ собирать не надо.
Он копирует данные к себе?
Нет. Superset выполняет запрос в вашей базе и показывает результат. В его собственной базе лежат только определения графиков, пользователи и логи.
Почему первый запуск такой долгий?
Из двенадцати минут десять с половиной занимает загрузка демонстрационных данных. Отключите их переменной SUPERSET_LOAD_EXAMPLES=no - останется полторы минуты.
Есть ли рассылка дашбордов по расписанию?
В продукте есть, но по умолчанию выключена и требует браузера внутри контейнера обработчика, которого в официальном образе нет. В нашей сборке рассылок нет.
Правда ли, что Apache не поддерживает установку через Docker Compose?
Правда для продакшена, и формулировка в документации именно такая. Речь об отказоустойчивости, а не о работоспособности: продукт на compose работает полностью.
Чем отличается от Metabase?
Metabase легче и проще на старте, один контейнер против пяти. Superset дает больше источников, права тоньше и типов графиков заметно больше.
Что с обновлениями?
Меняется тег образа, контейнеры перезапускаются, схему база мигрирует сама. Перед обновлением снимите дамп метабазы - другого состояния у продукта нет.
Проверено на версии 6.1.0, 3 октября 2026. На новых версиях результаты могут отличаться.
Итог
Apache Superset решает понятную задачу: показать людям то, что уже лежит в вашей базе, и не копировать данные наружу. Пять контейнеров укладываются в 1171 МиБ, живут на CPU2-RAM4-DISK50 за 500 руб/мес, и стоимость не растет от числа смотрящих - в этом его главное отличие от Power BI и Tableau. Две вещи надо знать до заказа: драйвера вашей базы может не оказаться в образе, а первый старт занимает двенадцать минут. Обе решаются одной строкой конфигурации. И третья, которую стоит принять осознанно: апстрим не поддерживает такую установку для продакшена - он работает, но за отказоустойчивостью идут в Kubernetes.
Этот стек у нас запущен на тарифе CPU4-RAM8-DISK100, рекомендуем CPU2-RAM4-DISK50. Нашли неточность в разборе - напишите, поправим в течение дня.