feat(superset): автоматическая инициализация с PostgreSQL метаданными

- Добавлена автоматическая инициализация Superset (подключение ClickHouse, 6 датасетов, 10 чартов, дашборд)
- Переведено хранение метаданных с SQLite на PostgreSQL (shared с Airflow)
- Добавлен superset_config.py для конфигурации PostgreSQL
- Обновлен Dockerfile.superset: postgresql-client, psycopg2-binary
- Обновлен docker-compose.yml: volume mount конфига, SUPERSET_CONFIG_PATH
- Исправлены скрипты init_superset.py и create_dashboard.py для работы с shell
- Обновлена документация в README.md: раздел Superset с инструкциями

Тестирование:
- Проверена работа после перезапуска (данные сохраняются)
- Проверен чистый запуск с нуля
- API и UI доступны
This commit is contained in:
2026-02-10 21:56:47 +03:00
parent 91f1a790cb
commit cb3665c1be
6 changed files with 351 additions and 274 deletions
+8 -13
View File
@@ -228,15 +228,11 @@ services:
- superset_data:/var/lib/superset
- superset_config:/app/superset_home
- ./superset:/app/superset_init:ro
- ./configs/superset_config.py:/app/pythonpath/superset_config.py:ro
environment:
- SUPERSET_SECRET_KEY=9wc5+erMt60+lxrXDf3RjeIR+zONpEFusO00Np7JzfliMTI1e+RXnHcQ
- TZ=Europe/Moscow
- DATABASE_DB=superset
- DATABASE_HOST=postgres-metadata
- DATABASE_PASSWORD=airflow
- DATABASE_USER=airflow
- DATABASE_PORT=5432
- DATABASE_DIALECT=postgresql
- SUPERSET_CONFIG_PATH=/app/pythonpath/superset_config.py
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8088/health"]
interval: 30s
@@ -258,19 +254,18 @@ services:
- superset_data:/var/lib/superset
- superset_config:/app/superset_home
- ./superset:/app/superset_init:ro
- ./configs/superset_config.py:/app/pythonpath/superset_config.py:ro
environment:
- SUPERSET_SECRET_KEY=9wc5+erMt60+lxrXDf3RjeIR+zONpEFusO00Np7JzfliMTI1e+RXnHcQ
- TZ=Europe/Moscow
- DATABASE_DB=superset
- DATABASE_HOST=postgres-metadata
- DATABASE_PASSWORD=airflow
- DATABASE_USER=airflow
- DATABASE_PORT=5432
- DATABASE_DIALECT=postgresql
- SUPERSET_CONFIG_PATH=/app/pythonpath/superset_config.py
command: >
bash -ceuo pipefail "
echo 'Waiting for PostgreSQL...' &&
sleep 10 &&
sleep 5 &&
echo 'Creating superset database if not exists...' &&
PGPASSWORD=airflow psql -h postgres-metadata -U airflow -d airflow -tc \"SELECT 1 FROM pg_database WHERE datname='superset'\" | grep -q 1 || \\
PGPASSWORD=airflow psql -h postgres-metadata -U airflow -d airflow -c \"CREATE DATABASE superset;\" &&
echo 'Initializing Superset DB...' &&
superset db upgrade &&
echo 'Creating admin user...' &&