Visão geral do particionamento geográfico

Esta página apresenta o particionamento geográfico e explica como ele funciona no Spanner.

O Spanner oferece configurações de instância regionais e multirregionais, que permitem replicar seus dados em diferentes locais geográficos. Com o particionamento geográfico, é possível segmentar e armazenar linhas na tabela de banco de dados em diferentes configurações de instância.

Benefícios e casos de uso

Com o particionamento geográfico, é possível particionar linhas no banco de dados, o que oferece os seguintes benefícios:

  • Latência regional em um banco de dados global: usando o particionamento geográfico, o Spanner gerencia seus dados em um único banco de dados unificado em locais geograficamente distribuídos, garantindo baixa latência para acesso regional. O uso do particionamento geográfico simplifica as operações e reduz a complexidade em comparação com o gerenciamento de vários bancos de dados fragmentados.
  • Recursos de banco de dados global: o particionamento geográfico oferece recursos de banco de dados, como transações globais, movimentação de dados entre regiões e imposição de exclusividade em regiões geográficas.
  • Conformidade com a residência de dados: o Spanner oferece compromissos de residência de dados no nível de posicionamento. Para mais informações, consulte compatibilidade da residência de dados para bancos de dados que usam geocriacionamento de partições.

Confira alguns casos de uso comuns:

  • Dados relacionados ao usuário: particione geograficamente os dados relacionados ao usuário para processar e armazenar informações 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 principal chamada default. Se você não criar outras partições de instância, todos os objetos de banco de dados serão armazenados na partição padrão, que está no mesmo local da configuração da instância. Se você quiser particionar os dados em um banco de dados, crie outras partições de instância na sua instância.

Para usar o particionamento geográfico em um banco de dados:

  1. Crie outras partições de instância na sua instância. Essas partições de instância criadas pelo usuário têm a própria configuração (regional ou multirregional) e contagem de nós.

  2. Crie seu banco de dados normalmente. O banco de dados tem um posicionamento padrão associado à partição de instância padrão da instância.

  3. Crie posições no banco de dados associadas às partições de instância adicionais. Seu banco de dados pode interagir com as partições de instância adicionais criadas na mesma instância.

  4. Crie tabelas de posição com um atributo de chave de posição. Você precisa usar a chave de posição nas instruções DML para especificar em qual partição de instância os dados da linha estão. Se você criar tabelas não posicionadas no banco de dados, o Spanner vai armazenar esses dados na partição de instância padrão.

A chave de canal de cada linha em uma tabela de canais precisa ser atribuída a um dos seguintes itens:

  • Um valor que corresponde ao nome de um dos posicionamentos criados pelo usuário definidos para esse banco de dados; ou

  • O valor da chave de posição, default, que armazena os dados na posição padrão.

Para instruções sobre como usar partições de instância, consulte criar e gerenciar partições de instância.

Considerações importantes

Considere o seguinte antes de criar partições, posições e tabelas de posição de instância:

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

    Embora seja possível criar partições de instância em uma instância com uma configuração regional, recomendamos que você crie partições de instância em uma instância com uma configuração multirregional para que o local padrão da partição de instância também esteja em uma configuração multirregional.

    Além disso, selecione um local de partição de instância 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 outras partições de instância (que podem ser regionais) com regiões líderes que correspondam às regiões na partição de instância padrão multirregional.

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

Limitações

As seguintes limitações se aplicam durante a versão de prévia e estão sujeitas a mudanças ou remoção após a versão GA ou depois:

  • Não é possível criar uma partição de instância usando uma configuração de duas regiões.
  • Para cada partição de instância, 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 que use a mesma configuração de instância de base. Por exemplo, em test-instance, não é possível criar duas partições, partition-1 e partition-2, que usam us-central1 como a configuração de partição da instância.
  • Para cada nó na partição de instância, é possível colocar no máximo 100 milhões de linhas de posicionamento. É possível conferir o número de linhas de canais que foram colocadas em cada uma das partições de instância na página "Partições de instância" do console Google Cloud .
  • Para cada nó na partição da instância de destino, o Spanner pode mover cerca de 10 linhas de posicionamento por segundo.
  • Não é possível criar backups para instâncias com partições de instância.
  • Não é possível usar chaves de criptografia gerenciadas pelo cliente em instâncias com partições de instância.
  • Não é possível criar partições de instância em uma instância com o autoescalador gerenciado ativado.
  • Não é possível mover a partição da instância para uma configuração de instância diferente.
  • Não é possível mover uma instância que tenha partições de instância. É possível mover linhas individuais para partições de instância diferentes sem precisar mover a instância.
  • O uso de partições de instância não garante a conformidade com requisitos regulamentares.
  • Os fluxos de alterações não são compatíveis com dados particionados.
  • Para usar o particionamento geográfico, crie um banco de dados vazio e defina a opção opt_in_dataplacement_preview como true. Para mais informações, consulte Criar e gerenciar partições de instância.
  • Se você usar uma instrução DML INSERT ou DELETE para uma tabela de posição, ela precisará ser a única instrução na transação.
  • O modo de transação de leitura e gravação permite referenciar apenas as chaves primárias de uma tabela de posicionamento na cláusula WHERE. Se você precisar referenciar uma coluna de chave não primária de uma tabela de posição na cláusula WHERE, use uma das seguintes alternativas:
    • Se você precisar apenas de acesso somente leitura, mude para o modo de transação somente leitura.
    • Se você precisar fazer atualizações, use o modo de transação DML particionada ou encontre as chaves primárias em uma consulta de transação somente leitura e, em uma transação separada de leitura/gravação, faça referência às chaves primárias retornadas na cláusula WHERE.
  • Não é possível usar esquemas nomeados.
  • Não é possível criar partições de instância em instâncias de teste gratuito ou instâncias de tamanho granular menores que um nó (1.000 unidades de processamento).

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 de instâncias. Se você só precisar ver as partições da instância, é necessário ter a permissão spanner.instancePartitions.list ou spanner.instancePartitions.get. Para mais informações, consulte a visão geral do IAM.

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

Monitoramento

O Spanner oferece várias métricas para ajudar você a monitorar as partições da instância. Depois de criar uma partição de instância adicional, um filtro suspenso extra para Partições de instância vai aparecer na página "Insights do sistema" no console Google Cloud . A seleção padrão é mostrar métricas para Todas as partições de instâncias. Use o menu suspenso para filtrar as métricas de uma partição de instância 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á cobrança adicional pelo uso do particionamento geográfico. Você recebe a cobrança dos preços padrão do Spanner pela quantidade de capacidade de computação que sua instância usa e pela quantidade de armazenamento que seu banco de dados usa.

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

A seguir