Поднимаем BI Apache Superset в 2023 году — гайд с последними обновлениями

от автора

Спасибо @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

Список полезных ссылок

Установка docker и docker-compose на Ubuntu

Обновляем существующий список пакетов:

sudo apt update

Устанавливаем пакеты для apt:

sudo apt install apt-transport-https ca-certificates curl software-properties-common

Настраиваем путь репозитория Docker в источники apt:

sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu focal stable"

Далее добавим ключ 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
 Нам важно active (running)

Нам важно active (running)

Загружаем 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
Версию выбираем на своё усмотрение. Проверить статус можно командой git status

Версию выбираем на своё усмотрение. Проверить статус можно командой git status

Установка редактора 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


ссылка на оригинал статьи https://habr.com/ru/articles/773296/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *