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 adecuado para su almacén de columnas, así como los ajustes de caché de memoria y almacenamiento para conseguir un rendimiento óptimo.
Para usar el motor de columnas al usar AlloyDB Omni, consulta 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 definir marcas de base de datos, consulta Configurar las 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.
Habilitar el motor columnar
Para usar el motor de columnas en una instancia, define la marca google_columnar_engine.enabled
de la instancia en on
.
Para obtener más información sobre cómo definir marcas de bases de datos en AlloyDB, consulta Configurar las marcas de bases de datos de una instancia.
Configurar el tamaño del almacén de columnas
Mientras el motor columnar está habilitado en una instancia, AlloyDB asigna una parte de la memoria de la instancia para almacenar sus datos en columnas. Al dedicar RAM de alta velocidad a tu almacén de columnas, te aseguras de que AlloyDB pueda acceder a los datos de las columnas lo más rápido posible.
La memoria y la caché de almacenamiento representan juntas la capacidad general del motor en columnas.
Configurar la memoria del motor columnar
Si el almacén de columnas supera la parte asignada de la memoria de tu instancia, AlloyDB usará automáticamente la capa de caché subyacente de la instancia para almacenar los datos de columna adicionales.En AlloyDB, puedes cargar relaciones, vistas materializadas e índices ScaNN en el motor en columnas para acelerar el rendimiento de las consultas.
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 un máximo del 50%. Para saber el tamaño de memoria del motor columnar recomendado para su instancia, consulte Recomendar el tamaño de memoria del almacén de columnas.
También puedes asignar 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 definir o eliminar marcas, consulta Configurar las marcas de la base de datos de una instancia.
Configurar la carga de índices de ScaNN en el motor columnar
El motor de columnas acelera la búsqueda vectorial cuando se rellenan los índices de ScaNN.
Para habilitar la caché de índice columnar, asigna el valor on
a la marca google_columnar_engine.enable_index_caching
.
Para inhabilitar esta función, asigna el valor off
a la marca.
Configurar la caché de almacenamiento del motor columnar
La caché de almacenamiento del motor columnar se aprovisiona según el nivel de la instancia.
.Nivel de instancia | Tamaño predeterminado de la caché del motor columnar | ||
---|---|---|---|
N2 | C4A | ||
Principal | Grupo de réplicas | Grupo de réplicas o principal | |
1 vCPU | N/A | N/A | 0 |
2 vCPUs | 18,75 GB | 37,5 GB | N/A |
4 vCPUs | 18,75 GB | 37,5 GB | 18,75 GB |
8 vCPUs | 18,75 GB | 37,5 GB | 37,75 GB |
16 vCPUs | 37,5 GB | 37,5 GB | 75 GB |
32 vCPUs | 75 GB | 75 GB | 112,5 GB |
48 vCPUs | N/A | N/A | 187,5 GB |
64 vCPUs | 150 GB | 150 GB | 262,5 GB |
72 vCPUs | N/A | N/A | 300 GB |
96 vCPUs | 300 GB | 300 GB | N/A |
128 vCPUs | 450 GB | 450 GB | N/A |
La marca google_columnar_engine.storage_cache_size
te permite ajustar la caché de almacenamiento del motor columnar, con las limitaciones de los valores mínimo y máximo que se indican en la siguiente tabla:
Nivel de instancia | Tamaño mínimo de la caché del motor columnar | Tamaño máximo de la caché del motor en columnas | ||
---|---|---|---|---|
N2 | C4A | |||
Principal | Grupo de réplicas | Grupo de réplicas o principal | ||
1 vCPU | N/A | N/A | N/A | 0 |
2 vCPUs | 0 | 187,5 GB | 375 GB | N/A |
4 vCPUs | 0 | 187,5 GB | 375 GB | 187,5 GB |
8 vCPUs | 0 | 187,5 GB | 375 GB | 375 GB |
16 vCPUs | 0 | 375 GB | 375 GB | 750 GB |
32 vCPUs | 0 | 750 GB | 750 GB | 1125 GB |
48 vCPUs | N/A | N/A | N/A | 1125 GB |
64 vCPUs | 0 | 1500 GB | 1500 GB | 2625 GB |
72 vCPUs | N/A | N/A | N/A | 3000 GB |
96 vCPUs | 0 | 3000 GB | 3000 GB | N/A |
128 vCPUs | 0 | 4500 GB | 4500 GB | N/A |
Monitorizar los datos de la caché de almacenamiento del motor columnar
Para ver y monitorizar los datos sobre la caché de almacenamiento del motor de columnas, puedes usar los siguientes comandos:
Comando | Descripción |
---|---|
SELECT google_columnar_engine_storage_cache_used(); |
Devuelve el tamaño de la caché de almacenamiento del motor de columnas usado. |
SELECT google_columnar_engine_storage_cache_available(); |
Devuelve el tamaño de la caché de almacenamiento del motor columnar no utilizado. |
SHOW google_columnar_engine.storage_cache_size; |
Devuelve la cantidad total del tamaño configurado de la caché de almacenamiento del motor columnar. |
Habilitar la combinación vectorizada
El motor en 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 combinación vectorizada, el optimizador de consultas de AlloyDB tiene la opción de aplicar el operador de combinación vectorizada en lugar del operador de combinación hash estándar de PostgreSQL. El planificador toma esta decisión comparando el coste de ejecutar la consulta con cada uno de los métodos.
Para habilitar la unión vectorizada en una instancia, define la marca
google_columnar_engine.enable_vectorized_join
de la instancia en on
.
AlloyDB asigna un subproceso a la función de unión vectorizada de forma predeterminada. Puedes aumentar el número de hilos disponibles para esta función asignando un valor mayor a la marca google_columnar_engine.vectorized_join_threads
.
Actualizar manualmente el motor de columnas
De forma predeterminada, cuando habilitas el motor columnar, se configura para actualizar automáticamente el almacén de columnas en segundo plano.
En el caso de las cargas de trabajo con una alta tasa de modificaciones de datos, como las operaciones frecuentes de INSERT
, UPDATE
o DELETE
, puede actualizar manualmente el almacén de columnas después de estos cambios para mantener el índice actualizado.
Para actualizar manualmente el motor de columnas, ejecuta la siguiente consulta de SQL:
SELECT google_columnar_engine_refresh('TABLE_NAME');
Sustituye TABLE_NAME
por el nombre de la tabla o de la vista materializada que quieras actualizar manualmente.
Inhabilitar el motor columnar
Para inhabilitar el motor de columbar en una instancia, asigna el valor off
a la marca google_columnar_engine.enabled
.
Después de definir esta marca, la instancia se reiniciará automáticamente.
Solucionar problemas del motor de columnas
Si las columnas no se rellenan en el motor columnar, puede deberse a una de las siguientes situaciones:
Las columnas que quieres añadir incluyen un tipo de datos no admitido.
No se cumplen los requisitos del motor de columnas.
Para averiguar la causa de este problema, prueba lo siguiente:
Revisa los registros de auditoría de tu instancia.
Confirma que las tablas o las vistas materializadas de tu consulta estén en el motor columnar.
Verifica el uso del motor de columnas con la instrucción
EXPLAIN
.
Siguientes pasos
Consulta la lista completa de marcas de la base de datos del motor columnar.
Consulta información sobre la auto-columnarización.
Consulta cómo acelerar las consultas analíticas mediante el motor de columnas de AlloyDB.