Visão geral do particionamento geográfico

Nesta página, apresentamos e explicamos como o particionamento geográfico funciona no Spanner.

O Spanner oferece configurações de instâncias regionais e multirregionais, que permitem replicar seus dados em localizações geográficas. Com o particionamento geográfico, você pode segmentar e armazenar linhas na tabela do banco de dados em diferentes configurações de instâncias.

Benefícios e casos de uso

Os benefícios do particionamento geográfico incluem os seguintes:

  • Reduz a latência de gravação e de leitura forte, permitindo armazenar os dados na mesma localização geográfica da consulta.

  • Otimiza os custos para cargas de trabalho globais assimétricas (por exemplo, usando uma partição us-central1 com 10 nós e uma partição asia-south1 com 2 nós).

Confira a seguir casos de uso comuns:

  • Dados relacionados ao usuário: particionar geograficamente dados relacionados ao usuário para processar e armazenar dados em uma região mais próxima do usuário.

  • Dados localizados: informações específicas do local, como trânsito e eventos especiais.

Como funciona o particionamento geográfico

Todas as instâncias do Spanner têm uma partição de instância principal que é chamada de partição default. Se você não criar partições adicionais, todos os objetos do banco de dados serão armazenados na partição padrão, que está no mesmo local da configuração da instância.

Para particionar os dados em um banco de dados, crie mais partições na instância. Essas partições criadas pelo usuário têm a própria configuração (regional ou multirregional) e contagem de nós. Crie seu banco de dados como faria normalmente. Seu banco de dados pode interagir com as partições criadas na mesma instância. Em seguida, crie posições no banco de dados associadas à partição. Por fim, você pode criar tabelas de posicionamento que tenham um atributo de chave de posicionamento. É preciso usar a chave de colocação nas instruções DML para especificar em qual partição os dados da linha residem. Se você criar tabelas que não são de colocação no banco de dados, o Spanner armazenará esses dados na partição padrão.

Para instruções sobre como usá-las, consulte Criar e gerenciar partições.

Considerações importantes

Considere o seguinte antes de criar suas partições, posições e tabelas de posicionamento:

  • Local da partição: selecione cuidadosamente as regiões de partição que oferecem mais benefícios para seu aplicativo.

    É possível criar partições em uma instância com uma configuração de instância regional, mas recomendamos que você crie partições em uma instância com configuração multirregional. Dessa maneira, o local de partição padrão também está em uma configuração multirregional.

    Além disso, selecione um local de partição padrão multirregional que tenha regiões de leitura/gravação e somente leitura que cubram todas as jurisdições exigidas pelo aplicativo. Em seguida, crie mais partições (que podem ser regionais) com regiões líderes que correspondam às regiões na partição padrão multirregional.

  • Número de partições: muitas partições podem gerar sobrecarga, e poucas podem não oferecer benefícios suficientes. É possível criar no máximo 10 partições por instância.

Limitações

O particionamento geográfico tem as seguintes limitações:

  • O particionamento geográfico não oferece suporte aos bancos de dados do dialeto PostgreSQL.
  • Não é possível criar uma partição de instância usando uma configuração birregional.
  • Para cada partição, a capacidade de computação precisa ser de pelo menos um nó (1.000 unidades de processamento).
  • Para uma determinada instância, não é possível criar mais de uma partição de instância que usa a mesma configuração de instância base. Por exemplo, em test-instance, não é possível criar duas partições, partition-1 e partition-2, que usam us-central1 como configuração da partição.
  • Para cada nó da partição, é possível colocar no máximo 20 milhões de linhas. É possível ver o número de linhas que foram colocadas em cada uma das partições na página "Partições" do console do Google Cloud.
  • Para cada nó na partição de instância de destino, o Spanner pode mover cerca de 10 linhas de colocação por segundo.
  • Não é possível criar partições em instâncias de teste gratuito ou instâncias de tamanho granular menores que um nó (1.000 unidades de processamento).
  • Não é possível criar backups para instâncias com partições.
  • Não é possível usar chaves de criptografia gerenciadas pelo cliente para instâncias com partições.
  • Não é possível criar partições de instância em uma instância com o escalonador automático gerenciado ativado.
  • Não é possível mover a partição para uma configuração de instância diferente.
  • Não é possível mover uma instância que tenha partições.
  • O uso de partições não garante requisitos de segurança, conformidade e regulamentações.
  • Os fluxos de alterações não são compatíveis com dados particionados.
  • Para usar o particionamento geográfico, é necessário criar um novo banco de dados vazio e definir a opção opt_in_dataplacement_preview como true. Para mais informações, consulte Criar e gerenciar canais de dados.
  • Se você usar uma instrução DML INSERT ou DELETE para uma tabela de posição, essa instrução precisará ser a única instrução na transação.

Controle de acesso com o IAM

Você precisa ter as permissões spanner.instancePartitions.create, spanner.instancePartitions.update e spanner.instancePartitions.delete para criar e gerenciar partições. Se você só precisar visualizar as partições, precisará ter a permissão spanner.instancePartitions.list ou spanner.instancePartitions.get. Para mais informações, consulte a Visão geral do IAM.

Para mais informações sobre como conceder permissões do IAM do Spanner, consulte Aplicar permissões do IAM.

Monitoramento

O Spanner fornece várias métricas para ajudar você a monitorar as partições. Depois de criar uma partição extra, você verá outro filtro suspenso para Partições na página "Insights do sistema" no console do Google Cloud. A seleção padrão é mostrar métricas para Todas as partições. É possível usar o menu suspenso para filtrar as métricas de uma partição específica.

Para saber mais sobre como monitorar seus recursos do Spanner, consulte Monitorar instâncias com o Cloud Monitoring.

Preços

Não há custo extra pelo uso do particionamento geográfico. O preço padrão do Spanner é cobrado de acordo com a quantidade de capacidade de computação que sua instância usa e a quantidade de armazenamento que seu banco de dados usa.

Para mais informações, consulte os preços do Spanner.

A seguir