El caso

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 —.

1 · Modelo relacional

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.

Así 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.

2 · Integración de fuentes (ETL)

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.

Por fuente

Motivos de cuarentena

Reglas de calidad sobre los datos cargados

Reglas de negocio que el esquema no puede expresar. Están escritas en SQL dentro del catálogo y se ejecutan en cada carga.

3 · Protección de datos personales

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.

Principios (art. 3)
Licitud y lealtad, finalidad, proporcionalidad, calidad, responsabilidad, seguridad, transparencia e información, y confidencialidad.
Derechos del titular
Acceso, rectificación, supresión y oposición; portabilidad (art. 9), bloqueo del tratamiento (art. 8 ter) y no ser objeto de decisiones automatizadas (art. 8 bis).
Datos sensibles
Entre otros, los relativos a la salud, al perfil biológico humano y los biométricos, y los que revelan origen étnico o situación socioeconómica.
Niños, niñas y adolescentes (art. 16 quáter)
Su tratamiento atiende a su interés superior y a su autonomía progresiva; los datos de un niño o niña se tratan con la autorización de quien tiene su cuidado personal.
Vulneraciones (art. 14 sexies)
Se reportan a la Agencia por los medios más expeditos posibles y sin dilaciones indebidas, cuando hay riesgo razonable para los titulares.
Evaluación de impacto (art. 15 ter)
Para tratamientos que probablemente impliquen un alto riesgo para los titulares.
Modelo de prevención (art. 49)
Voluntario; si se adopta, incluye la designación de un delegado de protección de datos.
Multas (art. 35)
Leves hasta 5.000 UTM, graves hasta 10.000 UTM y gravísimas hasta 20.000 UTM.

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.

Cómo lo aplica el modelo

Principio u obligaciónMedida concreta en acervo
FinalidadCada consentimiento se registra por finalidad específica; la extracción para estudios solo toma a quien consintió esa finalidad.
ProporcionalidadEl 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 confidencialidadIdentidad y salud en tablas propias, con perfiles de acceso por rol; seudonimización con HMAC y clave guardada aparte.
CalidadValidación de RUT con dígito verificador, dominios cerrados y cuarentena de lo inválido.
ResponsabilidadRegistro de tratamientos y catálogo con dueño y custodio por dataset, verificados en cada carga.
Niños, niñas y adolescentesEl ETL rechaza el consentimiento de un niño o niña que no otorgó su representante.
Derechos del titularLas solicitudes se registran con su derecho y su estado; una regla de calidad avisa las abiertas sobre un umbral interno.

Perfiles de acceso

Quién lee qué, derivado del catálogo. Un test falla si un rol sin autorización llega a un dataset con datos sensibles.

Registro de actividades de tratamiento

Datos para estudios, seudonimizados

4 · Integración por API REST

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…

Ver la petición y la respuesta

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.

5 · Repositorio documental

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.

Abrir el catálogo →

Portafolio

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

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.

Ver centinela → GitHub

El taller

consulta

SQL, perfilado y gráficos sobre CSV, Parquet o Excel, sin que el archivo salga de tu equipo.

Abrir consulta → GitHub

La integración

cuadratura

Nómina contra SAP: rechazos, asiento de carga, reclasificaciones y un puente que cierra en $0.

Abrir cuadratura → GitHub

El gobierno de datos Estás aquí

acervo

Modelo relacional, protección de datos personales, API REST y catálogo de metadatos.

Volver al inicio ↑ GitHub

Acerca de

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.

LinkedIn · GitHub