Configurar o mecanismo colunar do Spanner

Nesta página, descrevemos como ativar o mecanismo colunar do Spanner em um banco de dados, tabela ou índice e acelerar a geração de formatos de arquivo.

Ativar o mecanismo colunar do Spanner (SQL do Google)

O mecanismo colunar do Spanner é ativado usando uma cláusula SET OPTIONS com a opção columnar_policy. É possível aplicar essa opção ao criar ou alterar objetos de esquema DATABASE, TABLE ou INDEX. Os objetos de esquema SEARCH INDEX e VECTOR INDEX nunca estão no formato colunar.

As tabelas e os índices herdam a columnar_policy especificada no nível do banco de dados.

A opção columnar_policy tem as seguintes flags:

  • 'enabled' ou 'disabled' ativa ou desativa o mecanismo colunar para o objeto de esquema específico.
  • NULL (padrão) usa a política de mecanismo colunar do objeto pai, se houver. NULL limpa as configurações anteriores em um objeto de tabela.

Também é possível omitir OPTIONS para herdar a columnar_policy do objeto pai.

O exemplo a seguir mostra como:

  • Criar um banco de dados com a política colunar ativada.
  • Definir uma tabela Singers que herda a política colunar do banco de dados (omita columnar_policy = NULL para a opção de tabela).
  • Definir uma tabela Concerts com a política colunar explicitamente desativada.
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');

Também é possível usar ALTER TABLE com a cláusula SET OPTIONS para ativar ou desativar a columnar_policy em uma tabela. O exemplo a seguir mostra como desativar a política na tabela Singers:

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

Ativar o mecanismo colunar do Spanner (PostgreSQL)

É possível ativar o mecanismo colunar do Spanner para todas as tabelas e índices emitindo esta instrução:

ALTER DATABASE db_name SET spanner.columnar_policy TO enabled

É possível ativar o mecanismo colunar do Spanner para tabelas e índices específicos adicionando a opção COLUMNAR POLICY enabled ao criar ou alterar um objeto de esquema TABLE ou INDEX. Os objetos de esquema SEARCH INDEX e VECTOR INDEX nunca estão no formato colunar.

As tabelas e os índices herdam a COLUMNAR POLICY especificada no nível do banco de dados.

A opção de palavra-chave COLUMNAR POLICY tem os seguintes valores possíveis:

  • enabled ou disabled ativa ou desativa o mecanismo colunar para o objeto de esquema específico.
  • NULL usa a política de mecanismo colunar do objeto pai, se houver. NULL limpa a configuração anterior em um objeto de esquema de tabela ou índice.

O exemplo a seguir mostra como:

  • Criar um banco de dados com a política colunar ativada.
  • Definir uma tabela Singers que herda a política colunar do banco de dados (omita columnar_policy = NULL para a opção de tabela).
  • Definir uma tabela Concerts com a política colunar explicitamente desativada.
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;

Também é possível usar ALTER TABLE com a cláusula SET COLUMNAR POLICY para ativar ou desativar a política colunar em uma tabela. O exemplo a seguir mostra como desativar a política na tabela Singers:

ALTER TABLE Singers SET COLUMNAR POLICY disabled;

Para remover a configuração da política colunar no nível do banco de dados, use RESET:

ALTER DATABASE Music RESET spanner.columnar_policy;

A ativação do mecanismo colunar do Spanner aumenta o uso de armazenamento do banco de dados ou da tabela de destino (dependendo da opção de ativação usada) em aproximadamente 60%. O aumento exato depende do tipo de dados e das propriedades de compressibilidade. É importante garantir que a instância do Spanner tenha capacidade de armazenamento suficiente para acomodar o aumento no uso de armazenamento. Para mais informações, consulte Limites do banco de dados.

Geração de formato de arquivo colunar

O Spanner gera o formato de arquivo colunar no momento da compactação. A compactação é um processo em segundo plano que normalmente é distribuído por vários dias, mas pode acontecer mais cedo se o tamanho do banco de dados aumentar substancialmente. Para mais informações, consulte Cobertura colunar ideal.

Se você criar um novo banco de dados sem dados e ativar o mecanismo colunar, o Spanner vai armazenar os dados no formato colunar à medida que você os insere e as compactações ocorrem em segundo plano.

O formato de dados colunar não é gerado para backups.

Quando você ativa o mecanismo colunar do Spanner em um banco de dados que já tem dados, o Spanner oferece um mecanismo para acionar compactações manualmente. Para mais informações, consulte Acionar manualmente uma compactação de dados.

A seguir