Configure o motor de colunas

Esta página descreve como ativar ou desativar o motor de colunas numa instância do AlloyDB para PostgreSQL. Também aborda como configurar um tamanho inicial adequado para o respetivo armazenamento de colunas, bem como as definições de cache de memória e armazenamento para um desempenho ideal.

Para usar o motor de colunas quando usar o AlloyDB Omni, consulte o artigo Ative o motor de colunas no AlloyDB Omni.

Cada uma destas ações envolve a alteração do valor de um indicador da base de dados numa das suas instâncias do AlloyDB. Para mais informações sobre como definir flags da base de dados, consulte o artigo Configure as flags da base de dados de uma instância.

Para uma vista geral conceptual do motor de colunas do AlloyDB, consulte o artigo Acerca do motor de colunas do AlloyDB.

Ative o motor de colunas

Para usar o motor de colunas numa instância, defina a flag google_columnar_engine.enabled da instância como on.

Depois de definir esta flag, a instância é reiniciada automaticamente.

Para mais informações sobre a definição de flags de base de dados no AlloyDB, consulte o artigo Configure as flags de base de dados de uma instância.

Configure o tamanho do armazenamento de colunas

Embora o motor de colunas esteja ativado numa instância, o AlloyDB atribui uma parte da memória da instância para armazenar os respetivos dados de colunas. A dedicação de RAM de alta velocidade ao seu armazenamento de colunas garante que o AlloyDB pode aceder aos dados em formato de colunas o mais rapidamente possível.

A memória e a cache de armazenamento representam em conjunto a capacidade geral do motor de colunas.

Configure a memória para o motor de colunas

Se o armazenamento de colunas ficar maior do que a parte alocada da memória da instância, o AlloyDB usa automaticamente a camada de cache subjacente da instância para armazenar os dados de colunas adicionais.

Por predefinição, o AlloyDB atribui 30% da memória da instância ao armazenamento de colunas e ajusta automaticamente a atribuição total se redimensionar a instância. Pode modificar a memória da instância para um máximo de 50%. Para encontrar o tamanho da memória do motor de colunas recomendado para a sua instância, consulte o artigo Recomendação do tamanho da memória do armazenamento de colunas.

Também pode definir a alocação para um tamanho fixo e específico através da flag google_columnar_engine.memory_size_in_mb. Para que o AlloyDB volte à atribuição predefinida, remova a flag da instância.

Para mais informações sobre como definir ou eliminar flags, consulte o artigo Configure as flags da base de dados de uma instância.

Configure a cache de armazenamento para o motor de colunas

A cache de armazenamento do motor de colunas é aprovisionada de acordo com o nível da instância.

Nível da instância Tamanho da cache do motor colunar predefinido
N2 C4A
Primary Replica pool Replica pool ou principal
1 vCPU N/A N/A 0
2 vCPU 18,75 GB 37,5 GB N/A
4 vCPU 18,75 GB 37,5 GB 18,75 GB
8 vCPU 18,75 GB 37,5 GB 37,75 GB
16 vCPU 37,5 GB 37,5 GB 75 GB
32 vCPU 75 GB 75 GB 112,5 GB
48 vCPU N/A N/A 187,5 GB
64 vCPU 150 GB 150 GB 262,5 GB
72 vCPU N/A N/A 300 GB
96 vCPU 300 GB 300 GB N/A
128 vCPU 450 GB 450 GB N/A

A flag google_columnar_engine.storage_cache_size permite ajustar a cache de armazenamento do motor colunar, com as limitações dos valores mínimo e máximo indicados na tabela seguinte:

Nível da instância Tamanho mínimo da cache do motor colunar Tamanho máximo da cache do motor colunar
N2 C4A
Primary Replica pool Replica pool ou principal
1 vCPU N/A N/A N/A 0
2 vCPU 0 187,5 GB 375 GB N/A
4 vCPU 0 187,5 GB 375 GB 187,5 GB
8 vCPU 0 187,5 GB 375 GB 375 GB
16 vCPU 0 375 GB 375 GB 750 GB
32 vCPU 0 750 GB 750 GB 1125 GB
48 vCPU N/A N/A N/A 1125 GB
64 vCPU 0 1500 GB 1500 GB 2625 GB
72 vCPU N/A N/A N/A 3000 GB
96 vCPU 0 3000 GB 3000 GB N/A
128 vCPU 0 4500 GB 4500 GB N/A

Monitorize os dados da cache de armazenamento para o motor de colunas

Para ver informações sobre a cache de armazenamento do motor de colunas, pode executar uma das seguintes consultas SQL.

Consulta SQL Descrição
SELECT google_columnar_engine_storage_cache_used(); Devolve o tamanho da cache de armazenamento do motor colunar usado.
SELECT google_columnar_engine_storage_cache_available(); Devolve o tamanho da cache de armazenamento do motor colunar não usado.
SELECT google_columnar_engine_storage_cache_total(); Devolve o valor total da dimensão configurada da cache de armazenamento para o motor de colunas.

Ative a junção vetorizada

O motor de colunas tem uma funcionalidade de junção vetorizada que pode melhorar o desempenho das junções aplicando o processamento vetorizado a consultas qualificadas.

Depois de ativar a junção vetorizada, o planeador de consultas do AlloyDB tem a opção de aplicar o operador de junção vetorizada em vez do operador de junção hash do PostgreSQL padrão. O planeador toma esta decisão comparando o custo de execução da consulta através de qualquer um dos métodos.

Para ativar a junção vetorizada numa instância, defina a flag google_columnar_engine.enable_vectorized_join da instância como on.

Para mais informações sobre como definir flags de base de dados, consulte o artigo Configure as flags de base de dados de uma instância.

Por predefinição, o AlloyDB atribui um segmento à funcionalidade de junção vetorizada. Pode aumentar o número de threads disponíveis para esta funcionalidade definindo a flag google_columnar_engine.vectorized_join_threads para um valor superior.

Atualize manualmente o motor de colunas

Por predefinição, o motor de colunas está definido para atualizar automaticamente o arquivo de colunas em segundo plano quando ativado. Pode ter de atualizar manualmente o armazenamento em colunas em determinadas situações, como se a atualização automática não atualizar uma relação com um número elevado de blocos inválidos.

Para atualizar manualmente o motor da coluna, execute a seguinte consulta SQL:

SELECT google_columnar_engine_refresh('TABLE_NAME');

Substitua TABLE_NAME pelo nome da tabela ou da vista materializada que quer atualizar manualmente.

Desative o motor de colunas

Para desativar o motor de colunas numa instância, defina a flag google_columnar_engine.enabled como off.

Para mais informações sobre a definição de flags de base de dados no AlloyDB, consulte o artigo Configure as flags de base de dados de uma instância.

Depois de definir esta flag, a instância é reiniciada automaticamente.

Resolva problemas do motor de colunas

Se as colunas não forem preenchidas no motor de colunas, uma das seguintes situações pode ser verdadeira:

  • As colunas que quer adicionar incluem um tipo de dados não suportado.

  • Os requisitos do motor de colunas não estão a ser cumpridos.

Para encontrar a causa deste problema, experimente o seguinte:

  • Reveja os registos de auditoria da sua instância.

  • Confirme que as tabelas ou as vistas materializadas na nossa consulta estão no motor de colunas.

  • Valide a utilização do motor de colunas através da declaração EXPLAIN.

O que se segue?