Apache Superset установка: Пошаговая инструкция для Linux, Docker и Windows | AdminWiki

Apache Superset установка: Полное руководство от настройки до запуска

17 декабря 2025 8 мин. чтения #apache superset #bi инструменты #devops #docker #python #визуализация данных #установка superset

Что такое Apache Superset и зачем он нужен?

Представь, что тебе нужно быстро и красиво визуализировать данные из разных источников: PostgreSQL, MySQL, ClickHouse, даже CSV-файлы. Apache Superset — это open-source BI-инструмент, который позволяет создавать интерактивные дашборды, строить сложные графики и делиться аналитикой с командой. Давай разберем, как его правильно установить.

Важно знать перед установкой: Superset написан на Python и использует Flask как веб-фреймворк. В качестве метаданных (пользователи, дашборды, источники данных) он использует реляционную БД, по умолчанию — SQLite, но для продакшена нужна PostgreSQL или MySQL.

Способы установки Apache Superset

Есть три основных пути, каждый со своими плюсами. Выбирай в зависимости от твоих задач:

Способ Сложность Идеально для Основные плюсы
Docker & Docker Compose Низкая Быстрый старт, разработка, тестирование Изоляция, все зависимости в контейнере
Установка через pip Средняя Продакшн на собственном сервере Полный контроль, интеграция в инфраструктуру
Из исходного кода (Git) Высокая Разработка, кастомизация Superset Возможность модификации кода

Метод 1: Установка Apache Superset через Docker Compose (рекомендуется для начала)

Это самый простой и надежный способ. Superset предоставляет официальный docker-compose.yml, который поднимает весь стек: сам Superset, PostgreSQL для метаданных, Redis для кеширования и Celery воркеров для асинхронных задач.

bash
# 1. Клонируем репозиторий с конфигурацией
git clone https://github.com/apache/superset.git
cd superset

# 2. Переходим в папку с Docker-конфигурацией
cd docker

# 3. Создаем файл .env (опционально, для кастомизации портов и т.д.)
# Можно просто использовать значения по умолчанию

# 4. Запускаем Superset!
docker-compose up -d

После запуска команды Docker начнет скачивать образы и создавать контейнеры. Это займет несколько минут. Superset будет доступен по адресу: http://localhost:8088.

Первоначальная настройка после запуска контейнеров: Нужно создать администратора и инициализировать базу метаданных. Выполни эти команды в том же каталоге docker/:
bash
# Создаем администратора
docker-compose exec superset superset fab create-admin \
  --username admin \
  --firstname Admin \
  --lastname User \
  --email admin@superset.com \
  --password admin

# Инициализируем базу метаданных
docker-compose exec superset superset db upgrade

# Загружаем примеры датасетов и дашбордов (опционально)
docker-compose exec superset superset load_examples

# Инициализируем роли по умолчанию
docker-compose exec superset superset init

Метод 2: Установка Apache Superset через pip на Linux/Ubuntu

Это классический способ для развертывания на собственном сервере. Давай пройдем по шагам для Ubuntu 22.04.

bash
# 1. Обновляем систему и устанавливаем базовые зависимости
sudo apt update && sudo apt upgrade -y
sudo apt install -y build-essential libssl-dev \
libffi-dev python3-dev python3-pip \
libsasl2-dev libldap2-dev default-libmysqlclient-dev

# 2. Создаем виртуальное окружение Python (рекомендуется)
python3 -m venv venv
source venv/bin/activate

# 3. Устанавливаем Apache Superset
pip install apache-superset

# 4. Устанавливаем драйвер для выбранной БД метаданных
# Например, для PostgreSQL:
pip install psycopg2-binary
# Или для MySQL:
# pip install mysqlclient

Настройка переменных окружения и базы данных

По умолчанию Superset использует SQLite, но для продакшена нужна нормальная БД. Создадим конфигурационный файл.

bash
# Экспортируем секретный ключ для Flask
export FLASK_APP=superset
export SUPERSET_SECRET_KEY=$(openssl rand -base64 42)

# Инициализируем базу данных
superset db upgrade

# Создаем администратора
superset fab create-admin \
  --username admin \
  --firstname Admin \
  --lastname User \
  --email admin@superset.com \
  --password admin

# Загружаем примеры (опционально)
superset load_examples

# Инициализируем роли
superset init

Запуск сервера разработки

bash
# Запускаем встроенный сервер (только для разработки!)
superset run -p 8088 --with-threads --reload --debugger
Внимание! Встроенный сервер Flask (superset run) НЕ подходит для продакшена. Для production используй production-ready WSGI сервер, такой как Gunicorn, вместе с Nginx в качестве reverse proxy.

Метод 3: Установка Apache Superset из исходного кода

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

bash
# Клонируем репозиторий
git clone https://github.com/apache/superset.git
cd superset

# Переключаемся на стабильную ветку (например, последний релиз)
git checkout 3.0.0  # укажи актуальную версию

# Создаем виртуальное окружение
python3 -m venv venv
source venv/bin/activate

# Устанавливаем зависимости для разработки
pip install -r requirements/development.txt

# Устанавливаем Superset в режиме разработки
pip install -e .

# Дальнейшие шаги аналогичны методу с pip:
# export FLASK_APP=superset
# superset db upgrade
# ... и т.д.

Настройка Production-окружения Apache Superset

Запуск в продакшене требует дополнительной конфигурации. Вот ключевые моменты:

1. Конфигурационный файл superset_config.py

Создай этот файл в директории, которая находится в переменной окружения PYTHONPATH, или укажи путь к нему через SUPERSET_CONFIG_PATH.

python
# Файл: superset_config.py
import os

# Секретный ключ (генерируй свой!)
SECRET_KEY = os.environ.get("SUPERSET_SECRET_KEY", "your-secret-key-here")

# База данных для метаданных (PostgreSQL пример)
SQLALCHEMY_DATABASE_URI = os.environ.get(
    "DATABASE_URL",
    "postgresql+psycopg2://superset:superset_password@localhost:5432/superset_db"
)

# Отключаем track modifications для SQLAlchemy
SQLALCHEMY_TRACK_MODIFICATIONS = False

# Настройки кеширования (используем Redis)
CACHE_CONFIG = {
    "CACHE_TYPE": "RedisCache",
    "CACHE_DEFAULT_TIMEOUT": 300,
    "CACHE_KEY_PREFIX": "superset_",
    "CACHE_REDIS_URL": "redis://localhost:6379/0",
}

# Настройки Celery для асинхронных задач (опционально, но рекомендуется)
class CeleryConfig:
    broker_url = "redis://localhost:6379/0"
    imports = ("superset.sql_lab",)
    result_backend = "redis://localhost:6379/0"
    worker_prefetch_multiplier = 1
    task_acks_late = False

CELERY_CONFIG = CeleryConfig

# Включаем фоновые задачи
FEATURE_FLAGS = {
    "ALERT_REPORTS": True,
    "ENABLE_TEMPLATE_PROCESSING": True,
}

# Лимиты на запросы
DATA_CACHE_CONFIG = {
    "CACHE_TYPE": "RedisCache",
    "CACHE_DEFAULT_TIMEOUT": 300,
    "CACHE_KEY_PREFIX": "data_",
    "CACHE_REDIS_URL": "redis://localhost:6379/1",
}

2. Запуск через Gunicorn

bash
# Устанавливаем Gunicorn
pip install gunicorn

# Запускаем Superset с Gunicorn
gunicorn \
    --bind 0.0.0.0:8088 \
    --workers 4 \
    --timeout 120 \
    --limit-request-line 4094 \
    --limit-request-field_size 8190 \
    "superset.app:create_app()"

Частые проблемы и их решения при установке Apache Superset

  • Ошибка с cryptography или другими native-зависимостями:

    Убедись, что установлены системные библиотеки: libssl-dev, libffi-dev, build-essential. На macOS используй brew install openssl.

  • Superset не запускается, ошибка импорта:

    Проверь, активировано ли виртуальное окружение и установлен ли сам пакет apache-superset.

  • Проблемы с подключением к базе данных метаданных:

    Убедись, что БД (PostgreSQL/MySQL) запущена, пользователь создан и имеет права на создание базы данных и таблиц. Проверь строку подключения в SQLALCHEMY_DATABASE_URI.

  • Ошибка "CSRF token missing" при логине:

    Убедись, что переменная SUPERSET_SECRET_KEY установлена и имеет достаточную длину и энтропию. Не используй простые ключи.

FAQ: Ответы на частые вопросы по установке Apache Superset

Какую базу данных лучше использовать для метаданных Superset?

Для разработки и тестирования подойдет SQLite. Для любого серьезного использования (от staging до production) обязательно используй PostgreSQL или MySQL. PostgreSQL предпочтительнее из-за лучшей поддержки всех функций Superset.

Можно ли установить Apache Superset на Windows?

Да, но самый простой путь — использовать Docker Desktop для Windows и метод с Docker Compose, описанный выше. Нативная установка через pip на Windows возможна, но сопряжена с проблемами компиляции native-зависимостей. Рекомендуется использовать WSL2 (Windows Subsystem for Linux).

Как обновить Apache Superset до новой версии?

При использовании Docker: обнови образ в docker-compose.yml и выполни docker-compose pull && docker-compose up -d. При установке через pip: pip install --upgrade apache-superset, затем обязательно выполни superset db upgrade для применения миграций БД.

Нужен ли Redis для работы Superset?

Для базовой работы Redis не обязателен. Однако он крайне рекомендуется для кеширования и обязателен, если ты планируешь использовать фоновые задачи (асинхронные запросы, алерты, отчеты по расписанию).

Заключение

Как видишь, процесс установки Apache Superset довольно прямолинеен, особенно с Docker. Главное — правильно выбрать способ под свои задачи:

  • Хочешь быстро попробовать? Бери Docker Compose.
  • Деплоишь на свой сервер? Используй pip + виртуальное окружение + Gunicorn.
  • Планируешь развивать и кастомизировать? Клонируй репозиторий и работай с исходным кодом.

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

Поделиться:
Сохранить гайд? В закладки браузера