Об этом проекте

# Дашборд кликстрим-аналитики в реальном времени Даьборд аналитики веб-трафика в реальном времени, построенный на Apache Kafka, Python, Pandas и Matplotlib. Система симулирует кликстрим-трафик, транслирует его через Kafka и отображает живые аналитические визуализации. ## Ключевые возможности - конвейер потоковой передачи кликстрим-данных в реальном времени - архитектура Producer и Consumer для Kafka - живой дашборд на Matplotlib с анимированными графиками - отслеживание распределения трафика по странам - рост числа уникальных посетителей во времени - Docker Compose-конфигурация для инфраструктуры Kafka ## Технологии Python, Apache Kafka, Docker, Pandas, Matplotlib, NumPy ## Структура проекта ``` kafka-project/ ├── consumer.py # Kafka consumer + Matplotlib dashboard ├── producer.py # Kafka producer, отправляющий кликстрим-ивенты ├── generate_data.py # Генератор синтетических кликстрим-данных ├── docker-compose.yml # Конфигурация стека Kafka └── README.md ``` ## Как это работает 1. `generate_data.py` создаёт синтетические кликстрим-записи (сессии пользователей, просмотры страниц, коды стран, метки времени). 2. `producer.py` читает эти записи и публикует их в тему Kafka (`clickstream-topic`). 3. `consumer.py` потребляет сообщения из Kafka и обновляет фигуру Matplotlib каждые 100 сообщений, отображая распределение по странам в виде столбчатой диаграммы и рост уникальных пользователей — в виде линейного графика. 4. Kafka запускается внутри Docker-контейнеров через Docker Compose. ## Запуск проекта 1. Запустите сервисы Kafka: ```bash docker compose up -d ``` 2. Создайте тему: ```bash docker exec -it kafka /opt/kafka/bin/kafka-topics.sh --create --topic clickstream-topic --bootstrap-server localhost:9092 ``` 3. Сгенерируйте набор данных: ```bash python generate_data.py ``` 4. Запустите producer: ```bash python producer.py ``` 5. Откройте второе окно терминала и запустите consumer-дашборд: ```bash python consumer.py ``` Окно Matplotlib будет обновляться в реальном времени по мере поступления сообщений потребителю. ## Планируемые улучшения - веб-дашборд (например, Streamlit или Dash) - интеграция с Apache Spark Streaming - постоянное хранилище в базе данных для исторического анализа - аналитика на уровне сессий - модели прогнозирования поведения пользователей