创建和管理数据展示位置

本页面介绍了如何在 Spanner 中创建和管理数据展示位置。

如需详细了解地理位置分区的工作原理,请参阅 地理分区概览

创建数据展示位置

创建 Spanner 分区数据库后,创建您的放置。

控制台

  1. 前往 Google Cloud 控制台中的实例页面。

    实例

  2. 选择包含用户创建的分区的实例。

  3. 选择要进行数据分区的数据库。

  4. 在导航菜单中,点击 Spanner Studio

  5. Spanner Studio 页面中,点击 New tab(新建标签页),或使用空白编辑器标签页。

  6. 输入 CREATE PLACEMENT (GoogleSQLPostgreSQL) DDL 语句。

    例如,您可以运行以下命令来创建展示位置表 europe-partition 分区中的 europeplacement

    GoogleSQL

    CREATE PLACEMENT `europeplacement` OPTIONS (instance_partition="europe-partition");
    

    PostgreSQL

    CREATE PLACEMENT europeplacement WITH (instance_partition='europe-partition');
    

    可选:您还可以使用对象资源管理器窗格查看、搜索和 并与您的 Placement 对象互动。如需了解详情,请参阅 探索数据

  7. 点击运行

gcloud

如需使用 gcloud CLI 命令创建展示位置,请使用 gcloud spanner databases ddl update

例如,在 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')"

删除数据展示位置

您不能删除展示位置。您必须先删除数据库,然后才能删除 展示位置及其相关数据。如需了解详情,请参阅删除数据库

创建包含展示位置键的表

控制台

  1. 在导航菜单中,点击 Spanner Studio
  2. Spanner Studio 页面中,点击 打开新的标签页或使用空白 编辑器标签页。
  3. 输入 CREATE TABLE (GoogleSQLPostgreSQL) DDL 语句。

    例如,您可以创建一个Singers表,该表使用 用于对歌手数据进行分区的展示位置键:

    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

如需创建表,请使用 gcloud spanner databases ddl update

例如,您可以创建一个 Singers 表,使用展示位置键对歌手数据进行分区:

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

修改包含展示位置键的表

您无法从表格中放置展示位置键。您也不能添加展示位置键 创建表不过,您可以使用 ALTER TABLE (GoogleSQLPostgreSQL) DDL 语句更改表中的其他字段,例如通过添加和删除非展示位置键列。

删除包含展示位置键的表

在删除包含展示位置键的表之前,您必须先执行以下操作:

  1. 删除展示位置表中的所有行。
  2. 等待数据库的 version_retention_period 通过。如需了解详情,请参阅时间点恢复。 然后,请按以下步骤操作:

控制台

  1. 在导航菜单中,点击 Spanner Studio
  2. Spanner Studio 页面中,点击 New tab(新建标签页),或使用空白编辑器标签页。
  3. 输入 DROP TABLE (GoogleSQLPostgreSQL) DDL 语句。

    例如,删除 Singers 表:

    DROP TABLE Singers;
    

gcloud

如需删除表,请使用 gcloud spanner databases ddl update

例如,删除 Singers 表:

gcloud spanner databases ddl update example-db \
  --instance=test-instance \
  --ddl="DROP TABLE Singers"

在展示位置表格中插入行

控制台

  1. 在导航菜单中,点击 Spanner Studio
  2. Spanner Studio 页面中,点击 New tab(新建标签页),或使用空白编辑器标签页。
  3. 输入 INSERT INTOGoogleSQLPostgreSQL) DDL 语句。

    例如,将歌手 Marc Richards 添加到 Singers 表中, 将其分区到 europeplacement 中:

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

gcloud

如需将数据写入表中,请使用 gcloud spanner rows insert

例如,将歌手 Marc Richards 添加到 Singers 表中, 将其分区到 europeplacement 中:

gcloud spanner rows insert --table=Singers --database=example-db \
  --instance=test-instance --data=SingerId=1,SingerName='Marc Richards',Location='europeplacement'

更新展示位置表中的行

控制台

  1. 在导航菜单中,点击 Spanner Studio
  2. Spanner Studio 页面中,点击 打开新的标签页或使用空白 编辑器标签页。
  3. 使用 DML变更更新 展示位置表格中。

    例如,将 Singers 表中 singerid=1 的名称更新为 Catalina Smith:

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

gcloud

若要更新展示位置表格中的数据,请执行以下操作: 请使用 gcloud spanner rows update

例如,将 Singers 表中 singerid=1 的名称更新为 Catalina Smith:

gcloud spanner rows update --table=Singers --database=example-db \
  --instance=test-instance --data=SingerId=1,SingerName='Catalina Smith'

在展示位置表格中移动行

控制台

  1. 如果您尚未创建新的分区和放置,请创建一个。
  2. 在导航菜单中,点击 Spanner Studio
  3. Spanner Studio 页面中,点击 New tab(新建标签页),或使用空白编辑器标签页。
  4. 使用 DML变更将数据迁移到 新分区。

    例如,将 Singers 表中的 singerid=1 移动到 asiaplacement

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

gcloud

创建好要迁出数据的分区和位置后, 请使用 gcloud spanner rows update

例如,将 Singers 表中的 singerid=1 移动到 asiaplacement

gcloud spanner rows update --table=Singers --database=example-db \
  --instance=test-instance --data=SingerId=1,Location='asiaplacement'

删除展示位置表中的行

控制台

  1. 在导航菜单中,点击 Spanner Studio
  2. Spanner Studio 页面中,点击 打开新的标签页或使用空白 编辑器标签页。
  3. 使用 DML变更删除数据。

    例如,删除 Singers 表中的 singerid=1

    DELETE FROM Singers s
    WHERE s.id=1;
    

gcloud

如需删除数据,请使用 gcloud spanner rows delete

例如,删除 Singers 表中的 singerid=1

gcloud spanner rows delete --table=Singers --database=example-db \
  --instance=test-instance --keys=1

查询展示位置表中的数据

控制台

  1. 在导航菜单中,点击 Spanner Studio
  2. Spanner Studio 页面中,点击 打开新的标签页或使用空白 编辑器标签页。
  3. 运行查询。

    例如,查询 Singers 表:

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

gcloud

如需查询数据,请使用 gcloud spanner databases execute-sql

例如,查询 Singers 表:

gcloud spanner databases execute-sql example-db \
  --sql='SELECT * FROM Singers s WHERE s.SingerId=1'

后续步骤