Saltar al contenido

Parte 12 — Analítica, integración y streaming

Sacar los datos del sistema que los produjo sin perder su significado: almacen dimensional, captura de cambios y procesamiento continuo.

4 clases · 13 horas · 17 conceptos · 10 fuentes

Antes de esta parte

Esta parte se apoya en lo trabajado antes. Si vienes de fuera del programa, revisa al menos el vocabulario de:

De qué trata esta parte

Sacar los datos del sistema que los produjo sin perder su significado. La parte parte de una pregunta operativa —por qué la analítica acaba mudándose a otro sistema— y la responde con dos argumentos independientes: el formato de almacenamiento, que decide el orden de magnitud, y la contención, que es el informe mensual compitiendo con las transacciones por el mismo buffer y el mismo disco.

Después viene el modelado dimensional de Kimball, con el grano como primera decisión y la que no se corrige luego sin rehacerlo todo, y las dimensiones de cambio lento, que deciden si el informe del año pasado sigue diciendo lo que decía. Luego la integración: ETL frente a ELT por lo que cada uno hace auditable, la captura de cambios leyendo el registro de transacciones, y el desmontaje de la escritura dual. Y al final el procesamiento continuo, con la distinción fundacional entre tiempo de evento y tiempo de proceso.

La clase 066 conecta directamente con la 046: la captura de cambios funciona porque el registro anticipado que se estudió para la recuperación resulta ser también el flujo de eventos más fiable que el sistema produce.

Al terminar esta parte podrás

  1. Justificar la separación entre OLTP y OLAP con argumentos de formato y de contención.
  2. Diseñar un modelo dimensional declarando el grano y el tipo de cambio lento de cada dimensión.
  3. Elegir entre ETL y ELT y diseñar una carga idempotente que se pueda relanzar.
  4. Explicar por qué la escritura dual es un antipatrón y qué se usa en su lugar.
  5. Distinguir tiempo de evento y de proceso, y decidir qué hacer con los datos que llegan tarde.

Las clases, una por una

#ClaseNivelHorasFuentes
064OLTP frente a OLAP: por qué se separanIntermedio33
065Modelado dimensional: hechos, dimensiones y cambios lentosIntermedio43
066Integración: ETL, ELT, captura de cambios y el registro como nexoAvanzado34
067Streaming: tiempo de evento, ventanas y semántica de entregaAvanzado33

064 — OLTP frente a OLAP: por qué se separan

Intermedio · 3 h · 3 fuentes · requiere 042, 048

Por qué la analítica acaba mudándose a otro sistema, con dos argumentos independientes: el formato de almacenamiento, que decide el orden de magnitud, y la contención, que es la razón operativa —el informe mensual compitiendo con las transacciones por el mismo buffer y el mismo disco.

carga transaccional carga analítica contención formato de almacenamiento

065 — Modelado dimensional: hechos, dimensiones y cambios lentos

Intermedio · 4 h · 3 fuentes · requiere 018, 064

El modelo dimensional de Kimball, con el grano como primera decisión y la que no se corrige después sin rehacerlo todo. Trata las dimensiones de cambio lento como lo que realmente deciden: si el informe del año pasado sigue diciendo lo que decía entonces.

tabla de hechos dimensión grano dimensión de cambio lento

066 — Integración: ETL, ELT, captura de cambios y el registro como nexo

Avanzado · 3 h · 4 fuentes · requiere 046, 065

Mover datos entre sistemas sin perder cambios ni significado. Compara ETL y ELT por lo que cada uno hace auditable, presenta la captura de cambios leyendo el registro de transacciones, y desmonta la escritura dual: escribir a la vez en la base y en la cola no es atómico y tarde o temprano una recibe lo que la otra no.

ETL ELT CDC escritura dual idempotencia de carga

067 — Streaming: tiempo de evento, ventanas y semántica de entrega

Avanzado · 3 h · 3 fuentes · requiere 066

El procesamiento continuo y su distinción fundacional: tiempo de evento frente a tiempo de proceso. La marca de agua permite cerrar una ventana sabiendo que es una apuesta, y la entrega al menos una vez obliga a que el consumidor sea idempotente —el «exactamente una vez» se construye sobre eso, no en lugar de eso.

tiempo de evento marca de agua ventana entrega al menos una vez

Errores frecuentes en esta parte

Cada uno de estos es una creencia habitual y su corrección.

Vocabulario de la parte

Los 17 términos que esta parte introduce. Todos están también en el glosario del programa con sus términos relacionados.

TérminoQué significaSe trabaja en
carga analíticaPocas consultas que recorren millones de filas y agregan unas pocas columnas: OLAP. Favorece almacenamiento columnar, compresión y ejecución vectorizada, y tolera latencias de segundos.064
carga transaccionalMuchas operaciones pequeñas que leen y escriben pocas filas por identificador, con latencia de milisegundos: OLTP. Favorece filas juntas, índices B-Tree y transacciones cortas.064
CDCCaptura de cambios: leer el registro de transacciones del origen para publicar cada `INSERT`, `UPDATE` y `DELETE` como un evento. Frente al muestreo periódico, no pierde cambios intermedios, no requiere columna de marca temporal y no carga el origen con consultas.066
contenciónLo que ocurre cuando la consulta analítica y la transaccional compiten por el mismo buffer, los mismos cerrojos y el mismo disco. Es la razón operativa —antes que la teórica— por la que el informe mensual acaba mudándose a otro sistema.064
dimensiónTabla que describe el contexto por el que se filtra y se agrupa: producto, cliente, tiempo, sucursal. Se desnormaliza a propósito para evitar reuniones en cada consulta, y es donde vive casi todo el significado del modelo. (En la parte 13 la misma palabra designa otra cosa: el número de componentes de un vector.)065
dimensión de cambio lentoTécnica para tratar los atributos que cambian con el tiempo: sobrescribir y perder la historia (tipo 1), o añadir una fila nueva con vigencia y conservarla (tipo 2). Determina si un informe del año pasado sigue diciendo lo que decía entonces.065
ELTCargar los datos en crudo y transformarlos dentro del almacén, con SQL versionado y probado. Es el enfoque dominante desde que el cómputo del almacén es barato, y su ventaja real es que la transformación queda auditable y se puede rehacer.066
entrega al menos una vezGarantía de que ningún mensaje se pierde, admitiendo que alguno se repita. Es la garantía realista de las colas, y por eso el consumidor debe ser idempotente: el «exactamente una vez» de extremo a extremo se construye sobre esto, no en lugar de esto.067
escritura dualQue la aplicación escriba a la vez en la base y en la cola. Parece la solución obvia y es un antipatrón: no hay atomicidad entre los dos destinos, así que tarde o temprano uno recibe lo que el otro no. La alternativa correcta es CDC o el patrón de bandeja de salida.066
ETLExtraer, transformar y luego cargar: la transformación ocurre fuera del destino. Tiene sentido cuando el destino es caro o rígido, o cuando hay que limpiar datos personales antes de que entren.066
formato de almacenamientoCómo se disponen los bytes en disco: por filas o por columnas, comprimidos o no, con o sin estadísticas por bloque. Es la decisión que explica la mayor parte de la diferencia de rendimiento entre OLTP y OLAP, muy por encima del lenguaje de consulta.064
granoQué representa exactamente una fila de la tabla de hechos: ¿una venta, una línea de venta, un resumen diario? Es la primera decisión del modelo dimensional y la que no se puede corregir después sin rehacerlo todo.065
idempotencia de cargaQue reprocesar el mismo lote no duplique ni corrompa el destino, gracias a una clave de negocio y a una operación de fusión. Es la condición para poder relanzar una carga fallida sin auditar a mano lo que había entrado.066
marca de aguaEstimación del sistema sobre hasta qué tiempo de evento ya llegó todo. Es lo que permite cerrar una ventana y emitir el resultado; siempre es una apuesta, y por eso hay que decidir explícitamente qué se hace con lo que llega tarde.067
tabla de hechosTabla central del modelo dimensional: una fila por evento medible, con sus métricas numéricas y sus claves a las dimensiones. Crece indefinidamente y se consulta siempre agregando.065
tiempo de eventoEl instante en que el hecho ocurrió, frente al de proceso, que es cuando el sistema lo vio. Son distintos —un móvil sin cobertura envía tres horas después— y agrupar por el segundo cuando se quería el primero produce informes silenciosamente falsos.067
ventanaRecorte temporal sobre el que se agrega un flujo: fija, deslizante o de sesión. Es lo que convierte un flujo infinito en resultados finitos que se pueden emitir.067

Fuentes usadas en esta parte

10 obras distintas sostienen lo que se afirma en estas 4 clases.

Otras partes