本页介绍了如何在 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');
可选:您还可以使用对象浏览器窗格查看、搜索和与展示位置对象互动。如需了解详情,请参阅探索您的数据。
点击运行。
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 页面中,点击 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 \
--sql='SELECT * FROM Singers s WHERE s.SingerId=1'