Esta página apresenta a particionamento geográfico e explica como ele funciona no Spanner.
O Spanner oferece configurações de instância regionais e multirregionais, que permitem replicar os dados em diferentes locais geográficos. O particionamento geográfico permite segmentar e armazenar linhas na tabela do banco de dados em diferentes configurações de instância.
Benefícios e casos de uso
O particionamento geográfico permite particionar linhas no seu banco de dados, oferecendo os seguintes benefícios:
- Latência regional em um banco de dados global: ao usar o particionamento geográfico, o Spanner gerencia seus dados em um único banco de dados unificado em locais distribuídos geograficamente, garantindo baixa latência para acesso regional. O uso da particionamento geográfico simplifica as operações e reduz a complexidade em comparação com o gerenciamento de vários bancos de dados particionados.
- Recursos de banco de dados globais: o particionamento geográfico oferece recursos de banco de dados, como transações globais, movimentação de dados entre regiões e aplicação de exclusividade em regiões geográficas.
- Compliance com a residência de dados: o Spanner oferece compromissos de residência de dados no nível do posicionamento. Para mais informações, consulte Compatibilidade da residência de dados para bancos de dados que usam particionamento geográfico.
Confira a seguir alguns casos de uso comuns:
Dados relacionados ao usuário: particionamento geográfico de 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 a segmentação geográfica
Todas as instâncias do Spanner têm uma partição de instância principal,
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. Se você quiser particionar os dados em um banco de dados, crie outras partições na sua instância.
Para usar o particionamento geográfico em um banco de dados:
Crie partições adicionais na sua 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. O banco de dados tem uma posição padrão associada à partição padrão da instância.
Crie posições no seu banco de dados que sejam associadas às partições adicionais. Seu banco de dados pode interagir com as partições adicionais que foram criadas na mesma instância.
Crie tabelas de posição com um atributo de chave de posição. É necessário usar a chave de posicionamento nas instruções DML para especificar em qual partição os dados da linha estão. Se você criar tabelas sem posicionamento no seu banco de dados, o Spanner vai armazenar esses dados na partição padrão.
A chave de canal de cada linha em uma tabela de canais precisa ser atribuída a uma das seguintes opções:
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 posicionamento,
default
, que armazena os dados no posicionamento padrão.
Para instruções sobre como usar partições, consulte Criar e gerenciar partições.
Considerações importantes
Considere o seguinte antes de criar partições, posições e tabelas de posições:
Local da partição: selecione com cuidado as regiões de partição que oferecem mais benefícios para seu aplicativo.
Embora seja possível criar partições em uma instância com uma configuração de instância regional, recomendamos que você crie partições em uma instância com uma configuração de instância multirregional para que o local da partição padrão também esteja em uma configuração multirregional.
Além disso, selecione um local de partição padrão multirregional com regiões de leitura/gravação e somente leitura que cubram todas as jurisdições necessárias para seu aplicativo. Em seguida, crie outras partições (que podem ser regionais) com regiões líderes que correspondem às regiões na partição padrão multirregional.
Número de partições: muitas partições podem levar a uma sobrecarga, enquanto poucas não oferecem benefícios suficientes. É possível criar no máximo dez partições por instância.
Limitações
As limitações a seguir se aplicam à versão de pré-lançamento e estão sujeitas a alterações ou remoção após a versão de 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, 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
use a mesma configuração de instância básica. Por exemplo, em
test-instance
, não é possível criar duas partições,partition-1
epartition-2
, que usamus-central1
como a configuração da partição. - Para cada nó na partição, é 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 suas partições na página "Partições" 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 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 em instâncias com partições.
- 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 para uma configuração de instância diferente.
- Não é possível mover uma instância que tenha partições. É possível mover linhas individuais para partições diferentes, para que você não precise mover a instância.
- O uso de partições não garante compliance e requisitos regulamentares.
- Os fluxos de alterações não são compatíveis com dados particionados.
- Para usar a particionamento geográfico, crie um banco de dados vazio e defina a opção
opt_in_dataplacement_preview
comotrue
. Para mais informações, consulte Criar e gerenciar partições. - Se você usar uma instrução DML
INSERT
ouDELETE
para uma tabela de posicionamento, essa instrução precisa ser a única 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 fazer referência a uma coluna de chave não principal de uma tabela de posicionamento na cláusulaWHERE
, use uma das alternativas a seguir:- Se você só precisa 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 particionado
ou encontre as chaves primárias em uma consulta de transação somente leitura e, em seguida,
em uma transação de leitura/gravação separada, faça referência às chaves primárias retornadas na
cláusula
WHERE
.
- Não é possível usar esquemas nomeados.
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ó precisa visualizar as
partições, é 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 fornece várias métricas para ajudar a monitorar as partições. Depois de criar uma partição adicional, você vai encontrar um filtro suspenso para Partições na página "Insights do sistema" no Google Cloud console. A seleção padrão é mostrar métricas para todas as partições. Use 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á cobrança extra pelo uso da segmentação geográfica. Você vai receber a cobrança padrão do Spanner pela quantidade de capacidade de computação que a instância usa e pela quantidade de armazenamento que o banco de dados usa.
Para mais informações, consulte Preços do Spanner.
A seguir
- Saiba como criar e gerenciar partições.
- Saiba como criar e gerenciar posicionamentos de dados.