Configurar o mecanismo de colunas no AlloyDB Omni

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

Para usar o mecanismo colunar ao usar o AlloyDB para PostgreSQL no Google Cloud, consulte Configurar o mecanismo colunar.

Para uma visão geral conceitual do mecanismo de colunas do AlloyDB, consulte Sobre o mecanismo de colunas do AlloyDB.

Ativar o mecanismo colunar

Para usar o mecanismo de colunas em uma instância, defina a flag google_columnar_engine.enabled da instância como on.

Para definir essa flag em uma instância, faça o seguinte:

  1. Execute o comando ALTER SYSTEM do PostgreSQL:

    ALTER SYSTEM SET google_columnar_engine.enabled = 'on'
    
  2. Se você quiser ajustar a configuração do mecanismo de colunas, siga as instruções na próxima seção antes de reiniciar o servidor de banco de dados. Caso contrário, siga as duas próximas etapas para reiniciar o servidor de banco de dados agora.

  3. Interromper o servidor de banco de dados.

  4. Inicie o servidor de banco de dados.

Configurar o tamanho do armazenamento de colunas

Enquanto o mecanismo de colunas está ativado em uma instância, o AlloyDB aloca uma parte da memória da instância para armazenar os dados de colunas. A alocação de RAM de alta velocidade para o armazenamento de colunas garante que o AlloyDB possa acessar os dados de colunas o mais rápido possível.

Também é possível definir a alocação para um tamanho fixo e específico usando a flag google_columnar_engine.memory_size_in_mb. Para definir essa flag em uma 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 loja de colunas, em megabytes.

  2. Interromper o servidor de banco de dados.

  3. Inicie o servidor de banco de dados.

Ativar a união vetorial

O mecanismo colunar tem um recurso de junção vetorial que pode melhorar o desempenho das junções aplicando o processamento vetorial a consultas qualificadas.

Depois de ativar a mesclagem vetorizada, o planejador de consulta do AlloyDB tem a opção de aplicar o operador de mesclagem vetorizado em vez de o operador de hash padrão do PostgreSQL. O planejador toma essa decisão comparando o custo de execução da consulta usando um dos métodos.

Para ativar a mesclagem vetorizada em uma instância, defina a flag google_columnar_engine.enable_vectorized_join da instância como on.

Para definir essa flag em uma instância, execute o comando ALTER SYSTEM do PostgreSQL:

ALTER SYSTEM SET google_columnar_engine.enable_vectorized_join = 'on';

O AlloyDB aloca uma linha de execução para o recurso de mesclagem vetorizado por padrão. É possível aumentar o número de linhas de execução disponíveis para esse recurso definindo a flag google_columnar_engine.vectorized_join_threads para um valor maior.

Atualizar manualmente o mecanismo colunar

Por padrão, o mecanismo de colunas é configurado para atualizar automaticamente o armazenamento de colunas em segundo plano quando ativado. Talvez seja necessário atualizar manualmente a loja de colunas em determinadas situações, por exemplo, se a atualização automática não atualizar uma relação com um grande número de blocos inválidos.

Para atualizar manualmente o mecanismo de colunas, execute a seguinte consulta SQL:

SELECT google_columnar_engine_refresh('TABLE_NAME');

Substitua TABLE_NAME pelo nome da tabela ou da visualização materializada que você quer atualizar manualmente.

Desativar o mecanismo colunar

Para desativar o motor de coluna em uma instância, defina a flag google_columnar_engine.enabled como off.

Para definir essa flag em uma instância, faça o seguinte:

  1. Execute o comando ALTER SYSTEM do PostgreSQL:

    ALTER SYSTEM SET google_columnar_engine.enabled = 'off'
    
  2. Interromper o servidor de banco de dados.

  3. Inicie o servidor de banco de dados.

Resolver problemas no mecanismo colunar

Corrigir um erro de "memória compartilhada insuficiente"

Se você executar o AlloyDB Omni sem memória compartilhada suficiente para que o mecanismo colunar seja usado, poderá aparecer este erro:

Insufficient shared memory for generating the columnar formats.

Para resolver esse problema, especifique a quantidade de memória compartilhada disponível para o contêiner AlloyDB Omni. A maneira de fazer isso varia de acordo com o sistema operacional do host.

Linux

Aumente o tamanho da partição /dev/shm da máquina host usando uma técnica, como editar o arquivo /etc/fstab.

macOS

Instale um novo contêiner do AlloyDB Omni, especificando um valor de memória compartilhada maior para a flag --shm-size.

Corrigir colunas que não estão sendo preenchidas

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

  • As colunas que você quer adicionar incluem um tipo de dados não compatível.

  • Os requisitos do mecanismo colunar não estão sendo atendidos.

Para encontrar a causa desse problema, tente o seguinte:

  • Confirme que as tabelas ou visualizações materializadas na consulta estão no mecanismo de colunas.

  • Verifique o uso do mecanismo de colunas usando a instrução EXPLAIN.

  • A seguir