Regiões do Dataflow

A região do Dataflow armazena e processa metadados acerca da sua tarefa do Dataflow, bem como implementa e controla os seus trabalhadores do Dataflow.

Os nomes das regiões seguem uma convenção padrão baseada nos nomes das regiões do Compute Engine. Por exemplo, o nome da região Central US é us-central1.

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.

Diretrizes para escolher uma região

Use as seguintes diretrizes para escolher uma região adequada para o seu trabalho.

Segurança e conformidade

Pode ter de restringir o processamento de tarefas do Dataflow a uma região geográfica específica para dar resposta às necessidades de segurança e conformidade do seu projeto.

Localidade dos dados

Pode minimizar a latência da rede e os custos de transporte de rede executando uma tarefa do Dataflow a partir da mesma região que as respetivas origens, destinos, localizações de ficheiros de preparação e localizações de ficheiros temporários. Se usar origens, destinos, localizações de ficheiros de preparação ou localizações de ficheiros temporários que se encontram fora da região da sua tarefa, os seus dados podem ser enviados entre regiões.

Ao executar um pipeline, os dados do utilizador são processados apenas pelo conjunto de trabalhadores do Dataflow e a movimentação dos dados está restrita aos caminhos de rede que ligam os trabalhadores do Dataflow no conjunto.

Embora os dados do utilizador sejam processados estritamente pelos trabalhadores do Dataflow na respetiva região geográfica atribuída, as mensagens de registo do pipeline são armazenadas no Cloud Logging, que tem uma única presença global emGoogle Cloud.

Se precisar de mais controlo sobre a localização das mensagens de registo do pipeline, pode fazer o seguinte:

  1. Crie um filtro de exclusão para o sink do router de registos _Default para impedir que os registos do Dataflow sejam exportados para o contentor de registos _Default.
  2. Crie um contentor de registos na região à sua escolha.
  3. Configure um novo destino do router de registos que exporte os registos do Dataflow para o novo contentor de registos.

Para saber mais sobre a configuração do registo, consulte os artigos Vista geral do encaminhamento e do armazenamento e Vista geral do encaminhamento de registos.

Notas sobre origens de tarefas comuns do Dataflow:

  • Quando usar um contentor do Cloud Storage como origem, recomendamos que execute operações de leitura na mesma região que o contentor.
  • Os tópicos do Pub/Sub, quando publicados no ponto final do Pub/Sub global, são armazenados na Google Cloud região mais próxima. No entanto, pode modificar a política de armazenamento de tópicos para uma região ou um conjunto de regiões específico. Da mesma forma, os tópicos do Pub/Sub Lite só suportam armazenamento zonal.

Resiliência e separação geográfica

É recomendável isolar as suas operações normais do Dataflow de interrupções que possam ocorrer noutras regiões geográficas. Em alternativa, pode ter de planear sites alternativos para a continuidade do negócio em caso de desastre que afete toda uma região.

Nos seus planos de recuperação de desastres e continuidade de negócios, recomendamos que inclua detalhes das origens e dos destinos usados com os seus trabalhos do Dataflow. A Google Cloud equipa de vendas pode ajudar a trabalhar no sentido de cumprir os seus requisitos.

Posicionamento regional

Por predefinição, a região que selecionar configura o conjunto de trabalhadores do Dataflow para usar todas as zonas disponíveis na região. A seleção de zonas é calculada para cada trabalhador no momento da criação, otimizando a aquisição de recursos e a utilização de reservas não usadas.

O posicionamento regional oferece vantagens como:

  • Disponibilidade de recursos melhorada: as tarefas do Dataflow são mais resilientes a erros de disponibilidade de recursos zonais, porque os trabalhadores podem continuar a ser criados noutras zonas com disponibilidade restante.
  • Fiabilidade melhorada: em caso de falha zonal, os trabalhos do Dataflow podem continuar a ser executados, porque os trabalhadores são recriados noutras zonas.

Aplicam-se as seguintes limitações:

  • O posicionamento regional só é suportado para trabalhos que usam o Streaming Engine ou o Dataflow Shuffle. Os trabalhos que desativaram o Streaming Engine ou o Dataflow Shuffle não podem usar o posicionamento regional.
  • O posicionamento regional aplica-se apenas a VMs e não se aplica a recursos de back-end.
  • As VMs não são replicadas em várias zonas. Se uma VM ficar indisponível, por exemplo, os respetivos itens de trabalho são considerados perdidos e são novamente processados por outra VM.
  • Se ocorrer uma indisponibilidade de stock ao nível de uma região, o serviço Dataflow não pode criar mais VMs.
  • Se ocorrer uma indisponibilidade de stock ao nível da zona numa ou mais zonas na região configurada, o serviço Dataflow pode não conseguir iniciar uma tarefa.

Veja as zonas de recursos de tarefas

As tarefas do Dataflow dependem de recursos internos. Alguns destes recursos de tarefas de back-end são zonais. Se uma única zona falhar e um recurso zonal necessário para a sua tarefa do Dataflow estiver nessa zona, a tarefa pode falhar.

Para saber se uma tarefa falhou devido a uma indisponibilidade zonal, reveja as zonas de serviço que os recursos de back-end da tarefa estão a usar. Esta funcionalidade só está disponível para tarefas do Streaming Engine.

  • Para ver as zonas de serviço naGoogle Cloud consola, use o campo Zonas de serviço no painel Informações da tarefa.

  • Para usar a API para rever as zonas de serviço, use o campo ServiceResources.

Os valores neste campo são atualizados ao longo da duração da tarefa, porque os recursos que a tarefa usa mudam enquanto a tarefa é executada.

Posicionamento automático de zonas

Para tarefas não suportadas para posicionamento regional, a melhor zona na região é selecionada automaticamente com base na capacidade da zona disponível no momento do pedido de criação da tarefa. A seleção automática de zonas ajuda a garantir que os trabalhadores de tarefas são executados na melhor zona para a sua tarefa.

Uma vez que a tarefa está configurada para ser executada numa única zona, a operação pode falhar com um erro de disponibilidade de recursos zonais se não estiverem disponíveis recursos suficientes do Compute Engine. Se ocorrer um esgotamento de stock numa região, pode ver um erro ZONE_RESOURCE_POOL_EXHAUSTED. Pode implementar um ciclo de repetição para iniciar a tarefa quando os recursos estiverem disponíveis.

Além disso, quando uma zona está indisponível, o back-end de streaming também pode ficar indisponível, o que pode resultar na perda de dados.

Especifique uma região

Para especificar uma região para a sua tarefa, defina a opção --region para uma das regiões compatíveis. A opção --region substitui a região predefinida definida no servidor de metadados, no cliente local ou nas variáveis de ambiente.

A interface de linha de comandos do Dataflow também suporta a opção --region para especificar regiões.

Substitua a região ou a zona do trabalhador

Por predefinição, quando envia uma tarefa com a opção --region, os trabalhadores são automaticamente atribuídos a zonas em toda a região ou à melhor zona única na região, consoante o tipo de tarefa.

Nos casos em que quer garantir que os trabalhadores da sua tarefa do Dataflow são executados estritamente numa zona específica, pode especificar a zona através da seguinte opção de pipeline. Este padrão de utilização é invulgar para tarefas do Dataflow.

Esta opção controla apenas a zona usada para os trabalhadores do Dataflow. Não se aplica a recursos de back-end. Os recursos de back-end podem ser criados em qualquer zona na região da tarefa.

Java

--workerZone

Python

--worker_zone

Go

--worker_zone

Para todos os outros casos, não recomendamos a substituição da localização do trabalhador. A tabela de cenários comuns contém recomendações de utilização para estas situações.

Uma vez que a tarefa está configurada para ser executada numa única zona, a operação pode falhar com um erro de disponibilidade de recursos zonais se não estiverem disponíveis recursos suficientes do Compute Engine.

Pode executar o comando gcloud compute regions list para ver uma lista de regiões e zonas disponíveis para a implementação de trabalhadores.

Cenários comuns

A tabela seguinte contém recomendações de utilização para cenários comuns.

Cenário Recomendação
Quero usar uma região suportada e não tenho preferência de zona na região. Neste caso, a melhor zona é selecionada automaticamente com base na capacidade disponível. Use --region para especificar uma região de emprego. Isto garante que o Dataflow gere a sua tarefa e processa os dados na região especificada.
Preciso que o processamento de trabalhadores ocorra numa zona específica de uma região. Especifique --region e --workerZone ou --worker_zone.

Use --region para especificar a região do trabalho. Use --workerZone ou --worker_zone para especificar a zona específica nessa região.