Готовый к использованию шаблон аналитического решения для данных чат-бота финтех-компании. Проект реализует полный цикл обработки данных: от загрузки "сырого" Excel-файла до построения интерактивного дашборда в Apache Superset. Вся инфраструктура контейнеризирована с помощью Docker для простоты развертывания.
- Python (Pandas) — ETL-обработка данных
- PostgreSQL 16 — хранение аналитических данных
- Apache Superset 6.0.0-dev — визуализация и дашборды
- Docker / Docker Compose — контейнеризация и оркестрация
- Jinja2 — динамические SQL-шаблоны в Superset
- ETL-сервис (Python)
- Извлечение "сырых" данных (
raw_data.xlsx) - Трансформация и очистка с помощью Pandas
- Разделение на две логические таблицы: результаты диалогов и пользовательские действия
- Экспорт в CSV для загрузки в БД
- Извлечение "сырых" данных (
- PostgreSQL для аналитики
- Автоматическое создание таблиц при первом запуске
- Оптимизированные индексы для ускорения запросов
- Загрузка подготовленных данных через
COPY
- Apache Superset с кастомной настройкой
- Включена поддержка Jinja-шаблонов в SQL-запросах
- Построен интерактивный дашборд с динамической фильтрацией
- Docker-оркестрация
- Три связанных сервиса: ETL, PostgreSQL, Superset
- Автоматический порядок запуска (Superset → ETL → БД)
- Общая сеть для взаимодействия контейнеров
- Клонируйте репозиторий
git clone https://github.com/witchyburn/chatbot-analytics-superset.git
cd superset_project
- Настройте окружение
- Создайте файл
.envв папке my_data/ (пример):
- Создайте файл
POSTGRES_USER=test
POSTGRES_PASSWORD=test
POSTGRES_DB=dash_data
- Скачайте и настройте Apache Superset
- Скачайте репозиторий:
git clone https://github.com/apache/superset.git
cd superset
git checkout 6.0.0-dev
- Отредактируйте конфиг - добавьте feature-флаги в файл
docker/pythonpath_dev/superset_config.py:
FEATURE_FLAGS = {"ALERT_REPORTS": True, "ENABLE_TEMPLATE_PROCESSING": True}
- Запустите проект
# Скопируйте кастомный docker-compose в директорию с Superset
cp /path/to/project/docker-compose.custom.yml .
# Запустите с указанием TAG
export TAG=6.0.0-dev
docker-compose -f docker-compose-image-tag.yml -f docker-compose.custom.yml up -d
-
Дождитесь завершения ETL и инициализации БД
- Проверьте логи: docker logs extract_transform
- ETL-сервис завершится автоматически после обработки данных
-
Подключитесь к Superset
- Откройте браузер: http://localhost:8088
- Логин/пароль: admin / admin
-
Настройте подключение к БД в Superset
- Подключитесь к базе данных dash_data_db:
- Хост: my_db
- Порт: 5432
- База данных: из файла
.env - Пользователь/пароль: из файла
.env
- Подключитесь к базе данных dash_data_db:
-
Все готово к построению интерактивного дашборда!
Общий вид дашборда (стр. 1)
Пример работы кастомного фильтра на основе Jinja

Этот проект распространяется под лицензией MIT.

