建立及管理資料刊登位置

本頁說明如何在 Spanner 中建立及管理資料放置位置。

如要進一步瞭解地理位置分區的運作方式,請參閱地理位置分區總覽

建立資料放置位置

建立 Spanner 執行個體分割區資料庫後,即可建立放置位置。

控制台

  1. 前往 Google Cloud 控制台的「Instances」(執行個體) 頁面。

    執行個體

  2. 選取含有使用者建立執行個體分區的執行個體。

  3. 選取要分割資料的資料庫。

  4. 在導覽選單中,按一下「Spanner Studio」

  5. 在「Spanner Studio」頁面中,按一下 「新增分頁」,或使用空白的編輯器分頁。

  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 控制台的「Instances」(執行個體) 頁面。

    執行個體

  2. 選取含有使用者建立執行個體分區的執行個體。

  3. 選取要分割資料的資料庫。

  4. 在導覽選單中,按一下「Spanner Studio」

  5. 在「Spanner Studio」頁面中,按一下 「新增分頁」,或使用空白的編輯器分頁。

  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 \
  --instance=test-instance \
  --sql='SELECT * FROM Singers s WHERE s.SingerId=1'

後續步驟