Interromper um pipeline em execução

Se você precisar interromper um job do Dataflow em execução, emita um comando usando a interface de monitoramento do Dataflow ou a interface de linha de comando do Dataflow. Há dois comandos que podem ser emitidos para interromper o job: Cancelar e Drenar.

Como interromper um job usando a IU de monitoramento do Cloud Dataflow

Para interromper um job, selecione-o na lista de jobs da interface de monitoramento do Dataflow. No cartão de informações do job, clique em Interromper job.

Figura 1: um cartão de informações de um job do Dataflow com o botão "Interromper job".

A caixa de diálogo Interromper job será exibida oferecendo opções para fazer isso:

Figura 2: a caixa de diálogo Interromper job com opções "Cancelar" e "Drenar".

Selecione a opção Cancelar ou Drenar conforme apropriado e clique no botão Interromper job.

Cancelar

O uso da opção Cancelar para interromper o job faz com que o serviço do Dataflow cancele o job imediatamente. O serviço interromperá toda a ingestão e o processamento de dados assim que possível e começará imediatamente a limpeza dos recursos do Google Cloud anexados ao job. Isso pode incluir o encerramento de instâncias de worker do Compute Engine e de conexões ativas com coletores ou fontes de E/S.

Como o cancelamento interrompe imediatamente o processamento, é possível perder todos os dados "em trânsito". Dados "em trânsito" referem-se a dados que foram lidos, mas ainda estão sendo processados pelo seu canal. Os dados do pipeline gravados em um coletor de saída antes de você emitir o comando "Cancelar" poderão continuar acessíveis no coletor de saída.

Se a perda de dados não for um problema, use a opção "Cancelar" para interromper ou para garantir que os recursos do Google Cloud associados ao job sejam encerrados o mais rápido possível.

Drenar

O uso da opção Drenar para interromper o job instrui o Dataflow a concluir o job em seu estado atual. O job para de ingerir novos dados de fontes de entrada logo após receber a solicitação de drenagem (normalmente, em alguns minutos). No entanto, o serviço do Dataflow preserva todos os recursos atuais, como instâncias de worker, para concluir o processamento e gravar os dados em buffer no pipeline. Quando todas as operações de processamento e gravação pendentes estiverem concluídas, o serviço do Dataflow limpará os recursos do Google Cloud associados ao job.

Para evitar a perda de dados ao desativar os pipelines, use a opção Drenar para interromper o job.

Efeitos da drenagem de um job

Quando você emite o comando "Drenar", o Dataflow fecha imediatamente qualquer janela em processamento e dispara todos os gatilhos (links em inglês). O sistema não aguarda a conclusão de janelas baseadas em tempo que estejam pendentes. Por exemplo, se o pipeline estiver a 10 minutos de concluir uma janela de duas horas, quando você emitir o comando "Drenar", o Dataflow não esperará o tempo restante para o término da janela. Ele fechará a janela imediatamente com resultados parciais.

A visualização detalhada de transformações do pipeline mostra os efeitos de um comando "Drenar" em andamento:

Figura 3: uma visualização em etapas com a drenagem em andamento. Observe que a marca d'água avançou até o valor máximo.