本頁說明如何在 Spanner 中建立及管理資料放置位置。
如要進一步瞭解地理位置分區的運作方式,請參閱地理位置分區總覽。
建立資料放置位置
建立 Spanner 執行個體分割區和資料庫後,即可建立放置位置。
控制台
前往 Google Cloud 控制台的「Instances」(執行個體) 頁面。
選取含有使用者建立執行個體分區的執行個體。
選取要分割資料的資料庫。
在導覽選單中,按一下「Spanner Studio」。
在「Spanner Studio」頁面中,按一下
「新增分頁」,或使用空白的編輯器分頁。輸入
CREATE PLACEMENT
(GoogleSQL、PostgreSQL) DDL 陳述式。舉例來說,您可以執行下列指令,在執行個體分區
europe-partition
中建立刊登位置資料表europeplacement
:GoogleSQL
CREATE PLACEMENT `europeplacement` OPTIONS (instance_partition="europe-partition");
PostgreSQL
CREATE PLACEMENT europeplacement WITH (instance_partition='europe-partition');
選用:您也可以使用「物件總管」窗格,查看、搜尋及操作刊登位置物件。詳情請參閱「探索資料」一文。
按一下「執行」。
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
)。
控制台
前往 Google Cloud 控制台的「Instances」(執行個體) 頁面。
選取含有使用者建立執行個體分區的執行個體。
選取要分割資料的資料庫。
在導覽選單中,按一下「Spanner Studio」。
在「Spanner Studio」頁面中,按一下
「新增分頁」,或使用空白的編輯器分頁。輸入
CREATE PLACEMENT
(GoogleSQL、PostgreSQL) 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');
選用:您也可以使用「物件總管」窗格,查看、搜尋及操作刊登位置物件。詳情請參閱「探索資料」一文。
按一下「執行」。
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')"
刪除資料放置位置
您無法刪除刊登位置。如要刪除刊登位置和相關資料,請務必刪除資料庫。詳情請參閱「刪除資料庫」。
建立含有放置位置鍵的資料表
主控台
- 在導覽選單中,按一下「Spanner Studio」。
- 在「Spanner Studio」頁面中,按一下 「New tab」(新增分頁),或使用空白的編輯器分頁。
輸入
CREATE TABLE
(GoogleSQL、PostgreSQL) 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
(GoogleSQL、PostgreSQL) DDL 陳述式變更資料表中的其他欄位,例如新增及捨棄非放置鍵欄。
使用刊登位置鍵刪除資料表
如要刪除含有刊登位置鍵的資料表,請先完成下列步驟:
- 刪除刊登位置表格中的所有資料列。
- 等待資料庫通過
version_retention_period
。詳情請參閱「時間點復原」。 然後按照下列步驟操作:
控制台
- 在導覽選單中,按一下「Spanner Studio」。
- 在「Spanner Studio」頁面中,按一下 「New tab」(新增分頁),或使用空白的編輯器分頁。
輸入
DROP TABLE
(GoogleSQL、PostgreSQL) 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"
在刊登位置表格中插入資料列
控制台
- 在導覽選單中,按一下「Spanner Studio」。
- 在「Spanner Studio」頁面中,按一下 「New tab」(新增分頁),或使用空白的編輯器分頁。
輸入
INSERT INTO
(GoogleSQL、PostgreSQL) 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'
更新刊登位置表格中的資料列
主控台
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'
移動刊登位置表格中的資料列
主控台
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'
刪除刊登位置表格中的資料列
主控台
gcloud
如要刪除資料,請使用 gcloud spanner rows delete
。
舉例來說,刪除 Singers
表格中的 singerid=1
:
gcloud spanner rows delete --table=Singers --database=example-db \
--instance=test-instance --keys=1
查詢刊登位置資料表中的資料
控制台
- 在導覽選單中,按一下「Spanner Studio」。
- 在「Spanner Studio」頁面中,按一下 「New tab」(新增分頁),或使用空白的編輯器分頁。
執行查詢。
舉例來說,查詢
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'
後續步驟
進一步瞭解地理位置分割。
瞭解如何建立及管理執行個體分割區。