Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Fullstack Dashboard

Dashboard de comportamiento de ventas en tiempo real con proyecciones futuras usando BigQuery ML.

🚀 Inicio Rápido

Requisitos Previos

1. Autenticación en Google Cloud (Paso Manual)

gcloud auth application-default login

2. Instalación

Linux / macOS:

chmod +x setup.sh run.sh
./setup.sh

Windows (PowerShell):

.\setup.ps1

3. Ejecutar el Proyecto

Linux / macOS:

./run.sh

Windows (PowerShell):

.\run.ps1

Una vez iniciado:


🔧 Estrategia de Particionamiento y Clustering

¿Por qué Particionamiento por Mes en timestamp?

La tabla de transacciones está particionada por mes usando el campo timestamp. Aunque el particionamiento diario podría parecer atractivo para consultas como el forecast que usan pocos días de datos, con un dataset de ~10,000 transacciones anuales cada partición diaria tendría apenas unos KB de datos. Este tamaño tan pequeño genera un overhead de metadatos que no compensa la reducción de datos escaneados. El particionamiento mensual ofrece un mejor balance: cada partición contiene ~800 registros, mientras que consultas comunes como por ejemplo trimestres o el año completo solo acceden a 3-12 particiones respectivamente. Para operaciones como el forecast que requieren los últimos días, el costo adicional de escanear el mes completo es mínimo comparado con el overhead que generarían 365 particiones pequeñas. Además, esta estrategia está diseñada pensando en escalabilidad: conforme el dataset crezca hacia un uso de producción real con mayor volumen de transacciones y mas años, las particiones diarias pierden sentido haciendo ineficiente el uso de los recursos.

¿Por qué Clustering por category y region?

El clustering por category y region se alinea directamente con los patrones de uso del dashboard y el entrenamiento de modelos. El dashboard ofrece filtros por categoría de producto (Electronics, Clothing, Home, Books) y región geográfica (US-East, EU-West, APAC, etc.), por lo que agrupar físicamente los datos por estas dimensiones permite a BigQuery acceder solo a los bloques relevantes dentro de cada partición. Más importante, el modelo ARIMA_PLUS entrena series temporales separadas para cada combinación de region y category, lo que significa que cada predicción solo necesita acceder a un subconjunto específico de datos. El clustering garantiza que estos subconjuntos estén físicamente contiguos, optimizando tanto las consultas interactivas del usuario como el entrenamiento y ejecución de los modelos de forecasting.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages