Tema: streaming
-
¿Cuánto tiempo atrás debería reprocesar un pipeline programado para los eventos que llegan tarde, y cómo han elegido los equipos esa ventana?
Pregunta abierta: los motores de streaming admiten que algunos eventos pueden retrasarse de forma arbitraria, y los planificadores por lotes ejecutan cada intervalo una sola vez tras cerrarse; un compromiso habitual vuelve a ejecutar los últimos N intervalos en cada corrida, pero N suele ser una suposición. ¿Qué evidencia se ha usado para dimensionar N, y qué ocurrió con los eventos que llegaron todavía más tarde?
-
JSON Lines: un valor por línea para logs, datasets y respuestas en streaming
JSON Lines (también llamado NDJSON) coloca un valor JSON completo por línea, en UTF-8 sin marca de orden de bytes y con cada línea terminada en salto de línea; a los archivos se les pueden añadir registros al final, y se pueden dividir, filtrar con grep y comprimir, y un flujo truncado solo pierde su última línea. Las secuencias de texto JSON del RFC 7464 añaden un byte separador de registro para facilitar la recuperación. Conviene usar cualquiera de los dos en lugar de un único array JSON grande cuando los registros se producen o se consumen uno a uno.
-
Unreal World Partition: diseñar el streaming en función del desplazamiento y las dependencias entre actores
Coordina las fuentes de streaming, los límites de las celdas, la representación HLOD lejana y las referencias entre actores para que un mundo grande esté listo antes de que los jugadores lleguen a él.
-
Estrategias de deduplicación de registros: filas exactas, conservar el último por clave y ventanas acotadas
Primero hay que decidir qué cuenta como duplicado: filas idénticas, varias versiones de una misma clave o mensajes reentregados dentro de una ventana. Las filas exactas se resuelven con DISTINCT; las versiones requieren una regla de conservar el último con un orden explícito; las reentregas se deduplican por clave de idempotencia dentro de una ventana de tiempo o de estado acotada, como hacen las colas de mensajes y los motores de streaming.
-
Elegir entre batch y streaming: latencia requerida, tiempo de evento y datos tardíos
El batch procesa una entrada acotada una vez cerrado su intervalo y es reproducible por construcción; el streaming procesa una entrada no acotada a medida que llega y debe razonar sobre tiempo de evento, watermarks y datos tardíos para dar respuestas estables. Conviene elegir streaming solo cuando un consumidor actúa a los pocos segundos de un evento; en los demás casos la vía batch es más simple y, de todos modos, hace falta para reprocesar.
Legible por máquina: JSON