Configura el motor de columnas en AlloyDB Omni

Selecciona una versión de la documentación:

En esta página, se describe cómo habilitar o inhabilitar el motor de columnas en un clúster de base de datos de AlloyDB Omni. También se explica cómo configurar un tamaño inicial adecuado para su almacén de columnas.

Para usar el motor de columnas cuando usas AlloyDB para PostgreSQL en Google Cloud, consulta Configura el motor de columnas.

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.

Para establecer esta marca en una instancia, haz lo siguiente:

  1. Ejecuta el ALTER SYSTEM comando de PostgreSQL:

    ALTER SYSTEM SET google_columnar_engine.enabled = 'on'
    
  2. Si deseas ajustar la configuración del motor de columnas, sigue las instrucciones de la siguiente sección antes de reiniciar el servidor de la base de datos. De lo contrario, sigue los dos pasos siguientes para reiniciar el servidor de la base de datos ahora.

  3. Detén el servidor de la base de datos.

  4. Inicia el servidor de la base de datos.

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, te aseguras de que AlloyDB pueda acceder a los datos de columnas lo más rápido posible.

También puedes establecer la asignación en un tamaño fijo y específico con la google_columnar_engine.memory_size_in_mb marca.

Para establecer esta marca en una instancia, haz lo siguiente:

  1. Ejecuta el ALTER SYSTEM comando de PostgreSQL:

    ALTER SYSTEM SET google_columnar_engine.memory_size_in_mb = COLUMN_STORE_SIZE;
    

    Reemplaza COLUMN_STORE_SIZE por el tamaño nuevo del almacén de columnas, en megabytes.

  2. Detén el servidor de la base de datos.

  3. Inicia el servidor de la base de datos.

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 mediante la aplicación de procesamiento vectorizado a las consultas aptas.

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 de PostgreSQL estándar. El planificador toma esta decisión comparando 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 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 asigna un subproceso a la función de unión vectorizada. Puedes aumentar la cantidad de subprocesos disponibles para esta función si estableces la google_columnar_engine.vectorized_join_threads marca en un valor más grande.

Actualiza manualmente tu 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 en SQL:

SELECT google_columnar_engine_refresh('TABLE_NAME');

Reemplaza TABLE_NAME por el nombre de la tabla o la vista materializada que deseas actualizar manualmente.

Inhabilita el motor de columnas

Para inhabilitar el motor de columnas en una instancia, establece la marca google_columnar_engine.enabled en off.

Para establecer esta marca en una instancia, haz lo siguiente:

  1. Ejecuta el ALTER SYSTEM comando de PostgreSQL:

    ALTER SYSTEM SET google_columnar_engine.enabled = 'off'
    
  2. Detén el servidor de la base de datos.

  3. Inicia el servidor de la base de datos.

Soluciona problemas del motor de columnas

Corrige un error de "memoria compartida insuficiente"

Si ejecutas AlloyDB Omni sin suficiente memoria compartida para que la use el motor de columnas, es posible que veas este error:

Insufficient shared memory for generating the columnar formats.

Para solucionar este problema, especifica la cantidad de memoria compartida que está disponible para el contenedor de AlloyDB Omni. La forma de hacerlo difiere según el sistema operativo host.

Linux

Aumenta el tamaño de la partición /dev/shm de tu máquina anfitrión con una técnica como editar el archivo /etc/fstab.

macOS

Instala un nuevo contenedor de AlloyDB Omni y especifica un valor de memoria compartida más grande para la marca --shm-size.

Corrige las columnas que no se propagan

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:

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

  • Verifica el uso del motor de columnas con la EXPLAIN instrucción.

¿Qué sigue?