En esta página, se describe cómo habilitar el motor de columnas de Spanner en una base de datos, una tabla o un índice, y acelerar la generación de formatos de archivo.
Habilita el motor de columnas de Spanner (GoogleSQL)
El motor de columnas de Spanner se habilita con una cláusula SET OPTIONS con la opción columnar_policy. Puedes aplicar esta opción cuando creas o modificas objetos de esquema DATABASE, TABLE o INDEX. Los objetos de esquema SEARCH INDEX y VECTOR INDEX nunca están en formato columnar.
Las tablas y los índices heredan la columnar_policy especificada a nivel de la base de datos.
La opción columnar_policy tiene las siguientes marcas:
'enabled'o'disabled'activa o desactiva el motor de columnas para el objeto de esquema específico.NULL(predeterminado) usa la política del motor de columnas del objeto superior, si existe.NULLborra la configuración anterior en un objeto de tabla.
También puedes omitir OPTIONS para heredar la columnar_policy del objeto superior.
En el siguiente ejemplo, se muestra cómo hacer lo siguiente:
- Crear una base de datos con la política de columnas habilitada
- Definir una tabla
Singersque herede la política de columnas de la base de datos (omitecolumnar_policy = NULLpara la opción de tabla) - Definir una tabla
Concertscon la política de columnas inhabilitada de forma explícita
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');
También puedes usar ALTER TABLE con la cláusula SET OPTIONS para habilitar o inhabilitar la columnar_policy en una tabla. En el siguiente ejemplo, se muestra cómo inhabilitar la política en la tabla Singers:
ALTER TABLE Singers SET OPTIONS (columnar_policy = 'disabled');
Habilita el motor de columnas de Spanner (Postgres)
Para habilitar el motor de columnas de Spanner para todas las tablas y los índices, emite esta instrucción:
ALTER DATABASE db_name SET spanner.columnar_policy TO enabled
Para habilitar el motor de columnas de Spanner para tablas y índices específicos, agrega la opción COLUMNAR POLICY enabled cuando crees o modifiques un objeto de esquema TABLE o INDEX. Los objetos de esquema SEARCH INDEX y VECTOR INDEX nunca están en formato columnar.
Las tablas y los índices heredan la COLUMNAR POLICY especificada a nivel de la base de datos.
La opción de palabra clave COLUMNAR POLICY tiene los siguientes valores posibles:
enabledodisabledactiva o desactiva el motor de columnas para el objeto de esquema específico.NULLusa la política del motor de columnas del objeto superior, si existe.NULLborra la configuración anterior en un objeto de esquema de tabla o índice.
En el siguiente ejemplo, se muestra cómo hacer lo siguiente:
- Crear una base de datos con la política de columnas habilitada
- Definir una tabla
Singersque herede la política de columnas de la base de datos (omitecolumnar_policy = NULLpara la opción de tabla) - Definir una tabla
Concertscon la política de columnas inhabilitada de forma explícita
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;
También puedes usar ALTER TABLE con la cláusula SET COLUMNAR POLICY para habilitar o inhabilitar la política de columnas en una tabla. En el siguiente ejemplo, se muestra cómo inhabilitar la política en la tabla Singers:
ALTER TABLE Singers SET COLUMNAR POLICY disabled;
Para quitar la configuración de la política de columnas a nivel de la base de datos, usa RESET:
ALTER DATABASE Music RESET spanner.columnar_policy;
Habilitar el motor de columnas de Spanner aumenta el uso de almacenamiento de la base de datos o la tabla de destino (según la opción de habilitación que se use) en aproximadamente un 60%. El aumento exacto depende del tipo de datos y de sus propiedades de compresibilidad. Es importante asegurarse de que la instancia de Spanner tenga suficiente capacidad de almacenamiento para adaptarse al aumento en el uso del almacenamiento. Para obtener más información, consulta Límites de la base de datos.
Generación de formato de archivo columnar
Spanner genera el formato de archivo columnar en el momento de la compactación. La compactación es un proceso en segundo plano que suele extenderse durante varios días, pero puede ocurrir antes si el tamaño de la base de datos aumenta de manera considerable. Para obtener más información, consulta Cobertura columnar óptima.
Si creas una base de datos nueva sin datos y habilitas el motor de columnas, Spanner almacena los datos en formato columnar a medida que los insertas y a medida que se producen compactaciones en segundo plano.
El formato de datos columnar no se genera para las copias de seguridad.
Cuando habilitas el motor de columnas de Spanner en una base de datos existente que tiene datos, Spanner proporciona un mecanismo para activar las compactaciones de forma manual. Para obtener más información, consulta Activa una compactación de datos de forma manual.
¿Qué sigue?
- Obtén información sobre el motor de columnas.
- Obtén información para consultar datos columnares.
- Obtén información para supervisar el motor de columnas.