Configurer le moteur de données en colonnes Spanner

Cette page explique comment activer le moteur de données en colonnes Spanner sur une base de données, une table ou un index, et comment accélérer la génération de formats de fichiers.

Activer le moteur de données en colonnes Spanner (Google SQL)

Le moteur de données en colonnes Spanner est activé à l'aide d'une clause SET OPTIONS avec l'option columnar_policy. Vous pouvez appliquer cette option lorsque vous créez ou modifiez des objets de schéma DATABASE, TABLE ou INDEX. Les objets de schéma SEARCH INDEX et VECTOR INDEX ne sont jamais au format colonne.

Les tables et les index héritent de la valeur columnar_policy spécifiée au niveau de la base de données.

L'option columnar_policy comporte les indicateurs suivants :

  • 'enabled' ou 'disabled' activent ou désactivent le moteur columnar pour l'objet de schéma spécifique.
  • NULL (par défaut) utilise la règle du moteur de données en colonnes de l'objet parent, le cas échéant. NULL efface les paramètres précédents d'un objet de tableau.

Vous pouvez également omettre OPTIONS pour hériter de columnar_policy de l'objet parent.

L'exemple suivant montre comment :

  • Créez une base de données avec la stratégie de colonne activée.
  • Définissez une table Singers qui hérite de la règle de colonne de la base de données (omettez columnar_policy = NULL pour l'option de table).
  • Définissez une table Concerts avec la stratégie de colonne explicitement désactivée.
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');

Vous pouvez également utiliser ALTER TABLE avec la clause SET OPTIONS pour activer ou désactiver columnar_policy sur une table. L'exemple suivant montre comment désactiver la règle dans le tableau Singers :

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

Activer le moteur de données en colonnes Spanner (PostgreSQL)

Vous pouvez activer le moteur en colonnes Spanner pour toutes les tables et tous les index en exécutant l'instruction suivante :

ALTER DATABASE db_name SET spanner.columnar_policy TO enabled

Vous pouvez activer le moteur columnar Spanner pour des tables et des index spécifiques en ajoutant l'option COLUMNAR POLICY enabled lors de la création ou de la modification d'un objet de schéma TABLE ou INDEX. Les objets de schéma SEARCH INDEX et VECTOR INDEX ne sont jamais au format colonne.

Les tables et les index héritent de la valeur COLUMNAR POLICY spécifiée au niveau de la base de données.

L'option de mot clé COLUMNAR POLICY peut prendre les valeurs suivantes :

  • enabled ou disabled activent ou désactivent le moteur columnar pour l'objet de schéma spécifique.
  • NULL utilise la règle du moteur de données en colonnes de l'objet parent, le cas échéant. NULL efface le paramètre précédent sur un objet de schéma de table ou d'index.

L'exemple suivant montre comment :

  • Créez une base de données avec la stratégie de colonne activée.
  • Définissez une table Singers qui hérite de la règle de colonne de la base de données (omettez columnar_policy = NULL pour l'option de table).
  • Définissez une table Concerts avec la stratégie de colonne explicitement désactivée.
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;

Vous pouvez également utiliser ALTER TABLE avec la clause SET COLUMNAR POLICY pour activer ou désactiver la règle de colonne sur une table. L'exemple suivant montre comment désactiver la règle dans le tableau Singers :

ALTER TABLE Singers SET COLUMNAR POLICY disabled;

Pour supprimer la configuration de la stratégie de colonne au niveau de la base de données, utilisez RESET :

ALTER DATABASE Music RESET spanner.columnar_policy;

L'activation du moteur en colonnes Spanner augmente l'utilisation du stockage de la base de données ou de la table cible (selon l'option d'activation utilisée) d'environ 60 %. L'augmentation exacte dépend du type de données et de leurs propriétés de compressibilité. Il est important de s'assurer que l'instance Spanner dispose d'une capacité de stockage suffisante pour faire face à l'augmentation de l'utilisation du stockage. Pour en savoir plus, consultez Limites des bases de données.

Génération de fichiers au format en colonnes

Spanner génère le format de fichier en colonnes au moment de la compaction. La compaction est un processus en arrière-plan qui s'étend généralement sur plusieurs jours, mais qui peut se produire plus tôt si la taille de la base de données augmente considérablement. Pour en savoir plus, consultez Couverture optimale des colonnes.

Si vous créez une base de données sans données et que vous activez le moteur en colonnes, Spanner stocke les données au format colonne à mesure que vous les insérez et que des compressions se produisent en arrière-plan.

Le format de données en colonnes n'est pas généré pour les sauvegardes.

Lorsque vous activez le moteur en colonnes Spanner sur une base de données existante contenant des données, Spanner fournit un mécanisme permettant de déclencher manuellement les compactages. Pour en savoir plus, consultez Déclencher manuellement une compaction des données.

Étapes suivantes