创建和管理数据展示位置

本页介绍了如何在 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');
    

    可选:您还可以使用对象浏览器窗格查看、搜索和与展示位置对象进行交互。如需了解详情,请参阅探索您的数据

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

为展示位置设置默认主广告客户

如果展示位置位于双区域或多区域,您可以设置其默认主要区域。新的主要区域必须是双区域或多区域放置位置中的两个读写区域之一。如需了解详情,请参阅双区域可用配置多区域可用配置表。

如果您未设置主要区域,则展示位置会使用其位置所指定的默认主要区域。如需查看每个双区域或多区域位置的主副本区域列表,请参阅双区域可用配置多区域可用配置表。默认主要区域用 L 表示。例如,nam8 的默认主要区域位于洛杉矶(us-west2)。以下说明介绍了如何将其设为俄勒冈州(us-west1)。

控制台

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

    实例

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

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

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

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

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

    例如,您可以运行以下命令,在分区 nam8-partition 中创建一个放置表 nam8placement,并将默认主副本设置为 us-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');
    

    可选:您还可以使用对象浏览器窗格查看、搜索和与展示位置对象进行交互。如需了解详情,请参阅探索您的数据

  7. 点击运行

gcloud

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

例如,在分区 nam8-partition 中创建一个放置表 nam8placement,并将默认主副本设置为 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')"

删除数据展示位置

您无法删除展示位置。您必须删除数据库才能删除展示位置及其关联的数据。如需了解详情,请参阅删除数据库

使用展示位置键创建表

控制台

  1. 在导航菜单中,点击 Spanner Studio
  2. Spanner Studio 页面中,点击 New tab(新建标签页),或使用空白编辑器标签页。
  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 INTO (GoogleSQLPostgreSQL) 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 页面中,点击 New tab(新建标签页),或使用空白编辑器标签页。
  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 页面中,点击 New tab(新建标签页),或使用空白编辑器标签页。
  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 页面中,点击 New tab(新建标签页),或使用空白编辑器标签页。
  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'

后续步骤