SYS//SOFI-CORE-V2 APM//CLUSTER-TOPOLOGY
APM INVERSIONES
/ SOFI Platform
Consultoría Técnica de Arquitectura
Ciclo 2026 / Big Data

Arquitectura de Big Data
y Analítica de Negocios

Modernización, desacoplamiento de cargas analíticas en 4 capas y modelos predictivos sobre el ecosistema SOFI para la empresa APM Inversiones S.A.C.

HDFS 3.2 (128 MB, R=3) Scikit-Learn ML Inferencia MongoDB Aggregation Docker Distribuido
Storage Distribuido HDFS Alta Tolerancia

Replicación R=3 en 3 DataNodes con tolerancia a fallas de disco.

Ingesta & Telemetría NoSQL MongoDB Pipeline

Staging desacoplado de eventos Discord sin saturar PostgreSQL.

Analítica OLAP & ML Scikit-Learn

Inferencia de deserción en tiempo real y dashboards ejecutivos.

Consultor 1: Jhefry Cabanillas Casana
Consultor 2: Carlos Gago Anaya
Consultora 3: Damaris Gutiérrez Macavilca
Organización Auditada: APM Inversiones S.A.C.
Ecosistema Base: SOFI Core (Postgres)
Contexto & Arquitectura Planteada

Ecosistema SOFI y Flujo Integral en 4 Fases de Big Data

APM Inversiones S.A.C. 128 Practicantes
SOFI Core V2

Modelo formativo 100% remoto que audita asistencia, telemetría Git y evaluaciones modulares.

🐙 GitHub Org 🎧 Bot Discord ⚡ NestJS Core ▲ Next.js
Auditoría: 7,111 Asistencias 1,515 Commits · 6 Stacks
Colisión OLTP/OLAP

Consultas analíticas pesadas sobre 7,111 filas degradan inserciones de marcación en PostgreSQL.

➔ HDFS Desacoplado
JOINs Masivos

Auditar a un practicante exige cruzar 5 tablas relacionales con latencias críticas en producción.

➔ NoSQL Aggregation
Ingesta Sin Buffer

Picos sincrónicos de eventos desde Discord (salas a las 9:00 AM) saturan la base sin colas.

➔ Buffer en Capa 1
Solución Planteada para el Proyecto: Pipeline Distribuido de 4 Fases
Arquitectura de Consultoría Big Data · Flujo End-to-End
FASE 1 Capa Ingestión
Ingesta & Data Prep
  • Extracción: Postgres, Discord y Git.
  • Profiling e imputación de nulos.
  • Normalización UTC y horas asistidas.
  • Enriquecimiento SUNAT/RENIEC.
Handoff: telemetria_2025.csv (384 MB)
FASE 2 Capa Storage
Clúster Hadoop HDFS
  • NameNode Master (Metadatos IPC :8020).
  • 3 DataNodes (dn-01, dn-02, dn-03).
  • Bloques de 128 MB (3 particiones).
  • Replicación R=3 (tolerancia a fallas).
Destino: hdfs:///data/sofi/
FASE 3 Capa Analítica
NoSQL & Machine Learning
  • MongoDB Pipeline ($unwind, $group).
  • Cálculo de 2 Tablas OLAP masivas.
  • Scikit-Learn ML (Random Forest).
  • Predicción de Deserción en tiempo real.
Resultados: 2 Tablas OLAP + Scoring
FASE 4 Capa Explotación
Dashboards & Negocio
  • 4 Gráficos interactivos Chart.js.
  • Monitoreo de horas asistidas vs req.
  • Severidad de fallos por tecnología.
  • Alertas para mitigación SUNAFIL.
Impacto: -25% Deserción Formativa
Fase 1: Ingesta

Capa de Ingesta y Preparación de Datos

Fuentes Internas Operacionales
4 Sistemas
PostgreSQL SOFI Core 128 p. / 7,111 filas

Maestro de practicantes, convenios, sedes, asistencias y solicitudes de recuperación.

Bot Discord (Presencia en Vivo) Stream Continuo

Eventos de check-in/out, horas en salas de voz (9:00 AM) y alertas de inactividad.

Módulo LMS Academia Event-Driven

Horas efectivas de estudio por módulo, estados de avance (planned/finished) y notas.

GitHub Org (Repositorios) 1,515 Commits

Volumen de commits, diffs de líneas agregadas/eliminadas, ramas activas y PRs.

Fuentes Externas (Enriquecimiento)
2 APIs REST
API RENIEC

Validación de DNI único, verificación de nombres oficiales y saneamiento de duplicados.

API Feriados PE

Calendario oficial de días no laborables para evitar penalizaciones erróneas en horas.

Pipeline de Data Preparation
Cadena Conexa
1
Descubrir Profiling
Auditoría de esquemas heterogéneos, tipos de datos y cardinalidad.
2
Limpiar Sanitización
Imputación de nulos, detección de anomalías y supresión de duplicados.
3
Normalizar UTC & Schema
Estandarización temporal UTC, escala horaria y hashing de privacidad.
4
Enriquecer Feature Eng.
Cruce con DNI de RENIEC, feriados nacionales y cálculo de horas efectivas.
Destino Handoff
Hacia Fase 2
telemetria_2025.csv 384 MB (Unificado) 128 practicantes · 7,111 registros
Particionado en HDFS (R=3) 3 Bloques
• Blk 1 (128 MB): DN-01, 02, 03
• Blk 2 (128 MB): DN-02, 03, 01
• Blk 3 (128 MB): DN-03, 01, 02
• Ruta: hdfs:///data/sofi/
• Validación: Checksum CRC-32
• Replicación: R=3 Tolerante a Fallas
✔ Handoff Listo para Ingesta en Clúster HDFS
Fase 2: HDFS 3.2

Topología Distribuida y Flujo de Tránsito

Etapa 0 de 4
1. Orígenes (6 Fuentes)
PostgreSQL Core
128 p. / 7,111 asist. (OLTP)
Bot Discord
Eventos de voz y streaming
LMS Capacitación
Lecciones, tareas y notas
Telemetría GitHub
Commits y Pull Requests
API RENIEC EXT
Validación de DNI y nombres
API Feriados PE EXT
Normalización calendario
Multi-Source Ingest Gateway
2. Dataset Crudo
telemetria_2025.csv 384 MB Amortizado en HDFS
• Bloque: 128 MB
• Partes: 3 Bloques
• I/O Overhead: <0.78%
HDFS Chunking
3. NameNodes (HA)
NameNode 1 ACTIVO
• RAM fsimage (450 B)
• Mapeo B1, B2, B3
• Heartbeat Monitor (3s)
IPC :9000 Master
⇅ QJM Journal Sync
NameNode 2 STANDBY
• QJM EditLogs Sync
• Checkpoint fsimage
• Failover Automático
Hot-Standby Quorum
4. DataNodes (Racks)
Rack 1 dn-01 :10.11
LIVE
Bloques: B1, B2, B3 (128 MB)
Streaming TCP: :9866
Heartbeat: 3s DC-Rack1
Rack 1 dn-02 :10.12
LIVE
Bloques: B1, B2, B3 (128 MB)
Streaming TCP: :9866
Heartbeat: 3s Simulación Falla
Rack 2 dn-03 :20.13
LIVE
Bloques: B1, B2, B3 (128 MB)
Streaming TCP: :9866
Rack Distante DC-Rack2
Rack 2 dn-04 :20.14
HOT-SPARE
Bloques: Standby (0 B)
Streaming TCP: :9866
Rack Distante Reserva Activa
5. Réplicas Físicas (R=3)
Bloque 1 (128 MB) R=3
Nodos: dn-01, dn-02, dn-03
Integridad: CRC-32 Verificado
Distribución Rack 1 + Rack 2 ✔
Bloque 2 (128 MB) R=3
Nodos: dn-01, dn-02, dn-03
Integridad: CRC-32 Verificado
Distribución Rack 1 + Rack 2 ✔
Bloque 3 (128 MB) R=3
Nodos: dn-01, dn-02, dn-03
Integridad: CRC-32 Verificado
Distribución Rack 1 + Rack 2 ✔
EN VIVO
Listo para iniciar el tránsito de datos o simular falla de nodo.
Saltar Directo a Etapa:
Fase 3-A: ML

Modelado Predictivo de Machine Learning (2 Modelos Analíticos)

Modelo 1: Riesgo de Deuda de Horas

Random Forest AUC 0.99
1. Problema: Postergación sistemática de turnos de recuperación de horas, llegando al fin del convenio con saldos deudores críticos (40-60h) que colapsan RRHH.
2. Objetivo: Reducir en 35% la tasa de convenios finalizados con saldo deudor mediante intervención proactiva a mitad de ciclo.
3. Predicción: Probabilidad de que el practicante incumpla la liquidación total de horas antes del vencimiento (P(Default) > 0.65).
Rol Nombre del Campo Tipo en Machine Learning Descripción y Dominio
Y riesgo_incumplimiento Cualitativa Binaria Target: 1 = Deuda Crítica / Default, 0 = Cumple
X₁ total_horas_adeudadas Cuantitativa Continua Saldo neto acumulado por inasistencias (ej. 42.5 hrs)
X₂ cantidad_faltas_injustificadas Cuantitativa Discreta Conteo entero de inasistencias sin justificar (ej. 4)
X₃ tipo_convenio Cualitativa Nominal Preprofesional (30h) / Profesional (48h) / Voluntario
X₄ tiene_plan_recuperacion Cualitativa Binaria 1 = Plan activo en curso, 0 = Sin solicitud activa
5. Justificación & Plan de Acción Preventivo Protege horas de proyectos y convenios
Riesgo > 75%: Congela tickets Jira/GitHub y cita a reunión de reprogramación sabatina obligatoria.
Riesgo 50%-75%: Alerta automática Discord con fechas límite y turnos de compensación disponibles.

Modelo 2: Detección Temprana de Bloqueo

Regresión Logística Acc 100%
1. Problema: Practicantes remotos con parálisis técnica en módulos complejos demoran 3-4 días en pedir auxilio, arriesgando sprints y deserción.
2. Objetivo: Detectar parálisis técnica en < 48 horas y reducir la deserción formativa en un 40%.
3. Predicción: Predecir parálisis formativa crítica antes del vencimiento del módulo (P(Stuck) > 0.80).
Rol Nombre del Campo Tipo en Machine Learning Descripción y Dominio
Y estado_bloqueado Cualitativa Binaria Target: 1 = Bloqueado / Requiere rescate, 0 = Normal
X₁ tiempo_modulo_horas Cuantitativa Continua Horas acumuladas dedicadas al módulo actual (ej. 18.5 hrs)
X₂ dias_sin_commits Cuantitativa Discreta Días laborables consecutivos sin actividad Git (ej. 3 días)
X₃ curso_tecnologico Cualitativa Nominal Ruta formativa (SpringBoot, React, TypeScript, Git)
X₄ solicito_ayuda_mentor Cualitativa Binaria 1 = Solicitó ticket en SOFI ayuda_puntos, 0 = No solicitó
5. Justificación & Plan de Acción Preventivo Reduce costos de rescate y deserción
Riesgo > 80%: Bot Discord agenda automáticamente Pair Programming (30 min) con mentor senior.
Riesgo 50%-80%: Envío de cápsulas didácticas en LMS y check-in proactivo del líder técnico.
Validación Científica: Modelos serializados en Scikit-Learn (joblib) con Accuracy del 97.7% y 100% sobre 7,111 registros. Inferencia en tiempo real integrada. Inferencia en Vivo en Slide Siguiente ▶
Widget 2

Calculadoras Predictivas de Machine Learning

Inferencia Live (FastAPI / Scikit-Learn Models)

Calculadora 1: Incumplimiento de Horas

RIESGO BAJO
Horas Adeudadas: 15.0 hrs
Faltas Injustificadas: 1 faltas
Días Restantes: 45 días
Convenio:
Probabilidad de Incumplimiento: 18%
Acción: Habilitado para horas formativas regulares.

Calculadora 2: Detección de Bloqueo

NORMAL
Horas en Módulo Actual: 20.0 hrs
Días sin Commits en Git: 2 días
Fallos Rúbrica: 0 intentos
Curso:
Diagnóstico del Sistema:
Estado Normal en Ruta Formativa
El practicante avanza con commits continuos y evaluaciones dentro del margen esperado.
Fase 3-B: OLAP

Modelado Descriptivo OLAP y Tablas Analíticas

dm_balance_asistencia_practicante

9 Campos

Consolidado mensual de asistencia, horas requeridas, tardanzas y pasivo formativo acumulado.

Nombre del Campo Tipo Descripción Corta Origen de Datos
practicante_id Integer Identificador único del practicante en SOFI PostgreSQL (usuarios)
periodo_mes Varchar Mes y año del balance analizado (ej. "2026-08") PostgreSQL (asistencias)
horas_requeridas Float Total horas a cumplir según convenio mensual PostgreSQL (convenios)
horas_asistidas_reales Float Horas netas registradas en conexión y formación Bot Discord / Asistencias
total_tardanzas Integer Registros con ingreso posterior a la tolerancia PostgreSQL (asistencias)
total_inasistencias Integer Días laborables sin registro ni justificación PostgreSQL (asistencias)
horas_recuperadas Float Horas compensadas en turnos extraordinarios PostgreSQL (recuperaciones)
balance_horas Float Saldo neto (reales + recuperadas - requeridas) Cálculo OLAP
estado_laboral Varchar Cumplimiento formativo (Regular / Alerta / Observado) Regla Negocio

dm_rendimiento_capacitacion_telemetria

11 Campos

Cruce multidimensional de avance curricular, calificaciones de mentores y telemetría de commits en Git.

Nombre del Campo Tipo Descripción Corta Origen de Datos
practicante_id Integer Identificador único del practicante evaluado PostgreSQL (usuarios)
curso_nombre Varchar Denominación de la ruta técnica (SpringBoot, Git) LMS / PostgreSQL (cursos)
modulo_tema_actual Varchar Módulo formativo en desarrollo actualmente LMS / PostgreSQL (modulos)
estado_progreso Varchar Situación curricular (finished, in_progress, planned) Telemetría LMS
nota_evaluacion_mentor Float Calificación otorgada en rúbrica técnica (0 - 20) Evaluaciones Mentor SOFI
tuvo_reevaluacion Booleano Indica si requirió segundo intento tras reprobación Rúbricas Mentor SOFI
commits_totales Integer Cantidad de commits registrados en el módulo API GitHub (telemetría)
lineas_codigo_agregadas Integer Volumen neto de líneas añadidas en repositorios API GitHub (telemetría)
pull_requests_aprobados Integer PRs revisados, aprobados y fusionados API GitHub (telemetría)
tiempo_estudio_horas Float Horas invertidas en plataforma formativa Telemetría LMS
nivel_dominio_tecnico Varchar Segmentación de competencia (Básico, Intermedio, Avanzado) Clasificación OLAP
Arquitectura OLAP: Esquema Estrella desnormalizado en PostgreSQL alimentado por pipelines ETL nocturnos para desacoplar consultas de alta agregación. PostgreSQL OLAP
Fase 3-C: NoSQL

Pipelines de Agregación NoSQL en MongoDB

Etapa 1 $match

Filtra perfiles de software activos (Backend y Frontend).

Filtro de Dominio
Etapa 2 $unwind

Descompone el arreglo embebido de cursos y módulos.

Aplanamiento
Etapa 3 $group

Agrupa por tecnología y computa medias, atascados y notas.

Agregación Clave
Etapa 4 $project

Calcula la métrica porcentual de tasa de atascamiento.

Proyección Métrica
Etapa 5 $sort

Ordena descendentemente por mayor fricción y menor nota.

Jerarquía Final
Insight Gerencial Descubierto: El pipeline reveló que el 47.5% de practicantes Backend se estancan en SpringBoot, concentrados en los módulos de JPA/Hibernate y Security JWT, motivando una reestructuración de la ruta formativa.
Widget 3

Inspector del Pipeline de MongoDB (5 Etapas)

Etapa 1: $match Filtra perfiles técnicos.
DOCUMENTO DE ENTRADA (INPUT JSON)

            
DOCUMENTO RESULTANTE (OUTPUT TRAS TRANSFORMACIÓN)

            
Fase 4: Visualización

4 Gráficos Estadísticos Clave (Sección 6.1)

1. Serie Temporal: Horas Reales vs Deuda Acumulada Meta 120h
Recuperación efectiva del déficit mensual hacia el cierre del periodo.
2. Comparativa: Calificación vs Tasa de Atascamiento Fricción Técnica
JavaScript y React concentran la mayor parálisis (>80%) frente a Backend.
3. Dispersión: Telemetría de Commits vs Calificación Mentor Accesible Daltónico
Diferenciación geométrica: >100 commits elimina el riesgo de reevaluación.
4. Barras 100%: Funnel de Avance y Retención Curricular Ranking Conclusión
Orden jerárquico: TypeScript y Node.js lideran con más de 80% de egreso.
Fase 4: Tableros

Dashboards Ejecutivos y Semaforización

Dashboard RRHH: Disciplina & Horas
HR Ops
Tasa Asistencia Neta 92.4% (Meta ≥ 90%)
Pasivo Horas-Hombre 42.0 hrs acumuladas
Verde (< 5h): Regular / Habilitado renovación.
Amarillo (5h - 15h): Alerta / Turno especial sábado.
Rojo (> 15h): Observado / Bloqueo de carta de prácticas.
Dashboard Tech Lead: Rendimiento de Código
Tech Ops
Retención Curricular 81.5% Conclusión
Ratio Commits / PR 6.2 (Rango Óptimo 4-8)
[48h]
Inactividad en Git: Notificación automática vía bot.
[72h]
Parálisis / 2 Fallos: Pair Programming obligatorio con mentor.
[CSI]
Mayor Severidad: SpringBoot (Índice de Severidad = 62.4).
Reducción proyectada de la deserción formativa en un 25% y mitigación de contingencias laborales en SUNAFIL. Retorno de Inversión
Despliegue & Cierre

Orquestación en Docker y Cierre Técnico

Entornos de Acceso
Local: Fedora Linux (`localhost:80` / `localhost:3000`)
Nube: Azure VM (`48.216.216.91:80`)
HDFS NameNode WebUI: `:9870`
Red bigdata_net
postgres_db (:5432)
mongodb_sofi (:27017)
namenode + 3 datanodes
sofi-presentation (:80 / :3000)
Rúbrica Académica
Fase 1: Fuentes y Data Prep
Fase 2: HDFS 128 MB R=3
Fase 3: 2 Predictivas + 2 Descriptivas + Mongo
Fase 4: 4 Gráficos Justificados

Sustentación de Consultoría en Big Data & Business Analytics

APM Inversiones S.A.C. — Plataforma Web de Operaciones y Formación SOFI

Jhefry Cabanillas Casana, Carlos Gago Anaya & Damaris Gutiérrez Macavilca — Consultores Principales