Deuda técnica y rescate
Got legacy reports that take 40 minutes to refresh? A semantic model nobody dares touch? We diagnose the root cause, refactor the mess, and get your production environment back to peak freshness, without bringing the system down.
Misiones de rescate comunes
- ⚡ Tiempos de actualización de horas → minutos
- ⚡ Medidas DAX rotas y dependencias circulares
- ⚡ Tablas duplicadas en 15 copias de libro
- ⚡ Actualizaciones programadas fallidas y problemas de gateway
- ⚡ Reconciliación de datos post-migración
Nuestro enfoque
- Perfilar y evaluar el estado actual
- Identificar los 3 cuellos de botella principales (usualmente el 80 % del dolor)
- Corregir en staging, validar con stakeholders
- Cut over with rollback plan, zero downtime
Entregables de ejemplo
Informe de recuperación de rendimiento
Before (Week 0)
Report refresh42 min
Failed queries / day23%
Model size2.1 GB
Duplicate measures47
User complaints / wk12
After (Week 6)
Report refresh4 min ▼90%
Failed queries / day1% ▼96%
Model size680 MB ▼68%
Duplicate measures0
User complaints / wk0
Línea de tiempo de análisis de causa raíz
09:14
Alert: refresh failed 3x consecutively
Gateway timeout after 30 min
09:45
Diagnosis: cartesian product in fact join
Sales × Promotions = 840M rows inflated
11:20
Fix: bridge table + inactive relationship
Deployed to staging, validated by finance
14:00
Production cutover, refresh in 3m 48s
Rollback window closed. Incident resolved.
Limpieza del modelo de datos
Legacy model (v14)
Tables: 34 (12 hidden duplicates) Relationships: 28 (4 bi-directional ⚠) Measures: 112 (47 duplicates) Calculated cols: 89 ← should be in ETL Import mode: 2.1 GB Refresh: Import all tables
Refactored model (v15)
Tables: 18 (star schema) Relationships: 16 (all single-direction) Measures: 65 (documented, grouped) Calculated cols: 12 (display only) Import mode: 680 MB Refresh: Incremental on facts