Configurar o mecanismo colunar

Para acelerar as consultas analíticas e otimizar o desempenho de cargas de trabalho de processamento transacional e analítico híbrido (HTAP), ative o mecanismo colunar em uma instância do AlloyDB para PostgreSQL. Também é possível configurar o tamanho inicial da memória para o repositório de colunas e ajustar as configurações de cache de memória e armazenamento para atender aos requisitos da carga de trabalho.

Para usar o mecanismo colunar no AlloyDB Omni, consulte Ativar o mecanismo colunar no AlloyDB Omni.

Cada uma dessas ações envolve mudar o valor de uma flag de banco de dados em uma das instâncias do AlloyDB. Para mais informações, consulte Configurar flags de bancos de dados de uma instância.

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

Ativar o mecanismo colunar

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

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

Para mais informações sobre como definir flags de banco de dados no AlloyDB, consulte Configurar flags de banco de dados de uma instância.

Configurar o tamanho do repositório de colunas

Enquanto o mecanismo colunar está ativado em uma instância, o AlloyDB aloca uma parte da memória da instância para armazenar os dados colunares. Dedicar RAM de alta velocidade ao repositório de colunas garante que o AlloyDB possa acessar os dados colunares o mais rápido possível.

A memória e o cache de armazenamento representam juntos a capacidade geral do mecanismo colunar.

Configurar a memória para o mecanismo colunar

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

No AlloyDB, é possível carregar relações, visualizações materializadas e índices vetoriais no mecanismo colunar para acelerar o desempenho das consultas.

Por padrão, o AlloyDB aloca 30% da memória da instância para o armazenamento de colunas. Para uma instância de 1 vCPU, a alocação padrão é de 10%. O AlloyDB ajusta automaticamente a alocação total se você redimensionar a instância. É possível modificar a memória da instância para um máximo recomendado de 50%, embora 70% seja permitido. Para uma instância de 1 vCPU, o máximo permitido é 20%. Independentemente do tamanho da instância, a alocação mínima é de 128 MB. Para encontrar o tamanho de memória recomendado do mecanismo colunar para sua instância, consulte Recomendar o tamanho da memória do repositório de colunas.

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 que o AlloyDB volte à alocação padrão, remova a flag da instância.

Para mais informações sobre como definir ou excluir flags, consulte Configurar flags de banco de dados de uma instância.

Configurar o carregamento de índices de vetor no mecanismo colunar

O mecanismo colunar acelera a busca vetorial quando os índices vetoriais HNSW ou ScaNN são preenchidos nele. A aceleração do mecanismo colunar para índices HNSW está em disponibilidade geral (GA), enquanto a aceleração para índices ScaNN está em pré-lançamento.

Para ativar o cache de índice colunar, defina a flag google_columnar_engine.enable_index_caching como on.

Para desativar esse recurso, defina a flag como off.

Configurar o cache de armazenamento para o mecanismo colunar

É necessário dimensionar o google_columnar_engine.storage_cache_size em relação à configuração google_columnar_engine.memory_size_in_mb, porque a memória do mecanismo colunar é usada para metadados na memória do cache de armazenamento. A proporção de dimensionamento recomendada é de aproximadamente 100 a 1.000 vezes o tamanho da memória. Por exemplo, com um google_columnar_engine.memory_size_in_mb de 1024 (1 GB), é preciso definir google_columnar_engine.storage_cache_size entre 100 GB e 1000 GB.

O cache de armazenamento do mecanismo colunar é provisionado de acordo com o nível da instância.

Nível da instância Tamanho padrão do cache do mecanismo colunar
N2 C4A
Principal Pool de leitura Pool primário ou de leitura
1 vCPU N/A N/A 0
2 vCPU 18,75 GB 37,5 GB 18,75 GB
4 vCPUs 18,75 GB 37,5 GB 18,75 GB
8 vCPUs 18,75 GB 37,5 GB 37,5 GB
16 vCPUs 37,5 GB 37,5 GB 75 GB
32 vCPU 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 vCPU 450 GB 450 GB N/A

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

Nível da instância Tamanho mínimo do cache do mecanismo colunar Tamanho máximo do cache do mecanismo colunar
N2 C4A
Principal Pool de leitura Pool primário ou de leitura
1 vCPU N/A N/A N/A 0
2 vCPU 0 187,5 GB 375 GB 187,5 GB
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 vCPU 0 750 GB 750 GB 1.125 GB
48 vCPUs 0 N/A N/A 1.875 GB
64 vCPUs 0 1.500 GB 1.500 GB 2.625 GB
72 vCPUs 0 N/A N/A 3.000 GB
96 vCPUs 0 3.000 GB 3.000 GB N/A
128 vCPU 0 4.500 GB 4.500 GB N/A

Monitorar dados de cache de armazenamento do mecanismo colunar

Para visualizar e monitorar dados sobre o cache de armazenamento do mecanismo colunar, use os seguintes comandos:

Comando Descrição
SELECT google_columnar_engine_storage_cache_used(); Retorna o tamanho do cache de armazenamento do mecanismo colunar usado.
SELECT google_columnar_engine_storage_cache_available(); Retorna o tamanho do cache de armazenamento do mecanismo colunar não utilizado.
SHOW google_columnar_engine.storage_cache_size; Retorna o valor total do tamanho configurado do cache de armazenamento para o mecanismo colunar.

Ativar junção vetorizada

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

Depois que você ativa a junção vetorizada, o planejador de consultas do AlloyDB tem a opção de aplicar o operador de junção vetorizada em vez do operador de junção de hash padrão do PostgreSQL. O planejador toma essa decisão comparando o custo de execução da consulta usando cada método.

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

Para mais informações, consulte Configurar flags de bancos de dados de uma instância.

O AlloyDB aloca uma linha de execução para o recurso de junção vetorizada por padrão. Aumente o número de linhas de execução disponíveis para esse recurso definindo a flag google_columnar_engine.vectorized_join_threads com um valor maior.

Atualizar manualmente o mecanismo colunar

Por padrão, quando você ativa o mecanismo colunar, ele é configurado para atualizar automaticamente o armazenamento de colunas em segundo plano.

Para cargas de trabalho com uma alta taxa de modificações de dados, como operações frequentes de INSERT, UPDATE ou DELETE, é possível atualizar manualmente o armazenamento colunar após essas mudanças para manter o índice atualizado.

Para atualizar manualmente o mecanismo colunar, 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 mecanismo colunar em uma instância, defina a flag google_columnar_engine.enabled como off.

Para mais informações sobre como definir flags de banco de dados no AlloyDB, consulte Configurar flags de banco de dados de uma instância.

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

Resolver problemas do mecanismo colunar

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

  • As colunas que você quer adicionar incluem um tipo de dados incompatível.

  • Os requisitos do mecanismo colunar não são atendidos.

Para encontrar a causa desse problema, tente o seguinte:

  • Revise os registros de auditoria da instância.

  • Confirme se as tabelas ou visualizações materializadas na consulta estão no mecanismo colunar.

  • Verifique o uso do mecanismo colunar com a instrução EXPLAIN.

A seguir