配置 Spanner 列式引擎

本页介绍了如何在数据库、表或索引上启用 Spanner 列式引擎,以及如何加快文件格式的生成速度。

启用 Spanner 列式引擎

使用带有 columnar_policy 选项的 SET OPTIONS 子句启用 Spanner 列式引擎。您可以在创建或更改 DATABASETABLEINDEX 架构对象时应用此选项。SEARCH INDEXVECTOR 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 TABLESET OPTIONS 子句搭配使用,以在表上启用或停用 columnar_policy。以下示例展示了如何在 Singers 表中停用政策:

ALTER TABLE Singers SET OPTIONS (columnar_policy = 'disabled');

列式文件格式生成

Spanner 会在压缩时生成列式文件格式。压缩是一个后台进程,通常会持续多天,但如果数据库的大小大幅增加,则可能会更快发生。如需了解详情,请参阅最佳列式覆盖范围

后续步骤