Sobre el proyecto
# Panel de Análisis de Clickstream en Tiempo Real
Un panel de análisis de tráfico web en tiempo real construido con Apache Kafka, Python, Pandas y Matplotlib. El sistema simula datos de tráfico clickstream, lo transmite a través de Kafka y genera visualizaciones analíticas en vivo.
## Funcionalidades Principales
- Pipeline de streaming de datos clickstream en tiempo real
- Arquitectura de Productor y Consumidor de Kafka
- Dashboard en vivo basado en Matplotlib con gráficas animadas
- Seguimiento de distribución del tráfico por país
- Crecimiento de visitantes únicos a lo largo del tiempo
- Configuración Docker Compose para la infraestructura de Kafka
## Tecnologías
Python, Apache Kafka, Docker, Pandas, Matplotlib, NumPy
## Estructura del Proyecto
```
kafka-project/
├── consumer.py # Consumidor de Kafka + dashboard de Matplotlib
├── producer.py # Productor de Kafka que envía eventos clickstream
├── generate_data.py # Generador de datos clickstream sintéticos
├── docker-compose.yml # Configuración del stack de Kafka
└── README.md
```
## Cómo Funciona
1. `generate_data.py` produce registros sintéticos de clickstream (sesiones de usuario, vistas de página, códigos de país, marcas de tiempo).
2. `producer.py` lee esos registros y los publica en un tema de Kafka (`clickstream-topic`).
3. `consumer.py` consume mensajes de Kafka y actualiza una figura de Matplotlib cada 100 mensajes, mostrando la distribución por país como gráfica de barras y el crecimiento de usuarios únicos como gráfica de líneas.
4. Kafka se ejecuta dentro de contenedores Docker mediante Docker Compose.
## Ejecutar el Proyecto
1. Iniciar los servicios de Kafka:
```bash
docker compose up -d
```
2. Crear el tema:
```bash
docker exec -it kafka /opt/kafka/bin/kafka-topics.sh --create --topic clickstream-topic --bootstrap-server localhost:9092
```
3. Generar el conjunto de datos:
```bash
python generate_data.py
```
4. Ejecutar el productor:
```bash
python producer.py
```
5. Abrir una segunda terminal y ejecutar el dashboard del consumidor:
```bash
python consumer.py
```
La ventana de Matplotlib se actualizará en tiempo real a medida que lleguen los mensajes del consumidor.
## Mejoras Planeadas
- Dashboard basado en la web (por ejemplo, Streamlit o Dash)
- Integración con Apache Spark Streaming
- Almacenamiento persistente en base de datos para análisis histórico
- Análisis a nivel de sesión
- Modelos de predicción de comportamiento de usuario
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.