Configure o motor colunar no AlloyDB Omni

Selecione uma versão da documentação:

Esta página descreve como ativar ou desativar o motor de colunas num cluster de base de dados do AlloyDB Omni. Também aborda como configurar um tamanho inicial adequado para o respetivo armazenamento de colunas.

Para usar o motor de colunas quando usar o AlloyDB para PostgreSQL no Google Cloud, consulte o artigo Configure o motor de colunas.

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.

Para definir esta flag numa instância, faça o seguinte:

  1. Execute o comando ALTER SYSTEM do PostgreSQL:

    ALTER SYSTEM SET google_columnar_engine.enabled = 'on'
    
  2. Se quiser ajustar a configuração do motor de colunas, siga as instruções na secção seguinte antes de reiniciar o servidor da base de dados. Caso contrário, siga os dois passos seguintes para reiniciar o servidor de base de dados agora.

  3. Pare o servidor de base de dados.

  4. Inicie o servidor de base de dados.

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.

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 definir esta flag numa instância, faça o seguinte:

  1. Execute o comando ALTER SYSTEM do PostgreSQL:

    ALTER SYSTEM SET google_columnar_engine.memory_size_in_mb = COLUMN_STORE_SIZE;
    

    Substitua COLUMN_STORE_SIZE pelo novo tamanho da coluna store, em megabytes.

  2. Pare o servidor de base de dados.

  3. Inicie o servidor de base de dados.

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 definir esta flag numa instância, execute o comando ALTER SYSTEM PostgreSQL:

ALTER SYSTEM SET google_columnar_engine.enable_vectorized_join = 'on';

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 definir esta flag numa instância, faça o seguinte:

  1. Execute o comando ALTER SYSTEM do PostgreSQL:

    ALTER SYSTEM SET google_columnar_engine.enabled = 'off'
    
  2. Pare o servidor de base de dados.

  3. Inicie o servidor de base de dados.

Resolva problemas do motor de colunas

Corrija um erro de "memória partilhada insuficiente"

Se executar o AlloyDB Omni sem memória partilhada suficiente para o motor de colunas usar, pode ver este erro:

Insufficient shared memory for generating the columnar formats.

Pode resolver este problema especificando a quantidade de memória partilhada disponível para o contentor do AlloyDB Omni. A forma como o faz varia consoante o sistema operativo do anfitrião

Linux

Aumente o tamanho da partição /dev/shm da máquina anfitriã através de uma técnica como a edição do ficheiro /etc/fstab.

macOS

Instale um novo contentor do AlloyDB Omni, especificando um valor de memória partilhada maior para a flag --shm-size.

Corrija o problema de colunas que não são preenchidas

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:

  • 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?