Esta página apresenta a partição geográfica e explica como funciona no Spanner.
O Spanner oferece configurações de instâncias regionais e multirregionais, que lhe permitem replicar os seus dados em localizações geográficas. A partição geográfica permite segmentar e armazenar ainda mais linhas na tabela da base de dados em diferentes configurações de instâncias.
Vantagens e exemplos de utilização
A partição geográfica permite-lhe particionar linhas na sua base de dados, o que oferece as seguintes vantagens:
- Latência regional numa base de dados global: através da geopartição, o Spanner gere os seus dados numa única base de dados unificada em localizações distribuídas geograficamente, ao mesmo tempo que garante uma baixa latência para o acesso regional. A utilização da partição geográfica simplifica as operações e reduz a complexidade em comparação com a gestão de várias bases de dados divididas.
- Capacidades da base de dados global: a geodivisão oferece funcionalidades da base de dados, como transações globais, movimento de dados entre regiões e aplicação da unicidade em regiões geográficas.
- Conformidade com a residência dos dados: o Spanner oferece compromissos de residência dos dados ao nível do posicionamento. Para mais informações, consulte a compatibilidade da residência de dados para bases de dados que usam a geodivisão.
Seguem-se alguns exemplos de utilização comuns:
Dados relacionados com o utilizador: partição geográfica de dados relacionados com o utilizador para processar e armazenar dados numa região mais próxima do utilizador.
Dados localizados: informações específicas da localização, como trânsito e eventos especiais.
Como funciona a geodivisão
Todas as instâncias do Spanner têm uma partição de instância principal denominada partição de instância default
. Se não criar partições de instâncias adicionais, todos os objetos da base de dados são armazenados na partição predefinida, que se encontra na mesma localização que a configuração da instância. Se quiser particionar os dados numa base de dados, tem de criar partições de instâncias adicionais na sua instância.
Para usar a geopartição numa base de dados:
Crie partições de instâncias adicionais na sua instância. Estas partições de instâncias criadas pelo utilizador têm a sua própria configuração (regional ou multirregional) e contagem de nós.
Crie a sua base de dados como faria normalmente. A base de dados tem um posicionamento predefinido associado à partição de instância predefinida da instância.
Crie posicionamentos na sua base de dados que estejam associados às partições de instâncias adicionais. A sua base de dados pode interagir com as partições de instâncias adicionais que foram criadas na mesma instância.
Crie tabelas de posicionamentos que tenham um atributo de chave de posicionamento. Tem de usar a chave de posicionamento nas suas declarações DML para especificar em que partição de instância residem os dados das linhas. Se criar tabelas sem posicionamento na base de dados, o Spanner armazena esses dados na partição de instância predefinida.
A chave do posicionamento de cada linha numa tabela de posicionamentos tem de ser atribuída a um dos seguintes elementos:
Um valor que corresponde ao nome de um dos posicionamentos criados pelo utilizador definidos para essa base de dados; ou
A chave-valor de posicionamento,
default
, que armazena os dados no posicionamento predefinido.
Para obter instruções sobre como usar partições de instâncias, consulte o artigo Crie e faça a gestão de partições de instâncias.
Aspetos a ter em conta
Considere o seguinte antes de criar as partições de instâncias, os posicionamentos e as tabelas de posicionamentos:
Localização da partição da instância: selecione cuidadosamente as regiões de partição da instância que oferecem mais vantagens para a sua aplicação.
Embora possa criar partições de instâncias numa instância com uma configuração de instâncias regional, recomendamos que crie partições de instâncias numa instância com uma configuração de instâncias multirregional para que a localização da partição de instâncias predefinida também esteja numa configuração multirregional.
Além disso, selecione uma localização de partição de instância predefinida multirregião que tenha regiões de leitura/escrita e só de leitura que abranjam todas as jurisdições exigidas pela sua aplicação. Em seguida, crie partições de instâncias adicionais (que podem ser regionais) com regiões principais que correspondam às regiões na partição de instância predefinida de várias regiões.
Número de partições de instâncias: um número excessivo de partições de instâncias pode gerar custos gerais, enquanto um número insuficiente pode não oferecer vantagens suficientes. Pode criar um máximo de dez partições de instâncias por instância.
Limitações
As seguintes limitações aplicam-se durante a versão de pré-visualização e estão sujeitas a alterações ou remoção após a versão de disponibilidade geral ou posteriormente:
- Não pode criar uma partição de instância com uma configuração de duas regiões.
- Para cada partição de instância, a capacidade de computação tem de ser, pelo menos, um nó (1000 unidades de processamento).
- Para uma determinada instância, não pode criar mais do que uma partição de instância que use a mesma configuração de instância base. Por exemplo, em
test-instance
, não pode criar duas partições,partition-1
epartition-2
, que usem ambasus-central1
como configuração da partição de instância. - Para cada nó na partição da instância, pode colocar um máximo de 100 milhões de linhas de posicionamento. Pode ver o número de linhas de posicionamento que foram colocadas em cada uma das partições de instâncias na página Partições de instâncias da Google Cloud consola.
- 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 pode criar cópias de segurança incrementais nem copiar a cópia de segurança.
- Não pode criar partições de instâncias numa instância com o autoscaler gerido ativado.
- Não pode mover a partição da instância para uma configuração de instância diferente.
- Não pode mover uma instância que tenha partições de instância. (Pode mover linhas individuais para partições de instâncias diferentes para não ter de mover a instância.)
- A utilização de partições de instâncias não garante a conformidade com os requisitos regulamentares.
- Os fluxos de alterações não suportam dados particionados.
- Se usar uma declaração DML
INSERT
ouDELETE
para uma tabela de posicionamentos, essa declaração tem de ser a única declaração na transação. - O modo de transação de leitura/escrita permite-lhe referenciar apenas as chaves principais de uma tabela de posicionamento na cláusula
WHERE
. Se precisar de fazer referência a uma coluna de chave não principal de uma tabela de posicionamentos na cláusulaWHERE
, pode usar uma das seguintes alternativas:- Se só precisar de acesso só de leitura, mude para o modo de transação só de leitura.
- Se precisar de fazer atualizações, use o modo de transação DML particionada ou encontre as chaves primárias numa consulta de transação só de leitura e, em seguida, numa transação de leitura/escrita separada, referencie as chaves primárias devolvidas na cláusula
WHERE
.
- Não pode usar esquemas com nome.
- Não pode criar partições de instâncias em instâncias de avaliação gratuita nem instâncias de tamanho granular inferiores a um nó (1000 unidades de processamento).
- Não pode alterar um posicionamento. Em alternativa, pode criar um novo posicionamento, usar a DML particionada para atualizar o posicionamento dos seus dados para um novo posicionamento e, em seguida, eliminar o posicionamento original.
Controlo de acesso com a IAM
Tem de ter as autorizações spanner.instancePartitions.create
, spanner.instancePartitions.update
e spanner.instancePartitions.delete
para criar e gerir partições de instâncias. Se só precisar de ver as partições da instância, tem de ter a autorização spanner.instancePartitions.list
ou spanner.instancePartitions.get
. Para mais informações, consulte a
vista geral da IAM.
Para ver informações sobre como conceder autorizações de IAM do Spanner, consulte o artigo Aplique autorizações de IAM.
Monitorização
O Spanner fornece várias métricas para ajudar a monitorizar as partições de instâncias. Depois de criar uma partição de instância adicional, é apresentado um filtro pendente adicional para Partições de instâncias na página Estatísticas do sistema na Google Cloud consola. A seleção predefinida é mostrar métricas para Todas as partições de instâncias. Pode usar o menu pendente para filtrar as métricas de uma partição de instância específica.
Para saber mais sobre a monitorização dos seus recursos do Spanner, consulte o artigo Monitorize instâncias com o Cloud Monitoring.
Cópias de segurança
Pode criar cópias de segurança completas para bases de dados que usam a partição geográfica. Não pode eliminar a partição da instância se a usar numa cópia de segurança. Para mais informações, consulte o artigo Crie cópias de segurança.
Notas de utilização:
- O Spanner armazena cópias de segurança de dados com partição geográfica na mesma localização de posicionamento que os dados originais na hora da versão da cópia de segurança.
Para restaurar cópias de segurança que contenham dados com partição geográfica, a instância de destino tem de cumprir as seguintes condições:
- A instância de destino tem de usar os mesmos nomes de partição de instância que a cópia de segurança original.
- Cada partição de instância na instância de destino tem de usar a mesma configuração de instância que a cópia de segurança original.
Preços
Não existe uma taxa adicional para usar a partição geográfica. É-lhe cobrado o preço padrão do Spanner pela quantidade de capacidade de computação que a sua instância usa e a quantidade de armazenamento que a sua base de dados usa.
Para mais informações, consulte os preços do Spanner.
O que se segue?
- Saiba como criar e gerir partições de instâncias.
- Saiba como criar e gerir posicionamentos de dados.