Configura el motor de columnas

En esta página, se describe cómo habilitar o inhabilitar el motor de columnas en una instancia de AlloyDB para PostgreSQL. También se explica cómo configurar un tamaño inicial apropiado para su almacén de columnas, así como la configuración de la memoria y la caché de almacenamiento para obtener un rendimiento óptimo.

Para usar el motor de columnas cuando usas AlloyDB Omni, consulta Cómo habilitar el motor de columnas en AlloyDB Omni.

Cada una de estas acciones implica cambiar el valor de una marca de base de datos en una de tus instancias de AlloyDB. Para obtener más información sobre cómo configurar marcas de base de datos, consulta Configura marcas de base de datos de una instancia.

Para obtener una descripción general conceptual del motor de columnas de AlloyDB, consulta Acerca del motor de columnas de AlloyDB.

Habilita el motor de columnas

Para usar el motor de columnas en una instancia, establece la marca google_columnar_engine.enabled de la instancia en on.

Después de configurar esta marca, la instancia se reinicia automáticamente.

Para obtener más información sobre cómo configurar marcas de base de datos en AlloyDB, consulta Configura las marcas de base de datos de una instancia.

Configura el tamaño del almacén de columnas

Mientras el motor de columnas está habilitado en una instancia, AlloyDB asigna una parte de la memoria de la instancia para almacenar sus datos de columnas. Si dedicas RAM de alta velocidad a tu almacén de columnas, seguro que AlloyDB puede acceder a los datos de columnas lo más rápido posible.

La memoria y la caché de almacenamiento representan, en conjunto, la capacidad general del motor de columnas.

Configura la memoria para el motor de columnas

Si el almacén de columnas se vuelve más grande que la parte asignada de la memoria de tu instancia, AlloyDB usa automáticamente la capa de caché subyacente de la instancia para almacenar los datos de columnas adicionales.

De forma predeterminada, AlloyDB asigna el 30% de la memoria de la instancia al almacén de columnas y ajusta automáticamente la asignación total si cambias el tamaño de la instancia. Puedes modificar la memoria de la instancia hasta en un 50% como máximo. Para encontrar el tamaño de memoria del motor de columnas recomendado para tu instancia, consulta Cómo recomendar el tamaño de memoria del almacén de columnas.

También puedes establecer la asignación en un tamaño fijo y específico con la marca google_columnar_engine.memory_size_in_mb. Para que AlloyDB vuelva a la asignación predeterminada, quita la marca de la instancia.

Para obtener más información sobre cómo establecer o borrar marcas, consulta Configura las marcas de base de datos de una instancia.

Configura la caché de almacenamiento para el motor de columnas

La caché de almacenamiento del motor de columnas se aprovisiona según el nivel de la instancia.

Nivel de la instancia Tamaño predeterminado de la caché del motor de columnas
Instancia principal Instancia de réplica de lectura
2 vCPU 18.75 GB 37.5 GB
4 vCPU 18.75 GB 37.5 GB
8 vCPU 18.75 GB 37.5 GB
16 CPU virtuales 37.5 GB 37.5 GB
32 vCPU 75 GB 75 GB
64 CPU virtuales 150 GB 150 GB
96 CPU virtuales 300 GB 300 GB
128 CPU virtuales 450 GB 450 GB

La marca google_columnar_engine.storage_cache_size te permite ajustar la caché de almacenamiento del motor de columnas, con las limitaciones de los valores mínimos y máximos que se indican en la siguiente tabla:

Nivel de la instancia Tamaño mínimo de la caché del motor de columnas Tamaño máximo de la caché del motor de columnas
Instancia principal Instancia de réplica de lectura
2 vCPU 0 187.5 GB 375 GB
4 vCPU 0 187.5 GB 375 GB
8 vCPU 0 187.5 GB 375 GB
16 CPU virtuales 0 375 GB 375 GB
32 vCPU 0 750 GB 750 GB
64 CPU virtuales 0 1,500 GB 1,500 GB
96 CPU virtuales 0 3000 GB 3000 GB
128 CPU virtuales 0 4,500 GB 4,500 GB

Cómo supervisar los datos de la caché de almacenamiento del motor de columnas

Para ver información sobre la caché de almacenamiento del motor de columnas, puedes ejecutar una de las siguientes consultas SQL.

Consulta en SQL Descripción
SELECT google_columnar_engine_storage_cache_used(); Muestra el tamaño de la caché de almacenamiento del motor de columnas utilizada.
SELECT google_columnar_engine_storage_cache_available(); Devuelve el tamaño de la caché de almacenamiento del motor de columnas sin usar.
SELECT google_columnar_engine_storage_cache_total(); Muestra el importe total del tamaño configurado de la caché de almacenamiento para el motor de columnas.

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 que califican.

Después de habilitar la unión vectorizada, el planificador 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. Para tomar esta decisión, el planificador compara el costo de ejecutar la consulta con cualquiera de los métodos.

Para habilitar la unión vectorizada en una instancia, establece la marca google_columnar_engine.enable_vectorized_join de la instancia en on.

Para obtener más información sobre cómo configurar marcas de base de datos, consulta Configura las marcas de base de datos de una instancia.

De forma predeterminada, AlloyDB asigna un subproceso a la función de unión vectorizada. Para aumentar la cantidad de subprocesos disponibles para esta función, establece la marca google_columnar_engine.vectorized_join_threads en un valor mayor.

Actualiza manualmente el motor de columnas

De forma predeterminada, el motor de columnas está configurado para actualizar automáticamente el almacén de columnas en segundo plano cuando está habilitado. Es posible que debas actualizar manualmente el almacén de columnas en ciertas situaciones, por ejemplo, si la actualización automática no actualiza una relación con una gran cantidad de bloques no válidos.

Para actualizar manualmente el motor de columnas, ejecuta la siguiente consulta de SQL:

SELECT google_columnar_engine_refresh('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.

Para obtener más información sobre cómo configurar marcas de base de datos en AlloyDB, consulta Configura las marcas de base de datos de una instancia.

Después de configurar esta marca, la instancia se reinicia automáticamente.

Soluciona problemas relacionados con el motor de columnas

Si las columnas no se propagan en el motor de columnas, es posible que se cumpla una de las siguientes situaciones:

  • Las columnas que deseas agregar incluyen un tipo de datos no admitido.

  • No se cumplen los requisitos del motor de columnas.

Para encontrar la causa de este problema, prueba lo siguiente:

  • Revisa los registros de auditoría de tu instancia.

  • Confirma que las tablas o vistas materializadas de nuestra consulta estén en el motor de columnas.

  • Verifica el uso del motor de columnas con la sentencia EXPLAIN.

¿Qué sigue?