本页面介绍了如何在 Spanner 中创建和管理数据展示位置。
如需详细了解地理位置分区的工作原理,请参阅 地理分区概览。
创建数据展示位置
创建 Spanner 分区和数据库后,创建您的放置。
控制台
前往 Google Cloud 控制台中的实例页面。
选择包含用户创建的分区的实例。
选择要进行数据分区的数据库。
在导航菜单中,点击 Spanner Studio。
在 Spanner Studio 页面中,点击
New tab(新建标签页),或使用空白编辑器标签页。输入
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');
可选:您还可以使用对象资源管理器窗格查看、搜索和 并与您的 Placement 对象互动。如需了解详情,请参阅 探索数据。
点击运行。
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')"
删除数据展示位置
您不能删除展示位置。您必须先删除数据库,然后才能删除 展示位置及其相关数据。如需了解详情,请参阅删除数据库。
创建包含展示位置键的表
控制台
- 在导航菜单中,点击 Spanner Studio。
- 在 Spanner Studio 页面中,点击 打开新的标签页或使用空白 编辑器标签页。
输入
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 页面中,点击 打开新的标签页或使用空白 编辑器标签页。
运行查询。
例如,查询
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'