Skip to content

Latest commit

 

History

5 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Data-пайплайн и аналитика для финтех-чат-бота в Apache Superset

Описание проекта

Готовый к использованию шаблон аналитического решения для данных чат-бота финтех-компании. Проект реализует полный цикл обработки данных: от загрузки "сырого" Excel-файла до построения интерактивного дашборда в Apache Superset. Вся инфраструктура контейнеризирована с помощью Docker для простоты развертывания.

Стек технологий

  • Python (Pandas) — ETL-обработка данных
  • PostgreSQL 16 — хранение аналитических данных
  • Apache Superset 6.0.0-dev — визуализация и дашборды
  • Docker / Docker Compose — контейнеризация и оркестрация
  • Jinja2 — динамические SQL-шаблоны в Superset

Что реализовано в проекте

  1. ETL-сервис (Python)
    • Извлечение "сырых" данных (raw_data.xlsx)
    • Трансформация и очистка с помощью Pandas
    • Разделение на две логические таблицы: результаты диалогов и пользовательские действия
    • Экспорт в CSV для загрузки в БД
  2. PostgreSQL для аналитики
    • Автоматическое создание таблиц при первом запуске
    • Оптимизированные индексы для ускорения запросов
    • Загрузка подготовленных данных через COPY
  3. Apache Superset с кастомной настройкой
    • Включена поддержка Jinja-шаблонов в SQL-запросах
    • Построен интерактивный дашборд с динамической фильтрацией
  4. Docker-оркестрация
    • Три связанных сервиса: ETL, PostgreSQL, Superset
    • Автоматический порядок запуска (Superset → ETL → БД)
    • Общая сеть для взаимодействия контейнеров

Установка и запуск

  1. Клонируйте репозиторий
git clone https://github.com/witchyburn/chatbot-analytics-superset.git
cd superset_project
  1. Настройте окружение
    • Создайте файл .env в папке my_data/ (пример):
POSTGRES_USER=test
POSTGRES_PASSWORD=test
POSTGRES_DB=dash_data
  1. Скачайте и настройте 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}
  1. Запустите проект
# Скопируйте кастомный 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
  1. Дождитесь завершения ETL и инициализации БД

    • Проверьте логи: docker logs extract_transform
    • ETL-сервис завершится автоматически после обработки данных
  2. Подключитесь к Superset

  3. Настройте подключение к БД в Superset

    • Подключитесь к базе данных dash_data_db:
      • Хост: my_db
      • Порт: 5432
      • База данных: из файла .env
      • Пользователь/пароль: из файла .env
  4. Все готово к построению интерактивного дашборда!

Дашборд (скриншоты проекта)

Общий вид дашборда (стр. 1)
Общий вид дашборда (страница 1)

Пример работы кастомного фильтра на основе Jinja
Пример работы кастомного фильтра на основе Jinja

Общий вид дашборда (стр. 2, chart #1)
Общий вид дашборда (стр. 2, chart #1)

Общий вид дашборда (стр. 2, chart #2)
Общий вид дашборда (стр. 2, chart #2)

Лицензия

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

About

Контейнеризированное решение для обработки данных чат-бота и визуализации в Superset. Включает ETL на Pandas, БД Postgres и кастомизированный Apache Superset

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages