Об этом проекте
# Дашборд кликстрим-аналитики в реальном времени
Даьборд аналитики веб-трафика в реальном времени, построенный на 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
- постоянное хранилище в базе данных для исторического анализа
- аналитика на уровне сессий
- модели прогнозирования поведения пользователей
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.