Dataflow Shuffle para tarefas em lote

As tarefas em lote usam o Dataflow Shuffle por predefinição. A ordenação aleatória do Dataflow move a operação de ordenação aleatória das VMs de trabalho para o back-end do serviço Dataflow.

As informações nesta página aplicam-se a tarefas em lote. As tarefas de streaming usam um mecanismo de aleatorização diferente, denominado aleatorização de streaming.

Acerca da reorganização do Dataflow

  • O Dataflow Shuffle é a operação base por detrás das transformações do Dataflow, como GroupByKey, CoGroupByKey e Combine.
  • A operação de aleatorização do Dataflow divide e agrupa os dados por chave de forma escalável, eficiente e tolerante a falhas.

Vantagens do Dataflow Shuffle

O Dataflow Shuffle baseado em serviços tem as seguintes vantagens:

  • Tempo de execução mais rápido dos pipelines em lote para a maioria dos tipos de tarefas de pipeline.
  • Uma redução nos recursos de CPU, memória e armazenamento do Persistent Disk consumidos nas VMs de trabalho.
  • Escalabilidade automática horizontal melhorada, porque as VMs não contêm dados de mistura e, por isso, podem ser reduzidas mais cedo.
  • Melhor tolerância a falhas, porque uma VM não saudável que contenha dados de mistura aleatória do Dataflow não faz com que toda a tarefa falhe.

Apoio técnico e limitações

  • Esta funcionalidade está disponível em todas as regiões onde o Dataflow é suportado. Para ver as localizações disponíveis, leia o artigo Localizações do Dataflow. Pode haver diferenças de desempenho entre regiões.
  • Os trabalhadores têm de ser implementados na mesma região que a tarefa do Dataflow.
  • Não especifique a opção de pipeline zone. Em alternativa, especifique o elemento region e defina o valor para uma das regiões disponíveis. O Dataflow seleciona automaticamente a zona na região que especificou.

    Se especificar a opção zonepipeline e a definir para uma zona fora das regiões disponíveis, a tarefa do Dataflow devolve um erro. Se definir uma combinação incompatível de region e zone, a sua tarefa não pode usar a ordenação aleatória do Dataflow.

  • Para Python, a ordenação aleatória do Dataflow requer o SDK do Apache Beam para Python versão 2.1.0 ou posterior.

Considerações sobre o tamanho do disco

O tamanho predefinido do disco de arranque para cada tarefa em lote é de 25 GB. Para alguns trabalhos em lote, pode ter de modificar o tamanho do disco. Considere o seguinte:

  • Uma VM de trabalho usa parte dos 25 GB de espaço em disco para o sistema operativo, binários, registos e contentores. Os trabalhos que usam uma quantidade significativa de disco e excedem a capacidade de disco restante podem falhar quando usa a funcionalidade de aleatorização do Dataflow.
  • As tarefas que usam muitas operações de I/O do disco podem ser lentas devido ao desempenho do disco pequeno. Para mais informações sobre as diferenças de desempenho entre os tamanhos dos discos, consulte o artigo Desempenho do disco persistente do Compute Engine.

Para especificar um tamanho do disco maior para uma tarefa de mistura do Dataflow, pode usar o parâmetro --disk_size_gb.

Preços

A maior parte da redução nos recursos de trabalho resulta da transferência do trabalho de mistura para o serviço Dataflow. Por esse motivo, existe um custo associado à utilização da funcionalidade de mistura do Dataflow. Os tempos de execução podem variar de execução para execução. Se estiver a executar um pipeline com prazos importantes, recomendamos que atribua tempo de folga suficiente antes do prazo.