設定 Spanner 資料欄引擎

本頁說明如何對資料庫、資料表或索引啟用 Spanner 資料欄引擎,並加速產生檔案格式。

啟用 Spanner 資料欄引擎 (GoogleSQL)

使用 SET OPTIONS 子句和 columnar_policy 選項,即可啟用 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 資料欄引擎 (Postgres)

您可以發出下列陳述式,為所有資料表和索引啟用 Spanner 資料欄引擎:

ALTER DATABASE db_name SET spanner.columnar_policy TO enabled

如要為特定資料表和索引啟用 Spanner 資料欄引擎,請在建立或變更 TABLEINDEX 結構定義物件時,新增 COLUMNAR POLICY enabled 選項。SEARCH INDEXVECTOR INDEX 結構定義物件一律不會採用直欄格式。

資料表和索引會繼承資料庫層級指定的 COLUMNAR POLICY

COLUMNAR POLICY 關鍵字選項可用的值如下:

  • enableddisabled 可為特定結構定義物件開啟或關閉資料欄引擎。
  • NULL 會使用父項物件的資料欄引擎政策 (如有)。NULL 會清除表格或索引結構定義物件的先前設定。

以下範例說明如何執行下列操作:

  • 建立已啟用資料欄政策的資料庫。
  • 定義繼承資料庫中資料欄政策的 Singers 資料表 (省略資料表選項的 columnar_policy = NULL)。
  • 定義 Concerts 資料表,並明確停用資料欄政策。
CREATE DATABASE Music;

ALTER DATABASE "Music" SET spanner.columnar_policy TO enabled;

CREATE TABLE Singers(
  SingerId bigint PRIMARY KEY,
  FirstName varchar,
  LastName varchar,
  BirthDate date,
  Status varchar,
  LastUpdated timestamptz
);

CREATE TABLE Concerts(
  VenueId bigint NOT NULL,
  SingerId bigint NOT NULL,
  ConcertDate date NOT NULL,
  BeginTime timestamptz,
  EndTime timestamptz,
  PRIMARY KEY(VenueId, SingerId, ConcertDate)
) COLUMNAR POLICY disabled;

您也可以搭配使用 ALTER TABLESET COLUMNAR POLICY 子句,在資料表上啟用或停用資料欄政策。以下範例說明如何在 Singers 資料表中停用政策:

ALTER TABLE Singers SET COLUMNAR POLICY disabled;

如要移除資料庫層級的資料欄政策設定,請使用 RESET

ALTER DATABASE Music RESET spanner.columnar_policy;

啟用 Spanner 資料欄引擎後,目標資料庫或資料表 (視使用的啟用選項而定) 的儲存空間用量會增加約 60%。實際增加的空間取決於資料類型和壓縮屬性。請務必確保 Spanner 執行個體有足夠的儲存空間容量,可因應儲存空間用量增加。詳情請參閱「資料庫限制」。

產生資料欄檔案格式

Spanner 會在壓縮時產生資料欄檔案格式。 壓縮是背景程序,通常會持續多天,但如果資料庫大小大幅增加,壓縮作業可能會提早完成。詳情請參閱「最佳直欄涵蓋範圍」。

如果您建立沒有資料的新資料庫並啟用資料欄引擎,Spanner 會在您插入資料時以資料欄格式儲存資料,並在背景中進行壓縮。

備份資料不會產生欄狀資料格式。

如果您在現有資料庫中啟用 Spanner 資料欄引擎,且該資料庫含有資料,Spanner 會提供手動觸發壓縮的機制。詳情請參閱「手動觸發資料壓縮」。

後續步驟