Criar e gerenciar posições de dados

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 do Spanner e os bancos de dados, crie a posição.

  1. Acesse a página Instâncias no console do Google Cloud.

    Instâncias

  2. Selecione a instância com partições criadas pelo usuário.

  3. Selecione o banco de dados que você quer particionar.

  4. No menu de navegação, clique em Spanner Studio.

  5. Na página do Spanner Studio, clique em Nova guia ou use a guia do editor vazia.

  6. 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 europe-partition:

    CREATE PLACEMENT `europeplacement` OPTIONS (instance_partition="europe-partition");
    
    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.

  7. Clique em Executar.

Para criar uma posição com o comando gcloud CLI, use gcloud spanner databases ddl update.

Por exemplo, crie uma posição na partição europe-partition:

gcloud spanner databases ddl update example-db \
  --instance=test-instance \
  --ddl="CREATE PLACEMENT europeplacement OPTIONS (instance_partition='europe-partition')"
gcloud spanner databases ddl update example-db \
  --instance=test-instance \
  --ddl="CREATE PLACEMENT europeplacement WITH (instance_partition='europe-partition')"

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

  1. No menu de navegação, clique em Spanner Studio.
  2. Na página Spanner Studio, clique em Nova guia ou use a guia de editor vazia.
  3. 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 dados de cantores:

    CREATE TABLE Singers (
      SingerId INT64 NOT NULL,
      SingerName STRING(MAX) NOT NULL,
      ...
      Location STRING(MAX) NOT NULL PLACEMENT KEY
    ) PRIMARY KEY (SingerId);
    
    CREATE TABLE Singers (
      SingerId bigint PRIMARY KEY,
      SingerName varchar(1024),
      ...
      Location varchar(1024) NOT NULL PLACEMENT KEY
    );
    

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 dados de cantores:

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);"
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 é 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:

  1. Exclua todas as linhas na tabela de posicionamento.
  2. 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:
  1. No menu de navegação, clique em Spanner Studio.
  2. Na página Spanner Studio, clique em Nova guia ou use a guia do editor vazia.
  3. Insira a instrução DDL DROP TABLE (GoogleSQL, PostgreSQL).

    Por exemplo, descarte a tabela Singers:

    DROP TABLE Singers;
    

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

  1. No menu de navegação, clique em Spanner Studio.
  2. Na página Spanner Studio, clique em Nova guia ou use a guia de editor vazia.
  3. Insira a instrução DDL INSERT INTO (GoogleSQL, PostgreSQL).

    Por exemplo, adicione um cantor, Marc Richards, à tabela Singers e faça a partição em europeplacement:

    INSERT INTO Singers(SingerId, SingerName, Location)
    VALUES (1, 'Marc Richards', 'europeplacement')
    

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

  1. No menu de navegação, clique em Spanner Studio.
  2. Na página Spanner Studio, clique em Nova guia ou use a guia de editor vazia.
  3. Use DML ou mutações para atualizar dados em uma tabela de posicionamento.

    Por exemplo, atualize o nome de singerid=1 na tabela Singers para Catalina Smith:

    UPDATE Singers s
    SET s.name='Catalina Smith'
    WHERE s.id=1;
    

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

  1. Crie uma nova partição e posição, se ainda não tiver feito isso.
  2. No menu de navegação, clique em Spanner Studio.
  3. Na página Spanner Studio, clique em Nova guia ou use a guia de editor vazia.
  4. Use DML ou mutações para mover dados para a nova partição.

    Por exemplo, mova singerid=1 na tabela Singers para asiaplacement:

    UPDATE Singers s
    SET s.location='asiaplacement'
    WHERE s.id=1;
    

Depois de criar a partição e a posição 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

  1. No menu de navegação, clique em Spanner Studio.
  2. Na página Spanner Studio, clique em Nova guia ou use a guia do editor vazia.
  3. Use DML ou mutações para excluir dados.

    Por exemplo, exclua singerid=1 na tabela Singers:

    DELETE FROM Singers s
    WHERE s.id=1;
    

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

  1. No menu de navegação, clique em Spanner Studio.
  2. Na página Spanner Studio, clique em Nova guia ou use a guia de editor vazia.
  3. Execute a consulta.

    Por exemplo, consulte a tabela Singers:

    SELECT * FROM Singers s WHERE s.SingerId=1;
    

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