Para obtener una descripción general conceptual del motor de columnas de AlloyDB, consulta Descripción general del motor de columnas de AlloyDB Omni.
Habilita el motor de columnas
Para usar el motor columnar en una instancia, establece la marca google_columnar_engine.enabled
de la instancia en on
.
Los pasos que uses para configurar esta marca en una instancia dependen de si ejecutas AlloyDB Omni en un contenedor o en un clúster de Kubernetes.
Un solo servidor
Para configurar google_columnar_engine.enabled
como on
, sigue estos pasos:
Ejecuta el comando
ALTER SYSTEM
de PostgreSQL:ALTER SYSTEM SET google_columnar_engine.enabled = 'on'
Si deseas ajustar la configuración del motor columnar, sigue las instrucciones de la siguiente sección antes de reiniciar el servidor de la base de datos. De lo contrario, completa el siguiente paso para reiniciar el servidor de la base de datos ahora.
Para que el cambio en los parámetros de configuración surta efecto, reinicia el contenedor en ejecución con AlloyDB Omni.
Docker
sudo docker restart CONTAINER_NAME
Podman
sudo podman restart CONTAINER_NAME
Kubernetes
Para establecer la marca google_columnar_engine.enabled
en on
, modifica el manifiesto del clúster de la base de datos para agregar el atributo parameters
a la sección primarySpec
:
apiVersion: alloydbomni.dbadmin.goog/v1
kind: DBCluster
metadata:
name: CLUSTER_NAME
spec:
databaseVersion: "16.3.0"
primarySpec:
parameters:
google_columnar_engine.enabled: "on"
Reemplaza CLUSTER_NAME
por el nombre de tu clúster de base de datos. Es el mismo nombre del clúster de la base de datos que declaraste cuando lo creaste.
Configura el tamaño del almacén de columnas
Mientras el motor de columnas está habilitado en una instancia, AlloyDB Omni asigna una parte de la memoria de la instancia para almacenar sus datos de columnas. Dedicar RAM de alta velocidad a tu almacén de columnas verifica que AlloyDB Omni pueda acceder a los datos de columnas lo más rápido posible.
La memoria y la caché de almacenamiento juntas representan la capacidad general del motor de columnas.
Cómo configurar la memoria
Puedes establecer la asignación en un tamaño fijo con la marca google_columnar_engine.memory_size_in_mb
.
Los pasos que uses para configurar la memoria del almacén de columnas para AlloyDB Omni dependen de si ejecutas AlloyDB Omni en un contenedor o en un clúster de Kubernetes.
Un solo servidor
Para establecer la marca google_columnar_engine.memory_size_in_mb
en una instancia, haz lo siguiente:
Para configurar la memoria, ejecuta el comando
ALTER SYSTEM
de PostgreSQL:ALTER SYSTEM SET google_columnar_engine.memory_size_in_mb = COLUMN_MEMORY_SIZE;
Reemplaza
COLUMN_MEMORY_SIZE
por el nuevo tamaño del almacenamiento de la columna, en megabytes, por ejemplo,256
.Para que el cambio en los parámetros de configuración surta efecto, reinicia el contenedor en ejecución con AlloyDB Omni.
Docker
sudo docker restart CONTAINER_NAME
Podman
sudo podman restart CONTAINER_NAME
Kubernetes
Para establecer la marca google_columnar_engine.memory_size_in_mb
, modifica el manifiesto del clúster de la base de datos para agregar el atributo parameters
a la sección primarySpec
:
apiVersion: alloydbomni.dbadmin.goog/v1
kind: DBCluster
metadata:
name: CLUSTER_NAME
spec:
databaseVersion: "16.3.0"
primarySpec:
parameters:
google_columnar_engine.memory_size_in_mb: "COLUMN_MEMORY_SIZE"
Reemplaza lo siguiente:
CLUSTER_NAME
: Es el nombre de tu clúster de base de datos. Es el mismo nombre del clúster de la base de datos que declaraste cuando lo creaste.COLUMN_MEMORY_SIZE
: Es el nuevo tamaño del almacenamiento de la columna, en megabytes; por ejemplo,256
.
Configura la caché de almacenamiento
Antes de configurar la caché de almacenamiento, debes habilitar la caché de disco de AlloyDB Omni.
Los pasos que sigues para habilitar la caché de almacenamiento para AlloyDB Omni dependen de si ejecutas AlloyDB Omni en un contenedor o en un clúster de Kubernetes.
Un solo servidor
Configura la caché de almacenamiento de la siguiente manera:
ALTER SYSTEM SET google_columnar_engine.storage_cache_size = STORAGE_CACHE_SIZE;
Reemplaza
STORAGE_CACHE_SIZE
por el tamaño de la caché de almacenamiento que desees, en megabytes. De forma predeterminada, el 5% de la caché de disco se asigna al motor columnar. El valor máximo permitido para esta marca es el 50% de la caché de disco total o 1,000 * google_columnar_engine.memory_size_in_mb, el que sea menor.Para que el cambio en los parámetros de configuración surta efecto, reinicia el contenedor en ejecución con AlloyDB Omni.
Docker
sudo docker restart CONTAINER_NAME
Podman
sudo podman restart CONTAINER_NAME
Kubernetes
Para habilitar la caché de almacenamiento de tu base de datos, modifica el manifiesto del clúster de la base de datos para agregar el atributo columnarSpillToDisk
a la sección features
de la sección primarySpec
:
apiVersion: alloydbomni.dbadmin.goog/v1
kind: DBCluster
metadata:
name: CLUSTER_NAME
spec:
databaseVersion: "16.3.0"
primarySpec:
features:
columnarSpillToDisk:
cacheSize: STORAGE_CACHE_SIZE
ultraFastCache:
cacheSize: ULTRAFAST_CACHE_SIZE
genericVolume:
storageClass: "STORAGE_CLASS_NAME"
...
Reemplaza lo siguiente:
CLUSTER_NAME
: Es el nombre de tu clúster de base de datos. Es el mismo nombre del clúster de la base de datos que declaraste cuando lo creaste.STORAGE_CACHE_SIZE
: Es el tamaño de la caché de almacenamiento columnar, por ejemplo,5Gi
. Si no especificas un valor para este campo, se asigna el 5% de la caché de disco al motor columnar de forma predeterminada.ULTRAFAST_CACHE_SIZE
: El tamaño de la caché, por ejemplo,100Gi
. Debe ser superior ashared_buffers
. Este campo es opcional. Si no especificas el valor de este campo, AlloyDB Omni usa todo el espacio restante en el disco, lo que se aplica tanto a AlloyDB Omni en un contenedor como en un clúster de Kubernetes. Para obtener más información sobre las unidades de medida, consulta Unidades de recursos de memoria.STORAGE_CLASS_NAME
: Es el nombre de la clase de almacenamiento del volumen de caché ultrarrápido, por ejemplo,local-storage
.
Habilita la unión vectorizada
El motor de columnas tiene una función de unión vectorizada que puede mejorar el rendimiento de las uniones aplicando el procesamiento vectorizado a las consultas aptas.
Después de habilitar la unión vectorizada, el optimizador de consultas de AlloyDB tiene la opción de aplicar el operador de unión vectorizada en lugar del operador de unión hash estándar de PostgreSQL. El optimizador toma esta decisión comparando el costo de ejecutar la consulta con cada método.
Para habilitar la unión vectorizada en una instancia, establece la marca google_columnar_engine.enable_vectorized_join
de la instancia en on
.
Para establecer esta marca en una instancia, ejecuta el comando ALTER SYSTEM
de PostgreSQL:
ALTER SYSTEM SET google_columnar_engine.enable_vectorized_join = 'on';
De forma predeterminada, AlloyDB Omni asigna un subproceso a la función de unión vectorizada. Puedes aumentar la cantidad de subprocesos disponibles para esta función configurando la marca google_columnar_engine.vectorized_join_threads
en un valor mayor. El valor máximo es cpu_count * 2
.
Actualiza manualmente tu motor de columnas
De forma predeterminada, cuando el motor de columnas está habilitado, actualiza el almacén de columnas en segundo plano.
Para actualizar manualmente el motor de columnas, ejecuta la siguiente consulta en SQL:
SELECT google_columnar_engine_refresh(relation =>'TABLE_NAME');
Reemplaza TABLE_NAME
por el nombre de la tabla o la vista materializada que deseas actualizar de forma manual.
Inhabilita el motor de columnas
Para inhabilitar el motor de Columbar en una instancia, establece la marca google_columnar_engine.enabled
en off
.
Los pasos que uses para configurar esta marca en una instancia dependen de si ejecutas AlloyDB Omni en un contenedor en un solo servidor o en un clúster de Kubernetes.
Un solo servidor
Para configurar google_columnar_engine.enabled
como off
, sigue estos pasos:
ALTER SYSTEM SET google_columnar_engine.enabled = 'off'
- Para que el cambio en los parámetros de configuración surta efecto, reinicia el contenedor en ejecución con AlloyDB Omni.
Docker
Para reiniciar un contenedor de AlloyDB Omni, ejecuta el comando docker container restart
:
sudo docker restart CONTAINER_NAME
Reemplaza CONTAINER_NAME
por el nombre que le asignaste al contenedor de AlloyDB Omni cuando lo instalaste.
Podman
Para reiniciar un contenedor de AlloyDB Omni, ejecuta el comando podman container start
:
sudo podman restart CONTAINER_NAME
Reemplaza CONTAINER_NAME
por el nombre que le asignaste al contenedor de AlloyDB Omni cuando lo instalaste.
Kubernetes
Para establecer la marca google_columnar_engine.enabled
en off
, modifica el manifiesto del clúster de la base de datos para agregar el atributo parameters
a la sección primarySpec
:
apiVersion: alloydbomni.dbadmin.goog/v1
kind: DBCluster
metadata:
name: CLUSTER_NAME
spec:
databaseVersion: "16.3.0"
primarySpec:
parameters:
google_columnar_engine.enabled: "off"
Reemplaza CLUSTER_NAME
por el nombre de tu clúster de base de datos. Es el mismo nombre del clúster de la base de datos que declaraste cuando lo creaste.
¿Qué sigue?
Consulta la lista completa de marcas de bases de datos del motor columnar.
Sigue el instructivo del codelab de Google Acelera las consultas analíticas con el motor de columnas en AlloyDB Omni.