La vitrina
centinela
Reportes Power BI de control de gestión, personas, compensaciones, pricing, capital de trabajo, contratistas y mantenimiento, con datos sintéticos, el modelo y el DAX a la vista.
Gobierno de datos · modelo, privacidad e integración
por Hernán Elías Sánchez · parte de su portafolio Control de gestión, construido como software
Cómo se ordena la información de una organización que atiende personas: un modelo relacional que no deja entrar datos inválidos, protección de datos personales pensada desde el diseño para la Ley 21.719, integración con una API REST pública y un catálogo que documenta cada tabla y cada columna. Todo se prueba como código.
Organización Ejemplo (100% sintética) presta servicios a personas en 3 sedes y 6 programas: servicios de día, un servicio residencial, programas educativos y un programa de empleo. Su información vive en seis lugares: el sistema de gestión de participantes, una planilla compartida de asistencia, el sistema de RR.HH., el ERP contable, un formulario web de derechos y la configuración institucional. Hay datos de salud y de niños, niñas y adolescentes, así que el orden y la protección de los datos no son opcionales.
Cifras de la carga de ejemplo al corte del —.
Catorce tablas en tercera forma normal y cuatro vistas. Las tablas de identidad y de salud (🔒) están separadas del resto: todo el modelo se relaciona por un identificador sustituto, y solo esas tablas permiten saber quién es quién. El diagrama se genera desde el esquema real, así que no puede quedar desactualizado.
<tabla>_id; los códigos y el RUT
llevan UNIQUE para que no haya duplicados.test_cuarentena_coincide_con_la_verdadCHECK: un valor
fuera de la lista no entra.test_restricciones_del_esquema_rechazan_datos_invalidosdate(), y el egreso nunca antes del
ingreso.test_restricciones_del_esquema_rechazan_datos_invalidosAsí quedan los datos para un tablero: el costo mensual por participante de cada programa, calculado en la vista
v_costo_por_participante.
El DDL completo está en modelo/esquema.sql y corre en SQLite;
se lleva a PostgreSQL, SQL Server o BigQuery cambiando los tipos.
Cada exportación pasa por las mismas etapas: lectura tolerante (RUT con puntos, fechas DD-MM-AAAA, montos con separador de miles, "Sí" escrito a mano), validación con reglas explícitas y carga. Lo que no pasa queda en cuarentena con la fuente, la fila y el motivo, pero sin copiar el contenido, para no duplicar datos personales. Con los datos de ejemplo quedan 14 filas en cuarentena, todas sembradas a propósito.
Reglas de negocio que el esquema no puede expresar. Están escritas en SQL dentro del catálogo y se ejecutan en cada carga.
Ley 21.719, que regula la protección y el tratamiento de los datos personales y crea la Agencia de Protección de Datos Personales. Se publicó el 13 de diciembre de 2024 y entra en vigencia el 1 de diciembre de 2026.
Resumen hecho sobre el texto publicado en la Biblioteca del Congreso Nacional (LeyChile). No es asesoría legal: cada organización debe revisar sus tratamientos con su asesor.
| Principio u obligación | Medida concreta en acervo |
|---|---|
| Finalidad | Cada consentimiento se registra por finalidad específica; la extracción para estudios solo toma a quien consintió esa finalidad. |
| Proporcionalidad | El modelo guarda el tramo de edad, no la fecha de nacimiento, fuera de la tabla de identidad; los estudios reciben solo lo mínimo. |
| Seguridad y confidencialidad | Identidad y salud en tablas propias, con perfiles de acceso por rol; seudonimización con HMAC y clave guardada aparte. |
| Calidad | Validación de RUT con dígito verificador, dominios cerrados y cuarentena de lo inválido. |
| Responsabilidad | Registro de tratamientos y catálogo con dueño y custodio por dataset, verificados en cada carga. |
| Niños, niñas y adolescentes | El ETL rechaza el consentimiento de un niño o niña que no otorgó su representante. |
| Derechos del titular | Las solicitudes se registran con su derecho y su estado; una regla de calidad avisa las abiertas sobre un umbral interno. |
Quién lee qué, derivado del catálogo. Un test falla si un rol sin autorización llega a un dataset con datos sensibles.
Indicadores de Chile desde la API pública de mindicador.cl, consultados ahora desde tu navegador. La UTM de hoy pone en pesos las multas de la ley.
Consultando la API…
GET https://mindicador.cl/api/utm
El cliente en Python, src/indicadores.py, aplica lo que separa una integración robusta de un script que
funciona una vez: tiempo de espera explícito, reintentos con espera exponencial solo ante errores de red o del
servidor, validación del contrato de la respuesta, caché con vencimiento y una muestra de respaldo cuando el
servicio no responde. El transporte es inyectable, así que sus seis tests corren sin red.
El catálogo de metadatos documenta cada dataset: descripción, capa, dueño, custodio, sistema de origen, frecuencia, retención, tratamientos y, por columna, tipo, nulabilidad, claves y nivel de clasificación (público, interno, personal o sensible). El catálogo se contrasta con la base real en cada carga: una columna sin documentar o un dato sensible fuera de una tabla restringida hacen fallar los tests.
Control de gestión, construido como software · sitios de Hernán Elías Sánchez: cada uno muestra una parte del mismo oficio.
La vitrina
Reportes Power BI de control de gestión, personas, compensaciones, pricing, capital de trabajo, contratistas y mantenimiento, con datos sintéticos, el modelo y el DAX a la vista.
El taller
SQL, perfilado y gráficos sobre CSV, Parquet o Excel, sin que el archivo salga de tu equipo.
La integración
Nómina contra SAP: rechazos, asiento de carga, reclasificaciones y un puente que cierra en $0.
El gobierno de datos Estás aquí
Modelo relacional, protección de datos personales, API REST y catálogo de metadatos.
Soy Ingeniero Civil Industrial con 8 años en control de gestión, FP&A y People Analytics. He diseñado la infraestructura de datos de un área de personas, integrando sus sistemas por API, y sé lo que cuesta un dato mal cargado cuando llega al tablero de la dirección. Este proyecto reúne lo que aplico al ordenar datos que identifican personas: modelar bien, validar antes de cargar, proteger desde el diseño y documentar lo que existe.