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
eCombine
. - 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 elementoregion
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
zone
pipeline 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 deregion
ezone
, 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.