Información del paso de la tarea de Dataflow

En la interfaz de monitorización de Dataflow, el panel Información del paso muestra información sobre los pasos individuales de una tarea. Un paso representa una sola transformación en tu canalización. Las transformaciones compuestas contienen subpasos.

En el panel Información del paso se muestra la siguiente información:

  • Métricas del paso.
  • Información sobre las colecciones de entrada y salida del paso.
  • Qué fases corresponden a este paso.
  • Métricas de entradas secundarias

Usa el panel Información del paso para saber cómo se comporta tu trabajo en cada paso y para encontrar los pasos que se pueden optimizar.

Ver información de los pasos

Para ver la información de los pasos, sigue estos pasos:

  1. En la Google Cloud consola, ve a la página Dataflow > Trabajos.

    Ir a Tareas

  2. Selecciona un trabajo.

  3. Haz clic en la pestaña Gráfico de trabajos para ver el gráfico de trabajos. El gráfico de tareas representa cada paso de la canalización como un cuadro.

  4. Haz clic en un paso. La información sobre el paso aparece en el panel Información del paso.

  5. Para ver los subpasos de una transformación compuesta, haga clic en la flecha Expandir nodo.

Métricas de pasos

En el panel Información del paso se muestran las siguientes métricas del paso.

Marca de agua y retraso del sistema

La marca de agua del sistema es la marca de tiempo más reciente para la que se han procesado por completo todas las horas de los eventos. El retraso de la marca de agua del sistema es el tiempo máximo durante el cual un elemento de datos ha esperado a procesarse.

Marca de agua de datos y latencia

La marca de agua de datos es la marca de tiempo que indica el momento estimado en el que se terminarán de introducir datos en este paso. El desfase de la marca de agua de los datos es la diferencia entre la hora del evento de entrada más reciente y la marca de agua de los datos.

Tiempo real

El tiempo real es el tiempo total aproximado que se ha dedicado en todos los subprocesos de todos los trabajadores a las siguientes acciones:

  • Inicializando el paso
  • Procesando datos
  • Agrupamiento de datos por clave
  • Finalizar el paso

En los pasos compuestos, el tiempo real es igual a la suma del tiempo empleado en los pasos del componente.

El tiempo real puede ayudarte a identificar los pasos lentos y a diagnosticar qué parte de tu canalización tarda más de lo necesario.

Estado del cuello de botella

Si Dataflow detecta un cuello de botella, se muestra una alerta junto con la causa, si se conoce. Para obtener más información, consulta Solucionar problemas de cuellos de botella.

Latencia máxima de la operación

La latencia máxima de la operación es el tiempo máximo que se dedica a este paso para procesar los mensajes entrantes o los vencimientos de las ventanas. Esta métrica se mide de forma agregada en los pasos combinados en una sola fase, por lo que el valor representa toda la fase.

Paralelismo de claves

El paralelismo de claves es el número aproximado de claves que se usan para procesar datos en este paso.

Colecciones de entrada/salida

El panel Información del paso muestra la siguiente información sobre cada una de las colecciones de entrada y salida del paso:

  • Gráfico de rendimiento. En este gráfico se muestra el rendimiento de la colección. Puedes ver el gráfico como elementos por segundo o como bytes por segundo. Para obtener más información sobre esta métrica, consulta Rendimiento.

  • Número de elementos añadidos a la colección.

  • Tamaño estimado de la colección, en bytes.

Áreas de stage optimizadas

Una fase representa una sola unidad de trabajo que realiza Dataflow. Cuando seleccionas un paso en el gráfico de la tarea, el panel Información del paso muestra los nombres de las fases que realizan este paso, así como el estado actual (por ejemplo, en ejecución, detenido o completado).

Para ver más información sobre las fases de un trabajo, usa la pestaña Detalles de la ejecución.

Métricas de entradas secundarias

Una entrada auxiliar es una entrada adicional a la que puede acceder una transformación cada vez que procesa un elemento. Si una transformación crea o consume una entrada auxiliar, el panel Información auxiliar muestra métricas de la colección de entradas auxiliares.

Si una transformación compuesta crea o usa una entrada auxiliar, amplía la transformación compuesta hasta que veas la subtransformación específica que crea o usa la entrada auxiliar. Selecciona esa subtransformación para ver las métricas de entrada lateral.

Transformaciones que crean una entrada adicional

Si una transformación crea una colección de entradas secundarias, la sección Métricas de entrada secundaria muestra el nombre de la colección junto con las siguientes métricas:

  • Tiempo empleado en la escritura: el tiempo empleado en escribir la colección de entradas secundarias.
  • Bytes escritos: número total de bytes escritos en la colección de entradas secundarias.
  • Tiempo y bytes leídos desde la entrada secundaria: tabla que contiene métricas adicionales de todas las transformaciones que consumen la colección de entradas secundarias, llamadas consumidores de entradas secundarias.

La tabla Tiempo y bytes leídos desde la entrada secundaria contiene la siguiente información de cada consumidor de entrada secundaria:

  • Consumidor de entradas secundarias: el nombre de la transformación del consumidor de entradas secundarias.
  • Tiempo empleado leyendo: el tiempo que ha empleado este consumidor en leer la colección de entradas secundarias.
  • Bytes leídos: número de bytes que ha leído este consumidor de la colección de entradas secundarias.

En la siguiente imagen se muestran las métricas de entrada lateral de una transformación que crea una colección de entradas laterales:

Métricas de entradas secundarias mostradas en el panel de información del paso

El gráfico de trabajo tiene una transformación compuesta ampliada (MakeMapView). Se ha seleccionado la subtransformación que crea la entrada lateral (CreateDataflowView) y las métricas de la entrada lateral se muestran en el panel Información del paso.

Transformaciones que consumen entradas secundarias

Si una transformación consume una o varias entradas secundarias, en la sección Métricas de entrada secundaria se muestra la tabla Tiempo y bytes leídos desde la entrada secundaria. Esta tabla contiene la siguiente información sobre cada colección de entradas secundarias:

  • Colección de entradas secundarias: el nombre de la colección de entradas secundarias.
  • Tiempo empleado leyendo: el tiempo que ha empleado la transformación en leer esta colección de entradas secundarias.
  • Bytes leídos: número de bytes que la transformación ha leído de esta colección de entradas secundarias.

En la siguiente imagen se muestran las métricas de entrada lateral de una transformación que lee de una colección de entrada lateral.

Métricas de entradas secundarias mostradas en el panel de información del paso

La transformación JoinBothCollections lee de una colección de entradas secundarias. JoinBothCollections está seleccionado en el gráfico de la tarea y las métricas de entrada lateral se muestran en el panel Información del paso.

Identificar problemas de rendimiento de entradas secundarias

Las entradas secundarias pueden afectar al rendimiento de tu canalización. Cuando tu canalización usa una entrada auxiliar, Dataflow escribe la colección en una capa persistente, como un disco, y tus transformaciones leen de esta colección persistente. Estas lecturas y escrituras afectan al tiempo de ejecución de tu trabajo.

La reiteración es un problema habitual de rendimiento de las entradas secundarias. Si tu entrada auxiliar PCollectiones demasiado grande, los trabajadores no podrán almacenar en caché toda la colección en la memoria. Por lo tanto, los trabajadores deben leer repetidamente la colección de entradas laterales persistentes.

En la siguiente imagen, las métricas de entrada auxiliar muestran que el total de bytes leídos de la colección de entrada auxiliar es mucho mayor que el tamaño de la colección, que se muestra como el total de bytes escritos. La colección de entradas secundarias es de 563 MB y la suma de los bytes leídos por las transformaciones de consumo es de casi 12 GB.

Ejemplo de reiteración

Para mejorar el rendimiento de esta canalización, rediseña el algoritmo para evitar iterar o volver a obtener los datos de entrada lateral. En este ejemplo, la canalización crea el producto cartesiano de dos colecciones. El algoritmo itera en toda la colección de entradas secundarias por cada elemento de la colección principal. Puedes mejorar el patrón de acceso de la canalización agrupando varios elementos de la colección principal. Este cambio reduce el número de veces que los trabajadores deben volver a leer la colección de entradas laterales.

Otro problema de rendimiento habitual puede producirse si tu canal realiza una unión aplicando un ParDo con una o varias entradas laterales grandes. En este caso, los trabajadores dedican un gran porcentaje del tiempo de procesamiento de la operación de unión a leer las colecciones de entrada lateral.

En la siguiente imagen se muestran las métricas de entrada auxiliar de este problema:

Ejemplo de una combinación de entrada lateral costosa

La transformación JoinBothCollections tiene un tiempo de procesamiento total de más de 18 minutos. Los trabajadores dedican la mayor parte del tiempo de procesamiento (10 minutos) a leer de la colección de entradas laterales de 10 GB. Para mejorar el rendimiento de esta pipeline, usa CoGroupByKey en lugar de entradas secundarias.