Este proyecto de párctica implementa una arquitectura de datos en Microsoft Fabric para el sector minero. El sistema simula la operación de carga y transporte de minerales, procesa la información a través de una arquitectura Medallion y genera tablas analíticas listas para la toma de decisiones estratégicas.
El flujo de datos garantiza la trazabilidad, calidad y escalabilidad de la información mediante tres niveles de procesamiento:
Figura 1: Vista general del Workspace en Fabric con la organización de Notebooks y Lakehouse.
Figura 1: Vista general del Workspace en Fabric con la organización de Notebooks y Lakehouse.
- Fuentes de Datos: Generación de datos sintéticos con la librería
Faker, simulando activos (camiones), locaciones (minas) y eventos (logs de producción). - Capa Bronze (Raw): Ingesta de archivos CSV a tablas Delta, preservando el estado original y añadiendo auditoría (
Fecha_Ingesta,origen). - Capa Silver (Cleaned): Limpieza, normalización de nombres, tipado de datos y consolidación mediante Joins técnicos.
- Capa Gold (Curated): Tablas de agregación orientadas a negocio para análisis de eficiencia y producción.
- Plataforma: Microsoft Fabric (Lakehouse).
- Motor de Procesamiento: PySpark (Spark 3.4+).
- Almacenamiento: Delta Lake (Formato abierto con transacciones ACID).
- Generación de Datos: Python
Faker(Especializado en datos de minería: modelos de camiones, nombres de yacimientos chilenos).
Los datos crudos aterrizan en la sección Files del Lakehouse antes de ser procesados por los Jobs de Spark.
Figura 2: Archivos fuente almacenados en la carpeta raw_data.
Las tablas están registradas en el metastore, permitiendo consultas SQL de alto rendimiento.
Figura 3: Estructura de tablas particionadas por capas (brz, slv, gold) y previsualización de datos enriquecidos.
| Tabla | Capa | Descripción |
|---|---|---|
brz_equipment |
Bronze | Datos maestros de camiones (CAT, Komatsu). |
brz_mines |
Bronze | Directorio de minas y ubicaciones operativas. |
brz_production_logs |
Bronze | Historial de transacciones de carga en bruto. |
slv_logmineria |
Silver | Tabla unificada con tipos de datos corregidos y nombres estandarizados. |
gold_production_by_mine |
Gold | Resumen de toneladas producidas por cada yacimiento. |
gold_production_by_camiones |
Gold | KPI de eficiencia por flota de transporte. |
El procesamiento se divide en Notebooks modulares:
- Generador de Datos: Creación de 1,000+ registros de prueba con lógica de negocio minera.
- Ingesta Bronze: Lectura dinámica de múltiples formatos (
.csv,.parquet) con evolución de esquema habilitada (mergeSchema). - Refinería Silver/Gold: Ejecución de lógica de negocio:
- Cálculo de toneladas netas.
- Join entre registros de producción y tablas de minas/equipos.
- Filtrado de valores nulos y deduplicación.
- Producción total por mina
- Eficiencia por equipo (toneladas por camión)
- Distribución por tipo de mineral
- Conexión del Workspace con Git Integration (Azure DevOps/GitHub) para control de versiones.
- Creación de Deployment Pipelines para separar entornos de Dev y Prod.
- Implementación de validaciones automáticas (ej. que la capacidad de carga nunca sea negativa).
- Configuración de alertas por correo mediante Data Factory Pipelines en caso de fallo de ingesta.
- Desarrollo de un Dashboard en Power BI utilizando el modo DirectLake para visualización en tiempo real.
- Análisis predictivo de mantenimiento de flota utilizando.
mining-data-platform/
│
├── data_generator/
│ ├── Generador de datos
├── notebooks/
│ ├── bronze_ingesta
│ ├── silver_transformation
│ ├── gold_analytics
├── imagenes/
│ ├── architecture.png
│
└── README.mdIngeniero de Datos: Haner Johan Riascos Mosquera
Ubicación del Proyecto: Los Andes, Valparaíso, Chile
Plataforma: Microsoft Fabric
