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
.
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
.
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
.
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?
Veja a lista completa de flags da base de dados do motor de colunas.
Saiba mais sobre a organização automática em colunas.