本頁說明如何對資料庫、資料表或索引啟用 Spanner 資料欄引擎,並加速產生檔案格式。
啟用 Spanner 資料欄引擎 (GoogleSQL)
使用 SET OPTIONS 子句和 columnar_policy 選項,即可啟用 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 資料欄引擎 (Postgres)
您可以發出下列陳述式,為所有資料表和索引啟用 Spanner 資料欄引擎:
ALTER DATABASE db_name SET spanner.columnar_policy TO enabled
如要為特定資料表和索引啟用 Spanner 資料欄引擎,請在建立或變更 TABLE 或 INDEX 結構定義物件時,新增 COLUMNAR POLICY enabled 選項。SEARCH INDEX 和 VECTOR INDEX 結構定義物件一律不會採用直欄格式。
資料表和索引會繼承資料庫層級指定的 COLUMNAR POLICY。
COLUMNAR POLICY 關鍵字選項可用的值如下:
enabled或disabled可為特定結構定義物件開啟或關閉資料欄引擎。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 TABLE 和 SET 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 會提供手動觸發壓縮的機制。詳情請參閱「手動觸發資料壓縮」。