Conceptos básicos de la canalización de transmisión

Si eres nuevo en canalizaciones de datos de transmisión y en SQL de Cloud Dataflow, familiarízate con las colecciones, las ventanas, las marcas de agua y los activadores.

Tipos de colecciones

Una PCollection (o colección) representa un conjunto de datos de elementos múltiples que puede distribuirse y que actúa como los datos de la canalización. Las transformaciones de canalización utilizan colecciones como entradas y salidas para cada paso en tu canalización. Una colección puede contener un conjunto de datos delimitado de un tamaño fijo, o un conjunto de datos no delimitado de una fuente de datos que se actualiza continuamente, como Cloud Pub/Sub.

Para una colección delimitada, las operaciones de agrupación juntan todos los elementos que tienen la misma clave dentro de toda la colección. Sin embargo, con una colección no delimitada, es imposible recopilar todos los elementos. La fuente de datos que se actualiza de manera continua agrega constantemente nuevos elementos y es posible que haya infinitos elementos (a menudo se los denomina datos de transmisión).

Funciones de ventana y de sistema de ventanas

Un Sistema de ventanas permite la agrupación de colecciones no delimitadas mediante la división de la colección en ventanas según las marcas de tiempo de los elementos individuales. Cada ventana contiene un número finito de elementos. Las operaciones de agrupación funcionan implícitamente por ventana. Las operaciones de agrupación procesan cada colección como una sucesión de múltiples ventanas finitas, aunque toda la colección puede ser de tamaño no delimitado.

Una función de sistema de ventanas especifica cómo asignar elementos a una ventana inicial y cómo combinar ventanas de elementos agrupados. Hay tres funciones de sistema de ventanas compatibles:

  • Ventanas de saltos de tamaño constante (llamadas ventanas fijas en Apache Beam)
  • Ventanas de salto (llamadas ventanas deslizantes en Apache Beam)
  • Ventanas de sesión

Ventanas de saltos de tamaño constante

La forma más simple del sistema de ventanas es las ventanas de saltos de tamaño constante. Una ventana de saltos de tamaño constante representa un intervalo de tiempo que no se superpone y de duración coherente en el flujo de datos. Por ejemplo, si tus ventanas están configuradas con una duración de cinco minutos: todos los elementos en tu colección no delimitada con valores de marca de tiempo desde 0:00:00 hasta (pero no incluye) 0:05:00 pertenecen a la primera ventana, los elementos con valores de marca de tiempo desde 0:05:00 hasta (pero no incluye) 0:10:00 pertenecen a la segunda ventana, y así sucesivamente.

Una imagen que muestra ventanas de saltos de tamaño constante, 30 segundos de duración

Figura 1: Ventanas de saltos de tamaño constante, 30 segundos de duración.

Ventanas de salto

El sistema de ventanas de salto también representa intervalos de tiempo en el flujo de datos; sin embargo, las ventanas de salto pueden superponerse. Por ejemplo, cada ventana puede capturar cinco minutos de datos, pero una nueva ventana comienza cada diez segundos. La frecuencia con la que comienzan las ventanas de salto se denomina período. Por lo tanto, nuestro ejemplo tendría una duración de ventana de cinco minutos y un período de diez segundos.

Debido a que se superponen varias ventanas, la mayoría de los elementos de un conjunto de datos pertenecen a más de una ventana. El sistema de ventanas de salto es útil para tomar promedios de ejecución de datos. En nuestro ejemplo, puedes calcular un promedio de ejecución de datos de los últimos minutos, que se actualiza cada treinta segundos.

Una imagen que muestra ventanas de salto con una duración de ventana de 1 minuto y un período de ventana de 30 segundos

Figura 2: Ventanas de salto con una duración de ventana de 1 minuto y un período de ventana de 30 segundos.

Ventanas de sesión

Las ventanas de sesión son ventanas que contienen elementos que se encuentran dentro de una cierta duración de intervalo de otro elemento. El sistema de ventanas de sesión se aplica por clave y es útil para los datos que se distribuyen irregularmente con respecto al tiempo. Por ejemplo, un flujo de datos que representa la actividad del mouse del usuario puede tener largos períodos de inactividad intercalados con altas concentraciones de clics. Si los datos llegan después del tiempo mínimo de duración de intervalo especificado, esto inicia el comienzo de una nueva ventana.

Una imagen que muestra ventanas de sesión con una duración de intervalo mínima

Figura 3: Ventanas de sesión con una duración de intervalo mínima. Cada clave de datos tiene diferentes ventanas, según su distribución de los datos.

Marcas de agua

Las marcas de agua son la noción de cuándo el sistema espera que todos los datos en una determinada ventana hayan llegado a la canalización. Cloud Dataflow rastrea las marcas de agua porque no se garantiza que los datos lleguen en orden de tiempo o en intervalos predecibles. Además, no hay garantías de que los eventos de datos aparezcan en la canalización en el mismo orden en que se generaron. Después de que la marca de agua progresa más allá del final de una ventana, cualquier elemento adicional que llegue con una marca de tiempo en esa ventana se considera información tardía.

Activadores

Los activadores determinan cuándo emitir resultados agregados a medida que llegan los datos. Para los datos delimitados, los resultados se emiten luego de que se han procesado todas las entradas. Para los datos no delimitados, los resultados se emiten cuando la marca de agua pasa el final de la ventana, lo que indica que el sistema cree que se han procesado todos los datos de entrada para esa ventana.

Qué sigue

¿Te sirvió esta página? Envíanos tu opinión:

Enviar comentarios sobre…

¿Necesitas ayuda? Visita nuestra página de asistencia.