Спасибо @ivolake за «Поднимаем Apache Superset — необходимый и достаточный гайд». Больше года назад для меня новичка он стал базой, но спустя год было выпущено несколько обновлений SS и процесс его развёртывания претерпел важные изменения.
Наша среда обитания Superset
Ubuntu 22.04
Docker 24.06 и Docker-compose 2.22.0
Postgres 14 и PgAdmin (ставиться отдельно)
Redis 7
Python 3.10 (есть в стандартной сборка Ubuntu 22.04)
Текстовый редактор Nano (есть в стандартной сборка Ubuntu 22.04)
Сам Superset мы будем ставить https://github.com/apache/superset
Список полезных ссылок
Сайт Superset с документацией https://superset.apache.org/docs/intro
Superset релиз 3.0.1 https://github.com/apache/superset
Документация по Docker https://docs.docker.com
Docker-файл PgAdmin https://hub.docker.com/r/dpage/pgadmin4
Подключаем SQL Server https://superset.apache.org/docs/databases/sql-server
У SS есть облачная версия https://preset.io
Установка docker и docker-compose на Ubuntu
Обновляем существующий список пакетов:
sudo apt updateУстанавливаем пакеты для apt:
sudo apt install curl software-properties-common ca-certificates apt-transport-https -yДалее добавим ключ GPG для официального репозитория Docker:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -Обновляем ещё раз существующий список пакетов:
sudo apt updateУстанавливаем Docker:
sudo apt install docker-ceПроверим статус Docker:
sudo systemctl status docker
Загружаем Docker Compose plugin:
sudo apt-get update
sudo apt-get install docker-compose-pluginПрименяем разрешения для исполняемого файла к двоичному файлу:
sudo chmod +x /usr/local/bin/docker-composeНу и на конец финальная проверка:
docker compose version
Установка Apache Superset
Клонируем проект из github:
git clone https://github.com/apache/superset.gitПереходим в директорию:
cd supersetПереключаемся на ветку нужного релиза ( 2.1.0 - версия постабильней (рекомендована), 3.0.1 - последняя версия)
git checkout 2.1.0
Установка редактора Nano (опционально)
Nano есть в стандартной сборке, но если по каким-то причинам его нет, то установим:
sudo apt update
sudo apt upgrade
sudo apt install nano
nano --versionОтредактируем через nano файл docker-compose-non-dev.yml (можно пропустить, если нужна последняя версия 0.0.0 dev ) :
x-superset-image: &superset-image apache/superset:${TAG:-latest-dev}Меняем на:
x-superset-image: &superset-image apache/superset:2.1.0 (или 3.0.1)Переходим в папку docker:
cd dockerОткрываем важный файл настройки конфигураций superset_config.py
nano superset_config.pyДобавим / Заменим в него текст:
# Superset specific config
ROW_LIMIT = 25000
# Flask App Builder configuration
# Your App secret key will be used for securely signing the session cookie
# and encrypting sensitive information on the database
# Make sure you are changing this key for your deployment with a strong key.
# Alternatively you can set it with `SUPERSET_SECRET_KEY` environment variable.
# You MUST set this for production environments or the server will not refuse
# to start and you will see an error in the logs accordingly.
SECRET_KEY = 'YOUR_OWN_RANDOM_GENERATED_SECRET_KEY'
# The SQLAlchemy connection string to your database backend
# This connection defines the path to the database that stores your
# superset metadata (slices, connections, tables, dashboards, ...).
# Note that the connection information to connect to the datasources
# you want to explore are managed directly in the web UI
# Flask-WTF flag for CSRF
WTF_CSRF_ENABLED = True
# Add endpoints that need to be exempt from CSRF protection
WTF_CSRF_EXEMPT_LIST = []
# A CSRF token that expires in 1 year
WTF_CSRF_TIME_LIMIT = 60 * 60 * 24 * 365
# Set this API key to enable Mapbox visualizations
MAPBOX_API_KEY = ''Тут нам нужно настроить SECRET_KEY = 'YOUR_OWN_RANDOM_GENERATED_SECRET_KEY' - это параметр безопасности, по новым требованиям для успешной установки требуется задать свой уникальный СЕКРЕТНЫЙ КОД.
Генерируем свой уникальный SECRET_KEY:
openssl rand -base64 42Вставляем результат в параметр выше и будет что-то типа:
SECRET_KEY = 'QWDSAB8DhYr63dBsqfrLTxMzG+Z6FNF1uyrsjaSfFk9yXMqeZ8tlndKia'
Сохраняем наши правки (ctrl + S) и выходим из редактора
Выполняем команды:
sudo docker-compose -f docker-compose-non-dev.yml pull
sudo docker-compose -f docker-compose-non-dev.yml upЕсли спустя пару минут установка ещё будет не окончена, то можно попробовать прервать установку ....
Проверяем, что всё ок:
docker ps -a Заходим в браузер и переходим по адресу нашего сервера на порт 8088 ( а может вы настроили другой, 8080 либо другой).

Стандартные логин и пароль (их можно задать в файле docker-init.sh перед запуском установки):
Пользователь: admin
Пароль: admin
Позже можно поменять в приложении.
Дальше, как быть с БД и СУБД
БД можно подключить на своё усмотрение через настройки ��а портале BI.
По умолчанию, мы установили БД Postgres на порт 5432, для использования её нужно подключить через настройки на портале BI.
Если нужна СУБД, то подойдёт PgAdmin, её Docker-файл можно найти на https://hub.docker.com/r/dpage/pgadmin4
Если нужен будет коннект к Mssql, то потребуется доп.драйвер и залезть в докер-файл SS:
Введём команду, чтобы увидеть список запущенных контейнеров:
docker psНайдём номер нужного нам контейнер superset_app и зайдём в этот контейнер:
sudo docker exec -it <номер_нашего_контейнера> bashТам установим нужный драйвер и выйдем из контейнера(ctrl + z):
sudo apt update
sudo apt upgrade
pip install -U pip
pip install pymssql