Información del paso del trabajo de Dataflow

En la interfaz de supervisión de Dataflow, el panel Step info muestra información sobre los pasos individuales de un trabajo. 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:

  • Son las métricas del paso.
  • Es información sobre las colecciones de entrada y salida del paso.
  • Etapas que corresponden a este paso.
  • Son las métricas de entradas complementarias.

Usa el panel Step info para comprender el rendimiento de tu trabajo en cada paso y encontrar los pasos que se pueden optimizar.

Cómo ver la información del paso

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

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

    Ir a Trabajos

  2. Selecciona un trabajo.

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

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

  5. Para ver los pasos secundarios de una transformación compuesta, haz clic en la flecha Expandir nodo.

Métricas de los 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 procesaron por completo todos los tiempos de eventos. El retraso de la marca de agua del sistema es el tiempo máximo que un elemento de datos ha estado esperando procesamiento.

Marca de agua y lapso de tiempo de los datos

La marca de agua de datos es la marca de tiempo que indica la hora de finalización estimada de la entrada de datos para este paso. El retraso de la marca de agua de datos es la diferencia entre la hora del evento de entrada más reciente y la marca de agua de datos.

Tiempo

El tiempo es el tiempo aproximado total empleado en todos los subprocesos en todos los trabajadores para las siguientes acciones:

  • Inicialización del paso
  • Procesamiento de datos
  • Redistribución de datos
  • Finalización del paso

En el caso de los pasos compuestos, el tiempo real equivale a la suma del tiempo empleado en los pasos que los integran.

El tiempo puede ayudarte a identificar pasos lentos y a diagnosticar a qué parte de tu canalización le lleva más tiempo del que debería.

Latencia máxima de la operación

La latencia máxima de la operación es el tiempo máximo que se dedica en este paso para procesar mensajes entrantes o vencimientos de ventanas. Esta métrica se mide de manera no individualizada en los pasos fusionados en una sola etapa, por lo que el valor representa toda la etapa.

Colecciones de entrada y 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 capacidad de procesamiento. En este gráfico, se muestra la capacidad de procesamiento 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 Capacidad de procesamiento.

  • Es el recuento de los elementos agregados a la colección.

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

Etapas optimizadas

Una etapa representa una sola unidad de trabajo que realiza Dataflow. Cuando seleccionas un paso en el grafo de trabajo, el panel Información del paso muestra los nombres de las etapas que realizan este paso, junto con el estado actual, como en ejecución, detenido o sin errores.

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

Métricas de entradas complementarias

Una entrada lateral es una entrada adicional a la que una transformación puede acceder cada vez que procesa un elemento. Si una transformación crea o consume una entrada complementaria, el panel Side Info muestra las métricas de la colección de entrada complementaria.

Si una transformación compuesta crea o consume una entrada complementaria, expande la transformación compuesta hasta que veas la subtransformación específica que crea o consume la entrada complementaria. Selecciona esa subtransformación para ver las métricas de entradas complementarias.

Transformaciones que crean una entrada complementaria

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

  • Time spent writing: (Tiempo dedicado a la escritura) el tiempo de ejecución empleado para escribir la colección de entradas complementarias.
  • Bytes written: (Bytes escritos) la cantidad total de bytes escritos en la colección de entradas complementarias.
  • Tiempo y bytes de la lectura de entradas complementarias: una tabla que contiene métricas adicionales de todas las transformaciones que consumen la colección de entradas complementarias llamada consumidores de entradas complementarias.

La tabla de Tiempo y bytes leídos de las entradas complementarias contiene la información siguiente para cada consumidor de entrada complementaria:

  • Side input consumer: (Consumidor de entradas complementarias): nombre de la transformación del consumidor de entradas complementarias
  • Tiempo dedicado a la escritura: tiempo que este consumidor emplea en leer la colección de entradas complementarias.
  • Bytes read: (Bytes leídos) cantidad de bytes que este consumidor lee de la colección de entradas complementarias.

En la siguiente imagen, se muestran las métricas de entradas complementarias para una transformación que crea una colección de entrada complementaria:

Métricas de entradas complementarias que se muestran en el panel de información del paso

El gráfico de trabajo tiene una transformación compuesta expandida (MakeMapView). Se selecciona la subtransformación que crea la entrada complementaria (CreateDataflowView) y las métricas de entradas complementarias son visibles en el panel Información del paso.

Transformaciones que consumen entradas complementarias

Si una transformación consume una o más entradas complementarias, la sección Métricas de entradas complementarias muestra la tabla Tiempo y bytes leídos de las entradas complementarias. Esta tabla contiene la siguiente información para cada colección de entrada complementaria:

  • Colección de entrada complementaria: nombre de la colección de la entrada complementaria.
  • Tiempo dedicado a la escritura: tiempo que la transformación emplea en leer la colección de entradas complementarias.
  • Bytes leídos: cantidad de bytes que la transformación lee de la colección de entradas complementarias.

En la siguiente imagen, se muestran las métricas de entradas complementarias para una transformación que lee desde una colección de entrada complementaria.

Métricas de entradas complementarias que se muestran en el panel de información del paso

La transformación JoinBothCollections lee desde una colección de entrada complementaria. JoinBothCollections está seleccionado en el gráfico de trabajo, y las métricas de entradas complementarias son visibles en el panel Información del paso.

Identifica los problemas de rendimiento de las entradas complementarias

Las entradas complementarias pueden afectar el rendimiento de tu canalización. Cuando tu canalización usa una entrada complementaria, Dataflow escribe la colección en una capa persistente, como un disco, y tus transformaciones leen de esa colección persistente. Estas operaciones de lectura y escritura afectan el tiempo de ejecución de tu trabajo.

Reiteración es un problema de rendimiento de entrada complementaria común. Si tu entrada complementaria PCollection es demasiado grande, los trabajadores no pueden almacenar en caché toda la colección en la memoria. En consecuencia, los trabajadores deben leer de la colección de entradas complementarias persistente varias veces.

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

Ejemplo de reiteración

Si deseas mejorar el rendimiento de esta canalización, vuelve a diseñar tu algoritmo para evitar la iteración o la recuperación de los datos de la entrada complementaria. En el ejemplo siguiente, la canalización crea el producto cartesiano de dos colecciones. El algoritmo itera a través de toda la colección de entrada complementaria para cada elemento de la colección principal. Puedes mejorar el patrón de acceso de la canalización si agrupas en lotes varios elementos de la colección principal. Este cambio reduce la cantidad de veces que los trabajadores deben volver a leer la colección de entrada complementaria.

Se puede generar otro problema de rendimiento común si tu canalización realiza una unión mediante la aplicación de un ParDo con una o más entradas complementarias grandes. En este caso, los trabajadores dedican un alto porcentaje del tiempo de procesamiento a la operación de unión a leer las colecciones de entradas complementarias.

En la siguiente imagen, se muestran las métricas de entradas complementarias para este problema:

Ejemplo de una unión de entrada secundaria 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 desde la colección de entrada complementaria de 10 GB. Si deseas mejorar el rendimiento de esta canalización, usa CoGroupByKey en lugar de las entradas complementarias.