本页介绍了如何在数据库、表或索引上启用 Spanner 列式引擎,以及如何加速文件格式生成。
启用 Spanner 列式引擎
使用带有 columnar_policy
选项的 SET OPTIONS
子句启用 Spanner 列式引擎。您可以在创建或更改 DATABASE
、TABLE
或 INDEX
架构对象时应用此选项。SEARCH INDEX
和 VECTOR INDEX
架构对象永远不会采用列状格式。
数据库和表格层次结构中的较低级别会沿用其父级的 columnar_policy
。您可以在较低级别更改此设置。
columnar_policy
选项具有以下标志:
'enabled'
或'disabled'
可为特定架构对象启用或停用列式引擎。NULL
(默认)使用父对象的列式引擎政策(如果存在)。NULL
可清除表对象上的先前设置。
您还可以省略 OPTIONS
以从父对象继承 columnar_policy
。
以下示例展示了如何执行以下操作:
- 创建启用了列级政策的数据库。
- 定义一个从数据库继承列级政策的
Singers
表(省略表选项的columnar_policy = NULL
)。 - 定义一个显式停用列级政策的
Concerts
表。
CREATE DATABASE Music;
ALTER DATABASE Music SET OPTIONS (columnar_policy = 'enabled');
CREATE TABLE Singers(
SingerId INT64 NOT NULL,
FirstName STRING(1024),
LastName STRING(1024),
BirthDate DATE,
Status STRING(1024),
LastUpdated TIMESTAMP,)
PRIMARY KEY(SingerId),
OPTIONS ();
CREATE TABLE Concerts(
VenueId INT64 NOT NULL,
SingerId INT64 NOT NULL,
ConcertDate DATE NOT NULL,
BeginTime TIMESTAMP,
EndTime TIMESTAMP,)
PRIMARY KEY(VenueId, SingerId, ConcertDate),
OPTIONS (columnar_policy = 'disabled');
以下示例展示了如何对名为 Artists
的现有数据库启用列式引擎,并对该数据库中名为 Museums
的表停用列式引擎:
ALTER DATABASE Artists SET OPTIONS (columnar_policy = 'enabled');
ALTER TABLE Museums SET OPTIONS (columnar_policy = 'disabled');
列式文件格式生成
Spanner 会在压缩时生成列式文件格式。压缩是一个后台进程,通常会持续多天,但如果数据库的大小大幅增加,则可能会提前完成。如需了解详情,请参阅最佳列覆盖率。