Todos los proyectos

Proyecto A · Ingeniería de datos en la nube

Pipeline operativo en Google Cloud

Implementado y verificado

Ingesta de reportes de SharePoint a BigQuery con validaciones y control de duplicados. En producción en Cencosud: 150,000 registros procesados en 4 minutos.

Mi contribución: diseñé y evolucioné el pipeline de punta a punta.

  1. Excel + VBA
  2. SharePoint
  3. Power Automate
  4. Cloud Storage
  5. Cloud Functions
  6. Dataflow
  7. BigQuery
  8. Power BI
Mi contribución
Diseño y evolución del pipeline desde la ingesta hasta el consumo.
Contexto
Operaciones de retail · Cencosud
Alcance de la medición

4 minutos: desde el disparo en Power Automate hasta el fin en Cloud Functions. 15 minutos: proceso operativo completo, antes de 2 horas.

150,000registros procesados en 4 minutos
2 h → 15 minprocesamiento de reportes operativos
4 / díarecargas del reporte, sin duplicar registros
En producciónse ejecuta con cada archivo nuevo

Problema El contexto

Para analizar datos de varios años, el equipo armaba macros de Excel que resumían la información por partes, con el límite de 1 millón de filas de Excel. Esto tomaba entre 2 días y 1 semana, según la carga de trabajo.

Luego se creó una macro que revisaba cada archivo y lo resumía para analizarlo. El problema: ante un error había que buscar el archivo original, y los reportes se perdían o se borraban con frecuencia.

El reporte de staging de paletas se genera en .xlsb y se actualiza 4 veces al día. El objetivo: almacenarlo de forma estructurada, sin pasos manuales y sin duplicar registros en cada recarga.

Solución Qué resolví

  1. Con VBA, el reporte .xlsb se convierte a CSV y se guarda en SharePoint.
  2. Power Automate detecta el archivo nuevo y lo envía al bucket de Cloud Storage.
  3. Un disparador de Cloud Functions se activa con el archivo y ejecuta un script que crea el job de Dataflow.
  4. Dataflow transforma y limpia los datos: formatos de fecha, errores provenientes de fórmulas y tipos de datos por columna.
  5. Se elimina la fecha en BigQuery y se insertan los datos; los registros con error van a la tabla de rechazos y el estado se avisa por correo.
  6. Consultas programadas en BigQuery actualizan la tabla conectada al dashboard de Power BI, que la consume vía DirectQuery.

Estado: en producción; se ejecuta cada vez que detecta archivos nuevos.

Arquitectura técnica

De Microsoft 365 a Google Cloud: cómo viaja el reporte desde Excel hasta el dashboard.

Microsoft 365

  1. Excel + VBAGenera el reporte (.xlsb) y lo convierte a CSV
  2. SharePointAlmacena el archivo
  3. Power AutomateDetecta el archivo nuevo y orquesta el envío

Google Cloud

  1. Cloud StorageRecibe el CSV
  2. Cloud FunctionsSe activa con el archivo y crea el job de Dataflow
  3. DataflowTransforma y limpia los datos
  4. BigQueryBorra la fecha e inserta; los rechazos van a otra tabla

Consumo

  1. BigQueryConsultas programadas actualizan la tabla del dashboard
  2. Power BIDashboard vía DirectQuery

Control de errores

  • Registros con error → tabla de rechazos en BigQuery.
  • Estado del proceso ETL → aviso por correo a los usuarios técnicos.
  • Falla del flujo en Power Automate → aviso en Microsoft Teams.
Detalle del flujo en Power Automate
  1. Disparador: se crea o modifica un archivo en la carpeta de SharePoint.
  2. Validación de seguridad: solo continúan los archivos autorizados; el resto se ignora.
  3. HTTP: solicita a una Cloud Function la URL firmada.
  4. HTTP: envía el archivo directamente a Cloud Storage con esa URL.
  5. Si ocurre un error en el flujo, se envía un aviso a Microsoft Teams.

Resultados y validación Resultados y evidencia

150,000

registros procesados en 4 minutos

Pipeline en GCP, medido desde el disparo en Power Automate hasta el fin en Cloud Functions.

−87%

tiempo de procesamiento de reportes operativos (de 2 h a 15 min)

Tiempo del proceso operativo completo. Los 4 minutos corresponden al tramo técnico de ingesta.

Cualitativo (no medido): el dashboard se actualiza solo, los errores se revisan a nivel de detalle y no se pierden archivos porque todo queda estructurado en BigQuery.

Tiempo de análisis con el pipeline frente a los 2 días a 1 semana anteriores.

Decisiones técnicas Cómo pensé

  • Reemplazar el resumen archivo por archivo en Excel por datos estructurados en BigQuery: ante un error se revisa a nivel de detalle y no se pierden archivos.
  • Power Automate como disparador y carga a Cloud Storage mediante URLs firmadas (carga segura).
  • BigLake sobre el bucket para optimizar costos de almacenamiento.
  • Como el reporte llega 4 veces al día, cada carga borra primero la fecha en BigQuery y luego inserta, para evitar duplicados.
  • Los registros con error no detienen la carga: van a una tabla de rechazos y se avisa por correo.

Alternativas técnicas evaluadas dentro de GCP y por qué se descartaron.

Calidad de datos y pruebas

  • Dataflow valida y corrige formatos de fecha, errores provenientes de fórmulas y tipos de datos por columna.
  • Los registros con error van a una tabla de rechazos en BigQuery y no detienen la carga.
  • Control de duplicados: cada carga borra la fecha correspondiente e inserta de nuevo, porque el reporte llega 4 veces al día.
  • El estado del proceso se avisa por correo a los usuarios técnicos.

Pruebas automatizadas y validaciones adicionales: por documentar.

Limitaciones y siguientes pasos

El código productivo vive en GCP y procesa datos de la empresa, por lo que no es público. Siguiente paso propuesto: una versión reproducible con datos sintéticos, diagrama de arquitectura y pruebas.

¿Quieres conversar sobre este proyecto?

Puedo explicar la arquitectura, las decisiones y las limitaciones en una entrevista.

Contactar por LinkedIn