Regiões do Dataflow

A região do Dataflow armazena e processa metadados sobre o job do Dataflow e implanta e controla os workers do Dataflow.

Os nomes das regiões seguem uma convenção padrão com base nos nomes das regiões do Compute Engine. Por exemplo, o nome da região central dos EUA é us-central1.

Esse recurso está disponível em todas as regiões em que o Dataflow é compatível. Para ver os territórios disponíveis, consulte Locais do Dataflow.

Diretrizes para escolher uma região

É obrigatório especificar uma região em um job do Dataflow.

Segurança e compliance

Talvez seja necessário restringir o processamento de jobs do Dataflow a uma região geográfica específica devido às necessidades de segurança e conformidade do seu projeto.

Localidade dos dados

Minimize os custos de latência de rede e de transporte de rede executando um job do Dataflow na mesma região que suas fontes, coletores, locais de arquivos de preparo e de arquivos temporários. Se você usar fontes, coletores, locais de arquivos de preparo ou de arquivos temporários localizados fora da região do job, seus dados poderão ser enviados entre regiões.

Na execução de um pipeline, os dados do usuário são manipulados apenas pelo pool de workers do Dataflow, e a movimentação dos dados é restrita aos caminhos de rede que conectam os workers do Dataflow no pool.

Embora os dados do usuário sejam processados com rigor pelos workers do Dataflow na respectiva região geográfica atribuída, as mensagens de registro do pipeline são armazenadas no Cloud Logging, que tem uma única presença global no Google Cloud.

Se você precisar de mais controle sobre o local das mensagens de registro do pipeline, faça o seguinte:

  1. Crie um filtro de exclusão para o coletor do roteador de registros _Default para impedir que os registros do Dataflow sejam exportados para o bucket de registro _Default.
  2. Crie um bucket de registros na região da sua escolha.
  3. Configure um novo coletor do roteador de registros que exporte os registros do Dataflow para o novo bucket de registros.

Para saber mais sobre como configurar a geração de registros, consulte Visão geral do roteamento e armazenamento e Visão geral do roteamento de registros.

Observações sobre fontes comuns de jobs no Dataflow:

  • Ao usar um bucket do Cloud Storage como origem, recomendamos executar operações de leitura na mesma região do bucket.
  • Os tópicos do Pub/Sub, quando publicados no endpoint global do Pub/Sub, são armazenados na região do Google Cloud mais próxima. No entanto, é possível modificar a política de armazenamento de tópicos para uma região específica ou um conjunto de regiões. Da mesma forma, os tópicos do Pub/Sub Lite são compatíveis apenas com armazenamento zonal.

Resiliência e separação geográfica

Isole suas operações normais do Dataflow de interrupções que poderiam ocorrer em outras regiões geográficas ou planeje sites alternativos para a continuidade do negócio em caso de um desastre em escala regional.

Nos seus planos de continuidade de negócios e recuperação de desastres, recomendamos incorporar detalhes das fontes e dos coletores usados com seus jobs do Dataflow. A equipe de vendas do Google Cloud pode ajudar você a atender a esses requisitos.

Posicionamento regional

Por padrão, a região selecionada configura o pool de workers do Dataflow para utilizar todas as zonas disponíveis na região. A seleção de zona é calculada para cada worker no momento da criação, otimizando a aquisição de recursos e a utilização de reservas não usadas.

O posicionamento regional oferece benefícios como:

  • Disponibilidade de recursos aprimorada: os jobs do Dataflow são mais resilientes a erros de disponibilidade de recursos zonais, porque os workers podem continuar a ser criados em outras zonas com disponibilidade restante.
  • Maior confiabilidade: em caso de falha na zona, os jobs do Dataflow podem continuar em execução, porque os workers são recriados em outras zonas.

Considere as seguintes limitações:

  • O posicionamento regional oferece suporte apenas para jobs que usam o Streaming Engine ou o Dataflow Shuffle. Os jobs que desativaram o Streaming Engine ou o Dataflow Shuffle não podem usar o posicionamento regional.
  • O posicionamento regional se aplica apenas a VMs, e não aos recursos de back-end relacionados ao Streaming Engine e ao Dataflow Shuffle.
  • As VMs não são replicadas em várias zonas. Se uma VM ficar indisponível, por exemplo, os itens de trabalho dela serão considerados perdidos e serão reprocessados por outra VM.
  • Se ocorrer um esgotamento em toda a região, o serviço do Dataflow não poderá criar mais VMs.

Posicionamento de zona automático

Para jobs não compatíveis com posicionamento regional, a melhor zona na região é selecionada automaticamente, com base na capacidade de zona disponível no momento da solicitação de criação do job. A seleção automática de zonas ajuda a garantir que os workers do job sejam executados na melhor zona para o job.

Como o job está configurado para ser executado em uma única zona, a operação poderá falhar com um erro de disponibilidade de recursos zonais se não houver recursos suficientes do Compute Engine.

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

Especifique uma Região

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

A interface de linha de comando do Dataflow também é compatível com a opção --region para especificar regiões.

Substituir a região ou a zona do worker

Por padrão, quando você envia um job com a opção --region, os workers são atribuídos automaticamente a zonas na região ou à única melhor zona na região, dependendo do tipo de job.

Nos casos em que você quer garantir que os workers do seu job do Dataflow sejam executados estritamente em uma zona específica, especifique a zona usando a opção de pipeline a seguir. Esse padrão de uso é incomum para jobs do Dataflow.

Java

--workerZone

Python

--worker_zone

Go

--worker_zone

Em todos os outros casos, não recomendamos substituir o local do worker. A tabela de cenários comuns contém recomendações de uso para essas situações.

Como o job está configurado para ser executado em uma única zona, a operação poderá falhar com um erro de disponibilidade de recursos zonais se não houver recursos suficientes do Compute Engine.

Execute o comando gcloud compute regions list para ver uma lista de regiões e zonas disponíveis para implantação do worker.

Cenários comuns

A tabela a seguir contém recomendações de uso para cenários comuns.

Cenário Recomendação
Quero usar uma região compatível e não tenho preferência de zona nela. Nesse caso, a melhor zona é selecionada automaticamente com base na capacidade disponível. Use --region para especificar uma região do job. Isso garante que o Dataflow gerencie seu job e processe os dados na região especificada.
Preciso que o processamento do worker ocorra em uma zona específica de uma região. Especifique as duas regiões --region e umas destas zonas: --workerZone ou --worker_zone.

Use --region para especificar a região do job. Use --workerZone ou --worker_zone para definir a zona específica dentro dessa região.