Spaltenbasierte Engine für Spanner konfigurieren

Auf dieser Seite wird beschrieben, wie Sie die spaltenbasierte Engine von Spanner für eine Datenbank, Tabelle oder einen Index aktivieren und die Generierung von Dateiformaten beschleunigen.

Spaltenbasierte Engine von Spanner aktivieren (GoogleSQL)

Die spaltenbasierte Engine von Spanner wird mit einer SET OPTIONS-Klausel mit der Option columnar_policy aktiviert. Sie können diese Option anwenden, wenn Sie DATABASE-, TABLE- oder INDEX-Schemaobjekte erstellen oder ändern. SEARCH INDEX - und VECTOR INDEX-Schemaobjekte sind nie im spaltenbasierten Format.

Tabellen und Indexe übernehmen die columnar_policy, die auf Datenbankebene angegeben ist.

Die Option columnar_policy hat die folgenden Flags:

  • 'enabled' oder 'disabled' aktiviert oder deaktiviert die spaltenbasierte Engine für das jeweilige Schemaobjekt.
  • NULL (Standard) verwendet die Richtlinie für die spaltenbasierte Engine aus dem übergeordneten Objekt, falls vorhanden. NULL löscht die vorherigen Einstellungen für ein Tabellenobjekt.

Sie können OPTIONS auch weglassen, um die columnar_policy vom übergeordneten Objekt zu übernehmen.

Im folgenden Beispiel wird Folgendes gezeigt:

  • Eine Datenbank mit aktivierter spaltenbasierter Richtlinie erstellen.
  • Eine Singers-Tabelle definieren, die die spaltenbasierte Richtlinie von der Datenbank übernimmt (lassen Sie columnar_policy = NULL für die Tabellenoption weg).
  • Eine Concerts-Tabelle definieren, für die die spaltenbasierte Richtlinie explizit deaktiviert ist.
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');

Sie können auch ALTER TABLE mit der SET OPTIONS-Klausel verwenden, um die columnar_policy für eine Tabelle zu aktivieren oder zu deaktivieren. Im folgenden Beispiel wird gezeigt, wie Sie die Richtlinie in der Tabelle Singers deaktivieren:

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

Spaltenbasierte Engine von Spanner aktivieren (PostgreSQL)

Sie können die spaltenbasierte Engine von Spanner für alle Tabellen und Indexe aktivieren, indem Sie diese Anweisung ausführen:

ALTER DATABASE db_name SET spanner.columnar_policy TO enabled

Sie können die spaltenbasierte Engine von Spanner für bestimmte Tabellen und Indexe aktivieren, indem Sie die Option COLUMNAR POLICY enabled hinzufügen, wenn Sie ein TABLE- oder INDEX-Schemaobjekt erstellen oder ändern. SEARCH INDEX - und VECTOR INDEX-Schemaobjekte sind nie im spaltenbasierten Format.

Tabellen und Indexe übernehmen die COLUMNAR POLICY, die auf Datenbankebene angegeben ist.

Die Schlüsselwortoption COLUMNAR POLICY hat die folgenden möglichen Werte:

  • enabled oder disabled aktiviert oder deaktiviert die spaltenbasierte Engine für das jeweilige Schemaobjekt.
  • NULL verwendet die Richtlinie für die spaltenbasierte Engine aus dem übergeordneten Objekt, falls vorhanden. NULL löscht die vorherige Einstellung für ein Tabellen- oder Indexschemaobjekt.

Im folgenden Beispiel wird Folgendes gezeigt:

  • Eine Datenbank mit aktivierter spaltenbasierter Richtlinie erstellen.
  • Eine Singers-Tabelle definieren, die die spaltenbasierte Richtlinie von der Datenbank übernimmt (lassen Sie columnar_policy = NULL für die Tabellenoption weg).
  • Eine Concerts-Tabelle definieren, für die die spaltenbasierte Richtlinie explizit deaktiviert ist.
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;

Sie können auch ALTER TABLE mit der SET COLUMNAR POLICY-Klausel verwenden, um die spaltenbasierte Richtlinie für eine Tabelle zu aktivieren oder zu deaktivieren. Im folgenden Beispiel wird gezeigt, wie Sie die Richtlinie in der Tabelle Singers deaktivieren:

ALTER TABLE Singers SET COLUMNAR POLICY disabled;

Verwenden Sie RESET, um die Konfiguration der spaltenbasierten Richtlinie auf Datenbankebene zu entfernen:

ALTER DATABASE Music RESET spanner.columnar_policy;

Wenn Sie die spaltenbasierte Engine von Spanner aktivieren, erhöht sich die Speichernutzung der Zieldatenbank oder -tabelle (je nach verwendeter Aktivierungsoption) um etwa 60%. Die genaue Erhöhung hängt vom Datentyp und den Komprimierungseigenschaften ab. Achten Sie darauf, dass die Spanner-Instanz genügend Speicherkapazität hat, um die erhöhte Speichernutzung zu bewältigen. Weitere Informationen finden Sie unter Datenbank limits.

Generierung von spaltenbasierten Dateiformaten

Spanner generiert das spaltenbasierte Dateiformat zur Komprimierungszeit. Die Komprimierung ist ein Hintergrundprozess, der sich in der Regel über mehrere Tage erstreckt. Sie kann jedoch früher erfolgen, wenn die Größe der Datenbank erheblich zunimmt. Weitere Informationen finden Sie unter Optimale spaltenbasierte Abdeckung.

Wenn Sie eine neue Datenbank ohne Daten erstellen und die spaltenbasierte Engine aktivieren, speichert Spanner Daten im spaltenbasierten Format, wenn Sie sie einfügen und wenn Komprimierungen im Hintergrund erfolgen.

Das spaltenbasierte Datenformat wird nicht für Sicherungen generiert.

Wenn Sie die spaltenbasierte Engine von Spanner für eine vorhandene Datenbank aktivieren, die Daten enthält, bietet Spanner einen Mechanismus, um Komprimierungen manuell auszulösen. Weitere Informationen finden Sie unter Datenkomprimierung manuell auslösen.

Nächste Schritte