Команда инженеров · свой ЦОД в РФ · своё железо · своя панель · CloudStack + Linstor · MCP · база знаний по self-hosted
Обновлено 11 октября 2026 г.
Аналитика

Apache Superset

Система бизнес-аналитики (BI), которая работает на своем сервере: дашборды из вашей SQL-базы вместо Power BI и Tableau, без платы за каждого, кто их смотрит. Развернули 6.1.0 на Fatmetal Cloud Server, замерили память и проверили подключение базы, график и дашборд.

Проверено на версии v6.1.0, 3 октября 2026~10 минут чтенияFatmetal Team
BI и дашбордыЛицензия: Apache-2.0Статус: запущен у нас, v6.1.0

Вердикт

Подходит
  • Команде в России, которая ищет замену Power BI после приостановки новых продаж Microsoft: дашборды из SQL-базы без лицензии на каждого читателя.
  • Аналитику с PostgreSQL, которому нужно сохранить показатели и дать коллегам общий дашборд вместо еженедельной рассылки таблиц.
Не подходит
  • Отделу, которому нужно сохранить привычные модели Power BI и отчеты Tableau без переделки.
  • Аналитику, который работает только с разрозненными файлами и не собирается подключать SQL-базу.
Для старта: CPU2-RAM4-DISK50Сложность: mediumС демоданными: 13 минутГлавный риск: нужного драйвера может не быть в образе
Задача

BI и дашборды вместо Power BI и Tableau

Аналитик сохраняет графики, а коллеги открывают их в общем дашборде.

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

Microsoft приостановила новые продажи в России. Superset дает команде свою BI: дашборды из вашей базы без зарубежной подписки.

В SQL Lab можно выбрать базу, посмотреть схему и выполнить запрос. Сохраненный датасет задает, какие столбцы и показатели доступны при построении визуализации.

Несколько графиков объединяются в отчет: например, общий показатель, динамика по годам и разбивка по странам. Читатель открывает страницу, вместо того чтобы собирать отдельные выгрузки.

Apache Superset 6.1.0
Дашборд World Bank с показателем населения, картой и графиками
World Bank’s Data: готовый пример из Superset 6.1.0 на CPU4-RAM8-DISK100. Это демонстрационные данные, а не отчет подключенной компании.
Выбор

Когда это НЕ ваш выбор

Сначала проверьте, совпадает ли Superset с вашим способом работать с данными.

Аналитика нужна человеку без SQL-базы

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

Нужны русские экраны и готовые рассылки

В образе 6.1.0 нет скомпилированных переводов: переключение языка дает смесь русских меню и английских страниц. Alerts & Reports выключены, а браузера для снимков отчетов в worker нет.

Для закрытой сети есть еще одна особенность: подложки геокарт загружаются из интернета. Обычные SQL-таблицы и графики не требуют картографических тайлов, но географический отчет надо оценивать отдельно.

Нужны прежние отчеты Power BI или Tableau без переделки

Перенос моделей и отчетов - отдельная работа. В Superset нужно заново настроить источники и показатели для своих SQL-дашбордов.

Apache Superset 6.1.0
Географические графики deck.gl поверх картографических тайлов
deck.gl Demo: точки, сетки и гексагоны на карте. Подложки этого примера загружаются из интернета.
Архитектура

Как начать с одного сервера без Kubernetes

Приложение, фоновые задачи, метабаза и кэш работают отдельно; Caddy дает HTTPS.

Apache рекомендует Kubernetes и не поддерживает Docker Compose для промышленной эксплуатации. При этом на одном сервере пять контейнеров Superset заняли в простое 1,2 ГБ памяти. Такой запуск позволяет начать с внутренних отчетов без кластера, но при отказе сервера отчеты будут недоступны.

КомпонентЧто он делает
Superset 6.1.0-devПринимает вход в браузере, выполняет SQL и строит визуализации.
Celery worker и beatВыполняют фоновые задачи и запускают их по расписанию.
PostgreSQL 17Хранит пользователей, настройки подключений, датасеты и дашборды.
Redis 7Передает задания и хранит кэш результатов.
Caddy 2Выдает HTTPS и передает запросы приложению на локальный порт.

PostgreSQL в этом составе - служебная база Superset. Ваша таблица продаж остается в подключенном источнике; график обращается к ней через сохраненное подключение.

Контейнер superset_init работает отдельно: применяет изменения схемы, создает администратора и роли, затем завершается. Его состояние Exited (0) после первого запуска нормально.

Используем образ с суффиксом -dev, потому что в нем есть необходимые для этого способа запуска зависимости PostgreSQL. Имя образа здесь не означает, что нужно включать отладку приложения.

Конфигурация и секреты лежат в каталоге /opt/superset. Данные PostgreSQL и рабочие файлы Superset сохраняются в томах Docker и переживают пересоздание контейнеров.

Apache Superset 6.1.0
Список дашбордов Superset с владельцами и статусами
Список дашбордов: демонстрационные отчеты, их владельцы и статус. Рабочие отчеты появятся здесь после сохранения.
Ресурсы

Какой сервер взять

Для начала выбирайте 4 ГБ памяти, для больших результатов SQL - 8 ГБ.

ТарифКогда выбиратьЦена в месяц
CPU2-RAM4-DISK50Подключить свою базу и начать работу с дашбордами.500 ₽
CPU4-RAM8-DISK100Оставить больше памяти под объемные результаты запросов.1100 ₽

Замеры сделаны на CPU4-RAM8-DISK100 с Ubuntu 24.04.4. После запуска всего состава машина занимала 1,7 ГБ памяти, поэтому сам стек не требует восьми гигабайт для старта.

Память нужна и результатам SQL: Superset обрабатывает их внутри приложения. Сначала агрегируйте данные в запросе и ограничивайте выдачу, затем выбирайте сервер под объем, который действительно возвращает база.

На диске вместе с системой было занято 7,9 ГБ. Не нужно переносить весь SQL-склад на этот сервер только ради BI: источник можно подключить отдельно.

Для установки нужны доступ по SSH, чистая Ubuntu 24.04, свой домен с A-записью на IP сервера и доступные снаружи порты 80 и 443.

В маркетплейсе Fatmetal

Не хотите ставить руками?

Этот стек есть в маркетплейсе Fatmetal - можно не повторять установку из этого разбора вручную. Заказываете сервер, за пару минут получаете рабочий домен, валидный TLS и файл с доступами.

Рекомендуемая конфигурация:
2 vCPU · 4 ГБ RAM · 50 ГБ NVMe от 450 ₽/мес

В маркетплейс →
Установка

Развертывание на Fatmetal Cloud Server

Команды запускают официальный состав на чистой Ubuntu 24.04 и закрывают его HTTPS.

  1. Подготовьте сеть и утилиты

    Выполняйте команды от root: войдите по SSH и используйте sudo -i. Проверка MTU предотвращает зависание HTTPS, если путь пропускает пакеты меньшего размера, чем интерфейс.

    IFACE=$(ip route show default | awk '{print $5; exit}')
    MTU=$(cat /sys/class/net/"$IFACE"/mtu); ping -4 -c 2 -W 2 -M do -s 1472 dns.google >/dev/null 2>&1 || MTU=1492
    ip link set dev "$IFACE" mtu "$MTU"
    printf 'network:\n  version: 2\n  ethernets:\n    %s:\n      mtu: %s\n' "$IFACE" "$MTU" > /etc/netplan/99-superset-mtu.yaml
    chmod 600 /etc/netplan/99-superset-mtu.yaml
    apt-get update && apt-get install -y ca-certificates curl git gnupg openssl
  2. Установите Docker и Compose

    Официальный репозиторий дает Docker и плагин Compose; последний читает файлы запуска, которые будем использовать дальше.

    install -m 0755 -d /etc/apt/keyrings
    curl -4 -fsSL https://download.docker.com/linux/ubuntu/gpg | gpg --yes --dearmor -o /etc/apt/keyrings/docker.gpg
    chmod a+r /etc/apt/keyrings/docker.gpg
    printf 'deb [arch=amd64 signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu noble stable\n' > /etc/apt/sources.list.d/docker.list
    apt-get update && apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
    printf '{"mtu":%s}\n' "$MTU" > /etc/docker/daemon.json; systemctl restart docker
  3. Закрепите Superset 6.1.0

    Берем Compose из того же выпуска, что и образ. Прямой адрес Docker Hub обходит отказавший на стенде шлюз Scarf; порт приложения оставляем только на localhost.

    git clone --depth 1 --branch 6.1.0 https://github.com/apache/superset.git /opt/superset
    cd /opt/superset
    cp docker-compose-image-tag.yml compose.yml
    sed -i 's|apachesuperset.docker.scarf.sh/apache/superset:${TAG:-latest-dev}|docker.io/apache/superset:6.1.0-dev|; s|8088:8088|127.0.0.1:8088:8088|' compose.yml
  4. Замените пароли и выключите примеры

    Эти секреты создаются один раз на чистой установке. DATABASE_PASSWORD и POSTGRES_PASSWORD должны совпадать; демоданные отключаем, чтобы сначала запустить свой рабочий состав.

    umask 077; DB_PASSWORD=$(openssl rand -hex 24)
    cat > docker/.env-local <<EOF
    DEV_MODE=false
    FLASK_DEBUG=false
    SUPERSET_SECRET_KEY=$(openssl rand -hex 48)
    DATABASE_PASSWORD=$DB_PASSWORD
    POSTGRES_PASSWORD=$DB_PASSWORD
    EXAMPLES_PASSWORD=$(openssl rand -hex 24)
    ADMIN_PASSWORD=$(openssl rand -hex 24)
    SUPERSET_LOAD_EXAMPLES=no
    EOF
    cat > docker/pythonpath_dev/superset_config_docker.py <<'EOF'
    ENABLE_PROXY_FIX = True
    SESSION_COOKIE_SECURE = True
    SESSION_COOKIE_HTTPONLY = True
    SESSION_COOKIE_SAMESITE = "Lax"
    FEATURE_FLAGS = {"ALERT_REPORTS": False}
    EOF
    chmod 644 docker/pythonpath_dev/superset_config_docker.py
  5. Добавьте HTTPS и настройте проверку worker

    Замените ваш-домен своим именем. Caddy получит сертификат автоматически, а проверка worker раз в две минуты снизит лишнюю загрузку процессора.

    cat > compose.override.yml <<'EOF'
    services:
      superset-worker:
        healthcheck: {interval: 120s, timeout: 30s, start_period: 60s}
      caddy:
        image: caddy:2
        restart: unless-stopped
        network_mode: host
        volumes: ["./Caddyfile:/etc/caddy/Caddyfile:ro", "caddy_data:/data", "caddy_config:/config"]
    volumes:
      caddy_data:
      caddy_config:
    EOF
    printf 'ваш-домен {\n  reverse_proxy 127.0.0.1:8088\n}\n' > Caddyfile
  6. Поднимите стек и войдите

    Дождитесь завершения инициализации и состояния healthy у приложения. Логин admin, пароль берет официальный init из .env-local; последняя команда покажет его для входа.

    docker compose pull
    docker compose up -d --wait --wait-timeout 900
    docker compose ps -a
    curl -fsS https://ваш-домен/health
    grep '^ADMIN_PASSWORD=' docker/.env-local

Откройте https://ваш-домен/login/ и войдите. Файл docker/.env-local содержит секреты: храните его вместе с резервной копией, а не в публичном репозитории.

Первые действия

Подключите базу и сохраните результат

Начните с PostgreSQL: его драйвер уже есть в выбранном образе.

Откройте Settings → Database Connections → + Database и выберите PostgreSQL. Нажмите Connect this database with a SQLAlchemy URI string instead, чтобы задать подключение одной строкой.

Apache Superset 6.1.0
Первый шаг подключения базы с выбором PostgreSQL
Первый шаг подключения: выберите PostgreSQL, затем перейдите к форме с SQLAlchemy URI.

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

В поле Display Name задайте имя «Отчеты PostgreSQL», в SQLAlchemy URI вставьте строку по образцу ниже со своими доступами. Нажмите Test connection, дождитесь Connection looks good! и нажмите Connect.

postgresql+psycopg2://bi_reader:пароль@сервер-базы:5432/имя-базы

Откройте SQL → SQL Lab, при первом входе нажмите Add a new tab, выберите подключение и выполните этот запрос. Он создает данные прямо в SQL: таблицу для первой проверки создавать не потребуется.

SELECT region, SUM(amount) AS total
FROM (VALUES ('north', 10), ('north', 20), ('south', 7)) AS sales(region, amount)
GROUP BY region ORDER BY region;

Результат должен содержать north = 30 и south = 7. Нажмите Create chart / Explore, выберите Table и оставьте Raw records с колонками region и total.

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

Чтобы собрать дашборд, снова откройте Save у сохраненного графика. В Add to dashboard введите новое название, выберите его в списке и нажмите Save & go to dashboard.

Apache Superset 6.1.0
SQL Lab выполняет GROUP BY и показывает страны с населением
SQL Lab на стенде: группировка демонстрационной таблицы World Bank. В инструкции выше используется отдельный короткий запрос без демотаблиц.
Замеры

Сколько занимает работающий Superset

Основной расход при старте дают образы и загрузка демонстрационных данных.

Что измерилиРезультатЧто это значит
Образы всего состава3,4 ГБЗаложите время и место для первого скачивания.
Скачивание образов2 минуты 19 секундВремя установки начинается до запуска контейнеров.
Инициализация с примерами11 минут 36 секундИз них 10 минут 26 секунд ушли на демоданные.
World Bank: 18 графиков3,4 секундыОтчет открылся в браузере через публичный HTTPS.
SQL Lab: результат запроса3,2 секундыРедактор и выдача работали через тот же адрес.

Именно поэтому инструкция отключает SUPERSET_LOAD_EXAMPLES. Без загрузки примеров на миграции, администратора и роли ушла 71 секунда; затем приложению еще требуется время на старт.

При открытии трех демонстрационных дашбордов сумма памяти контейнеров выросла на 30 МБ. Добавлять восемь гигабайт только ради этих отчетов не понадобилось.

Разница между легкой страницей входа и открытым отчетом заметна: логин отдал HTTP-ответ за 60 мс, но графикам нужны запросы и отрисовка. Для пользователя важнее время готового дашборда.

Проверено на версии v6.1.0, 3 октября 2026. На новых версиях результаты могут отличаться.

Диагностика

Где может сломаться

Ошибку драйвера, медленный init и сетевой таймаут исправляют в разных местах.

net/http: timeout awaiting response headers

Причина. Шлюз apachesuperset.docker.scarf.sh дважды не отдал слой образа. Повтор обычного pull не помог.

Решение. Замените шлюз прямым Docker Hub и повторите скачивание. В инструкции эта замена уже выполнена.

sed -i 's|apachesuperset.docker.scarf.sh/apache/superset|docker.io/apache/superset|' compose.yml
docker compose pull
ModuleNotFoundError: No module named 'clickhouse_connect'

Причина. Драйвера ClickHouse нет в базовом образе. После добавления пакета импорт также не сработает, пока bootstrap не закончит устанавливать зависимости.

Решение. Для нужного ClickHouse установите проверенный на стенде clickhouse-connect через локальные зависимости и пересоздайте приложение и worker.

printf 'clickhouse-connect>=0.13.0\n' >> docker/requirements-local.txt
docker compose up -d --force-recreate superset superset-worker
docker exec superset_app /app/.venv/bin/python -c 'import clickhouse_connect; print(clickhouse_connect.__version__)'

Проверяйте импорт после завершения установки зависимостей в логе. Иначе проверка в еще запускающемся контейнере сама даст ModuleNotFoundError и скроет работающий механизм установки.

Add a new tab to create SQL Query

Причина. На первом входе SQL Lab еще не создал вкладку запроса, поэтому редактора и кнопки Run нет. Это не ошибка установки.

Решение. Нажмите Add a new tab, выберите базу и схему. После этого вставьте SQL и нажмите Run.

SQL → SQL Lab → Add a new tab
Эксплуатация

Как сохранить настройки и обновить контейнеры

Копируйте метабазу, рабочий том и конфигурацию вместе.

Дашборды и пользователи лежат в PostgreSQL. Копия только репозитория их не сохранит; копия только базы не сохранит ключ шифрования подключений из .env-local.

Перед изменениями перейдите в /opt/superset и остановите приложение и фоновые процессы, оставив базу работать. Получатся согласованные копии; файлы ниже храните за пределами этого сервера.

cd /opt/superset
umask 077; docker compose stop superset superset-worker superset-worker-beat
docker exec superset_db pg_dump -U superset -Fc superset > /root/superset.dump
tar -czf /root/superset-config.tgz compose.yml compose.override.yml Caddyfile docker
docker run --rm --user 0 --entrypoint tar -v superset_superset_home:/data:ro -v /root:/backup apache/superset:6.1.0-dev -czf /backup/superset-home.tgz -C /data .
docker compose up -d

Для восстановления на этом же составе остановите процессы, верните конфигурацию, базу и рабочий том. Команда pg_restore заменяет сохраненные объекты метабазы; текущие изменения будут потеряны.

cd /opt/superset
docker compose stop superset superset-worker superset-worker-beat
tar -xzf /root/superset-config.tgz -C /opt/superset
docker exec -i superset_db pg_restore -U superset -d superset --clean --if-exists < /root/superset.dump
docker run --rm --user 0 --entrypoint tar -v superset_superset_home:/data -v /root:/backup:ro apache/superset:6.1.0-dev -xzf /backup/superset-home.tgz -C /data
docker compose up -d

После замены тега образа обновление требует миграции метабазы и синхронизации ролей. Сделайте резервную копию, остановите процессы и выполните команды; архив нужен для возврата прежней базы вместе с прежним образом.

cd /opt/superset
docker compose stop superset superset-worker superset-worker-beat
docker compose pull
docker compose run --rm --no-deps superset superset db upgrade
docker compose run --rm --no-deps superset superset init
docker compose up -d
docker compose ps -a; docker compose logs --tail 30 superset

После запуска войдите, повторите сохраненный SQL-запрос и откройте дашборд. Это проверит подключение и метаданные, которые один статус контейнера не показывает.

Альтернативы

Superset, Power BI, Tableau и Preset

Для общих дашбордов сравните стоимость сервера с лицензиями на участников команды.

ПродуктОплатаПрактический выбор
Apache SupersetApache-2.0; сервер от 500 ₽/месСвоя SQL-база, свои настройки и самостоятельное обслуживание.
Preset CloudProfessional: $20 за пользователя/мес при годовой оплате; $25 помесячноУправляемый Superset вместо собственного сервера; Starter бесплатен до пяти пользователей.
Power BI Pro$14 за пользователя/мес при годовой оплатеПубликация отчетов и доступ к отчетам коллег по лицензии Pro.
Tableau StandardОт $15 за пользователя/мес при годовой оплатеЦена зависит от роли; для запуска требуется хотя бы одна лицензия Creator.

Цены опубликованы у Microsoft, Tableau и Preset. Десять лицензий Power BI Pro стоят $140 в месяц при годовой оплате. В Superset оплачивается сервер, а лицензий на читателей нет.

Сервер в России оплачивается в рублях. Salesforce, владелец Tableau, сообщила о выходе из отношений с российскими клиентами в марте 2022 года. Собственная BI позволяет обойтись без иностранной подписки.

Лицензия Apache-2.0 позволяет добавлять читателей без лицензионной платы. Обновления, резервные копии и подключения обслуживаете вы; эти работы тоже входят в стоимость своей BI.

Если вместо SQL-редактора ищете более простой вход в BI, сравните с Metabase. Здесь основная ценность Superset - путь от произвольного запроса до сохраненного датасета и разных визуализаций.

Apache Superset 6.1.0
Список физических датасетов Superset с базой и схемой
Датасеты связывают источник и графики: в списке видны имя, база и схема.
Ответы

FAQ

Короткие ответы для первой установки и подключения своей базы.

Нужно ли загружать примеры?

Нет. SUPERSET_LOAD_EXAMPLES=no оставляет рабочую установку без демонстрационных отчетов. Сначала подключите собственную базу через Settings → Database Connections.

Почему таблицы моей базы не появились после запуска?

Установка создает служебную метабазу. Подключение источника задается отдельно; затем в SQL Lab нужно выбрать именно его и нужную схему.

Можно ли подключить ClickHouse?

Добавьте clickhouse-connect в docker/requirements-local.txt по командам выше. В базовом образе 6.1.0-dev этого драйвера нет; одно название в списке Supported databases его не устанавливает.

Где взять пароль администратора?

В ручн