Informações sobre os passos das tarefas do Dataflow

Na interface de monitorização do Dataflow, o painel Informações do passo mostra informações sobre passos individuais numa tarefa. Um passo representa uma única transformação no seu pipeline. As transformações compostas contêm subpassos.

O painel Informações do passo apresenta as seguintes informações:

  • Métricas para o passo.
  • Informações sobre as coleções de entrada e saída do passo.
  • Que fases correspondem a este passo.
  • Métricas de entrada lateral

Use o painel Informações do passo para compreender o desempenho da tarefa em cada passo e encontrar passos que podem ser potencialmente otimizados.

Veja informações sobre os passos

Para ver as informações dos passos, efetue os seguintes passos:

  1. Na Google Cloud consola, aceda à página Dataflow > Tarefas.

    Aceda a Empregos

  2. Selecione uma tarefa.

  3. Clique no separador Gráfico de tarefas para ver o gráfico de tarefas. O gráfico de tarefas representa cada passo no pipeline como uma caixa.

  4. Clique num passo. As informações sobre o passo aparecem no painel Informações do passo.

  5. Para ver os subpassos de uma transformação composta, clique na seta Expandir nó.

Métricas de passos

O painel Informações do passo mostra as seguintes métricas para o passo.

Marca de água e atraso do sistema

A marca de água do sistema é a data/hora mais recente para a qual todas as horas dos eventos foram totalmente processadas. O atraso da marca cronológica do sistema é o tempo máximo que um item de dados aguarda processamento.

Marca de água e atraso dos dados

A marca d'água de dados é a data/hora que marca o tempo de conclusão estimado da entrada de dados para este passo. O atraso da marca cronológica dos dados é a diferença entre a hora do evento de entrada mais recente e a marca cronológica dos dados.

Tempo entre o início e o fim da tarefa

O tempo real é o tempo aproximado total gasto em todas as linhas de execução em todos os trabalhadores nas seguintes ações:

  • Inicializar o passo
  • A processar dados
  • Reorganizar dados
  • Terminar o passo

Para passos compostos, o tempo real é igual à soma do tempo gasto nos passos dos componentes.

O tempo real pode ajudar a identificar passos lentos e diagnosticar que parte do pipeline está a demorar mais tempo do que o necessário.

Estado do gargalo

Se o Dataflow detetar um gargalo, é apresentado um alerta, juntamente com a causa, se for conhecida. Para mais informações, consulte o artigo Resolva problemas de gargalos.

Latência máxima de operação

A latência máxima da operação é o tempo máximo gasto neste passo para processar mensagens recebidas ou expirações de janelas. Esta métrica é medida de forma agregada em passos fundidos numa única fase, pelo que o valor representa a fase inteira.

Paralelismo de chaves

O paralelismo de chaves é o número aproximado de chaves em utilização para o tratamento de dados neste passo.

Coleções de entrada/saída

O painel Informações do passo mostra as seguintes informações sobre cada uma das coleções de entrada e saída no passo:

  • Gráfico de débito. Este gráfico mostra o débito da coleção. Pode ver o gráfico como elementos por segundo ou como bytes por segundo. Para mais informações sobre esta métrica, consulte o artigo Débito.

  • A quantidade de elementos adicionados à coleção.

  • Tamanho estimado da recolha, em bytes.

Fases otimizadas

Um estágio representa uma única unidade de trabalho realizada pelo Dataflow. Quando seleciona um passo no gráfico de tarefas, o painel Informações do passo mostra os nomes das fases que executam este passo, juntamente com o estado atual, como em execução, parado ou concluído com êxito.

Para ver mais informações sobre as fases da tarefa, use o separador Detalhes da execução.

Métricas de entrada lateral

Uma entrada lateral é uma entrada adicional à qual uma transformação pode aceder sempre que processa um elemento. Se uma transformação criar ou consumir uma entrada lateral, o painel Informações laterais mostra métricas para a recolha de entradas laterais.

Se uma transformação composta criar ou consumir uma entrada lateral, expanda a transformação composta até ver a subtransformação específica que cria ou consome a entrada lateral. Selecione essa subtransformação para ver as métricas de entrada lateral.

Transformações que criam uma entrada lateral

Se uma transformação criar uma coleção de entradas laterais, a secção Métricas de entrada lateral apresenta o nome da coleção, juntamente com as seguintes métricas:

  • Tempo gasto a escrever: o tempo gasto a escrever a coleção de entrada lateral.
  • Bytes escritos: o número total de bytes escritos na coleção de entrada lateral.
  • Tempo e bytes lidos da entrada lateral: uma tabela que contém métricas adicionais para todas as transformações que consomem a coleção de entrada lateral, denominada consumidores de entrada lateral.

A tabela Tempo e bytes lidos da entrada lateral contém as seguintes informações para cada consumidor de entrada lateral:

  • Side input consumer: o nome da transformação do side input consumer.
  • Tempo passado a ler: o tempo que este consumidor passou a ler a coleção de entradas laterais.
  • Bytes lidos: o número de bytes que este consumidor leu da coleção de entradas laterais.

A imagem seguinte mostra as métricas de entrada secundárias para uma transformação que cria uma coleção de entrada secundária:

Métricas de entrada lateral apresentadas no painel Informações do passo

O gráfico de tarefas tem uma transformação composta expandida (MakeMapView). A subtransformação que cria a entrada lateral (CreateDataflowView) está selecionada e as métricas de entrada lateral estão visíveis no painel Informações do passo.

Transformações que consomem entradas laterais

Se uma transformação consumir uma ou mais entradas laterais, a secção Side Input Metrics apresenta a tabela Time & bytes read from side input. Esta tabela contém as seguintes informações para cada coleção de entradas laterais:

  • Coleção de entradas laterais: o nome da coleção de entradas laterais.
  • Tempo passado a ler: o tempo que a transformação passou a ler esta coleção de entrada lateral.
  • Bytes lidos: o número de bytes que a transformação leu desta coleção de entradas laterais.

A imagem seguinte mostra as métricas de entrada lateral para uma transformação que lê a partir de uma coleção de entrada lateral.

Métricas de entrada lateral apresentadas no painel Informações do passo

A transformação JoinBothCollections lê a partir de uma coleção de entradas secundárias. JoinBothCollections está selecionado no gráfico de tarefas e as métricas de entrada lateral estão visíveis no painel Informações do passo.

Identifique problemas de desempenho de entradas laterais

As entradas laterais podem afetar o desempenho do pipeline. Quando o pipeline usa uma entrada lateral, o Dataflow escreve a coleção numa camada persistente, como um disco, e as transformações leem a partir desta coleção persistente. Estas leituras e escritas afetam o tempo de execução da tarefa.

A reiteração é um problema de desempenho de entrada secundária comum. Se a entrada lateral PCollection for demasiado grande, os trabalhadores não podem colocar toda a coleção em cache na memória. Como resultado, os trabalhadores têm de ler repetidamente a coleção de entrada lateral persistente.

Na imagem seguinte, as métricas de entrada lateral mostram que o total de bytes lidos da coleção de entrada lateral é muito superior ao tamanho da coleção, que é apresentado como o total de bytes escritos. A recolha de entradas laterais é de 563 MB e a soma dos bytes lidos pelas transformações de consumo é de quase 12 GB.

Um exemplo de reiteração

Para melhorar o desempenho deste pipeline, redesenhe o algoritmo para evitar a iteração ou a obtenção novamente dos dados de entrada secundários. Neste exemplo, o pipeline cria o produto cartesiano de duas coleções. O algoritmo itera através de toda a coleção de entradas laterais para cada elemento da coleção principal. Pode melhorar o padrão de acesso do pipeline agrupando vários elementos da coleção principal. Esta alteração reduz o número de vezes que os trabalhadores têm de ler novamente a recolha de entradas laterais.

Outro problema de desempenho comum pode ocorrer se o seu pipeline realizar uma junção aplicando um ParDo com uma ou mais entradas laterais grandes. Neste caso, os trabalhadores gastam uma grande percentagem do tempo de processamento da operação de junção a ler das coleções de entrada secundárias.

A imagem seguinte mostra as métricas de entrada lateral para este problema:

Um exemplo de uma junção de entrada lateral dispendiosa

A transformação JoinBothCollections tem um tempo de processamento total superior a 18 minutos. Os trabalhadores passam a maioria do tempo de processamento (10 minutos) a ler da coleção de entrada lateral de 10 GB. Para melhorar o desempenho desta pipeline, use CoGroupByKey em vez de entradas laterais.