本页介绍了如何在数据库、表或索引上启用 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);
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');
您还可以将 ALTER TABLE 与 SET OPTIONS 子句搭配使用,以在表上启用或停用 columnar_policy。以下示例展示了如何在 Singers 表中停用政策:
ALTER TABLE Singers SET OPTIONS (columnar_policy = 'disabled');
列式文件格式生成
Spanner 会在压缩时生成列式文件格式。压缩是一个后台进程,通常会持续多天,但如果数据库的大小大幅增加,则可能会更快发生。如需了解详情,请参阅最佳列式覆盖范围。