Esta página descreve como criar e gerenciar posicionamentos de dados no Spanner.
Para mais informações sobre como a segmentação geográfica funciona, consulte a Visão geral da segmentação geográfica.
Criar um canal de dados
Depois de criar as partições de instância do Spanner e os bancos de dados, crie o posicionamento.
Console
Acesse a página Instâncias no Google Cloud console.
Selecione a instância com partições criadas pelo usuário.
Selecione o banco de dados que você quer particionar.
No menu de navegação, clique em Spanner Studio.
Na página do Spanner Studio, clique em
Nova guia ou use a guia do editor vazia.Insira a instrução DDL
CREATE PLACEMENT
(GoogleSQL, PostgreSQL).Por exemplo, execute o comando a seguir para criar uma tabela de posicionamento
europeplacement
na partição de instânciaeurope-partition
:GoogleSQL
CREATE PLACEMENT `europeplacement` OPTIONS (instance_partition="europe-partition");
PostgreSQL
CREATE PLACEMENT europeplacement WITH (instance_partition='europe-partition');
Opcional: também é possível usar o painel Object Explorer para visualizar, pesquisar e interagir com os objetos de posicionamento. Para mais informações, consulte Analisar seus dados.
Clique em Executar.
gcloud
Para criar uma posição com o comando CLI gcloud, use
gcloud spanner databases ddl update
.
Por exemplo, crie uma posição na partição de instância europe-partition
:
GoogleSQL
gcloud spanner databases ddl update example-db \
--instance=test-instance \
--ddl="CREATE PLACEMENT europeplacement OPTIONS (instance_partition='europe-partition')"
PostgreSQL
gcloud spanner databases ddl update example-db \
--instance=test-instance \
--ddl="CREATE PLACEMENT europeplacement WITH (instance_partition='europe-partition')"
Definir o líder padrão de uma posição
É possível definir a região líder padrão de uma posição se o local dela estiver em uma região dupla ou multirregional. A nova região líder precisa ser uma das duas regiões de leitura e gravação no local de posicionamento duplo ou multirregional. Para mais informações, consulte as tabelas Configurações disponíveis para duas regiões e Configurações disponíveis para várias regiões.
Se você não definir uma região líder, a sua posição vai usar a região líder padrão
especificada pelo local. Para uma lista da região líder de cada local birregional ou multirregional, consulte as tabelas Configurações disponíveis para birregional e Configurações disponíveis para multirregional. A região líder padrão é indicada com um L. Por exemplo, a
região líder padrão de nam8
está em Los Angeles(us-west2
). As instruções
abaixo explicam como definir essa região como Oregon(us-west1
).
Console
Acesse a página Instâncias no Google Cloud console.
Selecione a instância com partições criadas pelo usuário.
Selecione o banco de dados que você quer particionar.
No menu de navegação, clique em Spanner Studio.
Na página do Spanner Studio, clique em
Nova guia ou use a guia do editor vazia.Insira a instrução DDL
CREATE PLACEMENT
(GoogleSQL, PostgreSQL).Por exemplo, execute o comando a seguir para criar uma tabela de posicionamento
nam8placement
na partição de instâncianam8-partition
com o local de líder padrão definido comous-west1
:GoogleSQL
CREATE PLACEMENT `nam8placement` OPTIONS (instance_partition="nam8-partition", default_leader="us-west1");
PostgreSQL
CREATE PLACEMENT nam8placement WITH (instance_partition='nam8-partition', default_leader='us-west1');
Opcional: também é possível usar o painel Object Explorer para visualizar, pesquisar e interagir com os objetos de posicionamento. Para mais informações, consulte Analisar seus dados.
Clique em Executar.
gcloud
Para criar uma posição com o comando CLI gcloud, use
gcloud spanner databases ddl update
.
Por exemplo, crie uma tabela de posicionamento nam8placement
na partição
da instância nam8-partition
com o local de líder padrão definido como us-west1
:
GoogleSQL
gcloud spanner databases ddl update example-db \
--instance=test-instance \
--ddl="CREATE PLACEMENT nam8placement \
OPTIONS (instance_partition='nam8-partition', default_leader='us-west1')"
PostgreSQL
gcloud spanner databases ddl update example-db \
--instance=test-instance \
--ddl="CREATE PLACEMENT nam8placement WITH (instance_partition='nam8-partition', default_leader='us-west1')"
Excluir um posicionamento de dados
Não é possível excluir uma posição. É necessário excluir o banco de dados para excluir a posição e os dados associados a ela. Para mais informações, consulte Excluir um banco de dados.
Criar uma tabela com uma chave de posicionamento
Console
- No menu de navegação, clique em Spanner Studio.
- Na página Spanner Studio, clique em Nova guia ou use a guia de editor vazia.
Insira a instrução DDL
CREATE TABLE
(GoogleSQL, PostgreSQL).Por exemplo, é possível criar uma tabela
Singers
que use uma chave de posicionamento para particionar os dados de cantores:GoogleSQL
CREATE TABLE Singers ( SingerId INT64 NOT NULL, SingerName STRING(MAX) NOT NULL, ... Location STRING(MAX) NOT NULL PLACEMENT KEY ) PRIMARY KEY (SingerId);
PostgreSQL
CREATE TABLE Singers ( SingerId bigint PRIMARY KEY, SingerName varchar(1024), ... Location varchar(1024) NOT NULL PLACEMENT KEY );
gcloud
Para criar uma tabela, use
gcloud spanner databases ddl update
.
Por exemplo, é possível criar uma tabela Singers
que use
uma chave de posicionamento para particionar os dados de cantores:
GoogleSQL
gcloud spanner databases ddl update example-db \
--instance=test-instance \
--ddl="CREATE TABLE Singers ( SingerId INT64 NOT NULL, SingerName STRING(MAX) NOT NULL, Location STRING(MAX) NOT NULL PLACEMENT KEY ) PRIMARY KEY (SingerId);"
PostgreSQL
gcloud spanner databases ddl update example-db \
--instance=test-instance \
--ddl="CREATE TABLE Singers ( SingerId bigint PRIMARY KEY, SingerName varchar(1024), Location varchar(1024) NOT NULL PLACEMENT KEY );"
Editar uma tabela com uma chave de posicionamento
Não é possível descartar uma chave de posicionamento de uma tabela. Também não é possível adicionar uma chave de posicionamento
a uma tabela depois que ela foi criada. No entanto, é possível usar a instrução DDL ALTER TABLE
(GoogleSQL, PostgreSQL) para alterar outros campos na tabela, por exemplo, adicionando e excluindo colunas de chaves que não são de posicionamento.
Excluir uma tabela com uma chave de posicionamento
Antes de excluir uma tabela com uma chave de posicionamento, você precisa fazer o seguinte:
- Exclua todas as linhas na tabela de posicionamento.
- Aguarde o
version_retention_period
para que o banco de dados seja transmitido. Para mais informações, consulte Recuperação pontual. Em seguida, siga estas etapas:
Console
- No menu de navegação, clique em Spanner Studio.
- Na página Spanner Studio, clique em Nova guia ou use a guia de editor vazia.
Insira a instrução DDL
DROP TABLE
(GoogleSQL, PostgreSQL).Por exemplo, descarte a tabela
Singers
:DROP TABLE Singers;
gcloud
Para excluir uma tabela, use
gcloud spanner databases ddl update
.
Por exemplo, descarte a tabela Singers
:
gcloud spanner databases ddl update example-db \
--instance=test-instance \
--ddl="DROP TABLE Singers"
Inserir uma linha em uma tabela de posicionamento
Console
- No menu de navegação, clique em Spanner Studio.
- Na página Spanner Studio, clique em Nova guia ou use a guia de editor vazia.
Insira a instrução DDL
INSERT INTO
(GoogleSQL, PostgreSQL).Por exemplo, adicione um cantor, Marc Richards, à tabela
Singers
e faça a partição emeuropeplacement
:INSERT INTO Singers(SingerId, SingerName, Location) VALUES (1, 'Marc Richards', 'europeplacement')
gcloud
Para gravar dados em uma tabela, use
gcloud spanner rows insert
.
Por exemplo, adicione um cantor, Marc Richards, à tabela Singers
e
faça a partição em europeplacement
:
gcloud spanner rows insert --table=Singers --database=example-db \
--instance=test-instance --data=SingerId=1,SingerName='Marc Richards',Location='europeplacement'
Atualizar uma linha em uma tabela de posicionamento
Console
- No menu de navegação, clique em Spanner Studio.
- Na página Spanner Studio, clique em Nova guia ou use a guia de editor vazia.
Use DML ou mutações para atualizar dados em uma tabela de posicionamento.
Por exemplo, atualize o nome de
singerid=1
na tabelaSingers
paraCatalina Smith
:UPDATE Singers s SET s.name='Catalina Smith' WHERE s.id=1;
gcloud
Para atualizar dados em uma tabela de posicionamento,
use gcloud spanner rows update
.
Por exemplo, atualize o nome de singerid=1
na tabela Singers
para
Catalina Smith
:
gcloud spanner rows update --table=Singers --database=example-db \
--instance=test-instance --data=SingerId=1,SingerName='Catalina Smith'
Mover uma linha em uma tabela de posicionamento
Console
- Crie uma partição e um posicionamento de instância, se ainda não tiver feito isso.
- No menu de navegação, clique em Spanner Studio.
- Na página Spanner Studio, clique em Nova guia ou use a guia de editor vazia.
Use DML ou mutações para mover dados para a nova partição de instância.
Por exemplo, mova
singerid=1
na tabelaSingers
paraasiaplacement
:UPDATE Singers s SET s.location='asiaplacement' WHERE s.id=1;
gcloud
Depois de criar a partição e a posição da instância para onde você quer mover
os dados, use gcloud spanner rows update
.
Por exemplo, mova singerid=1
na tabela Singers
para asiaplacement
:
gcloud spanner rows update --table=Singers --database=example-db \
--instance=test-instance --data=SingerId=1,Location='asiaplacement'
Excluir uma linha em uma tabela de posicionamento
Console
gcloud
Para excluir dados, use gcloud spanner rows delete
.
Por exemplo, exclua singerid=1
na tabela Singers
:
gcloud spanner rows delete --table=Singers --database=example-db \
--instance=test-instance --keys=1
Consultar dados em uma tabela de posicionamento
Console
- No menu de navegação, clique em Spanner Studio.
- Na página Spanner Studio, clique em Nova guia ou use a guia de editor vazia.
Execute a consulta.
Por exemplo, consulte a tabela
Singers
:SELECT * FROM Singers s WHERE s.SingerId=1;
gcloud
Para consultar dados, use gcloud spanner databases execute-sql
.
Por exemplo, consulte a tabela Singers
:
gcloud spanner databases execute-sql example-db \
--sql='SELECT * FROM Singers s WHERE s.SingerId=1'
A seguir
Saiba mais sobre a partição geográfica.
Saiba como criar e gerenciar partições de instâncias.