O mecanismo colunar do AlloyDB para PostgreSQL acelera as consultas SQL que verificam, unem e agregam grandes quantidades de dados armazenando colunas selecionadas na memória em um formato orientado a colunas. É possível usá-la em instâncias principais e de pool de leitura, e a colunização automática pode escolher as colunas para você.
O mecanismo colunar oferece os seguintes componentes:
Um armazenamento de colunas que contém dados de tabela e de visualização materializada para colunas selecionadas, reorganizados em um formato orientado a colunas. Também é possível adicionar expressões usadas com frequência ao armazenamento de colunas.
Um planejador de consultas e um mecanismo de execução colunares para oferecer suporte ao uso do repositório de colunas em consultas.
O mecanismo colunar pode ser usado na instância principal, em uma instância do pool de leitura ou em ambas. Quando o mecanismo colunar está ativado em uma instância de pool de leitura, é possível ativar o encaminhamento de consulta transparente para rotear automaticamente o tráfego somente leitura para ela.
Também é possível usar a colunização automática para analisar sua carga de trabalho e preencher automaticamente o repositório de colunas com as colunas que oferecem o melhor ganho de desempenho.
Para usar o mecanismo colunar com uma consulta específica, todas as colunas nos fragmentos dessa consulta, como mesclagens e verificações, precisam estar no armazenamento de colunas.
Por padrão, o mecanismo colunar é configurado para usar 30% da memória da instância (ou 10% em uma instância de 1 vCPU). Dependendo da carga de trabalho, do uso da memória e se você tiver um pool de leitura configurado, é possível reduzir a alocação de memória do mecanismo colunar na instância principal e alocar mais memória para a instância do pool de leitura. Para conferir e monitorar o uso da memória pelo mecanismo colunar, consulte Conferir o uso da memória do repositório de colunas. Para modificar o tamanho da memória usada pelo repositório de colunas, consulte Configurar o tamanho do repositório de colunas. 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.
Tipos de consulta que se beneficiam do mecanismo colunar
Algumas consultas podem se beneficiar do mecanismo colunar. Confira a seguir uma lista de operações e os padrões de consulta que mais se beneficiam do mecanismo colunar:
Verificações de tabela
- Ela tem filtros seletivos, como cláusulas
WHERE. - Ela usa um pequeno número de colunas de uma tabela ou visualização materializada maior.
- Ele usa expressões como
LIKE,ILIKE,SUBSTReTRIM.
- Ela tem filtros seletivos, como cláusulas
Funções de agregação
- Eles usam apenas as seguintes expressões:
SUM,MIN,MAX,AVGeCOUNT. - Eles estão no início da consulta de uma verificação colunar.
- Elas não estão agrupadas ou estão agrupadas por colunas.
- Eles usam apenas as seguintes expressões:
ORDER-BYeSORT: somente quandoORDER-BYouSORTestiver nos resultados da verificação de colunas acessadas pelo mecanismo colunar.LIMIT: somente se o operador estiver no início da consulta de uma verificação colunar e antes de qualquer operadorSORTouGROUP BY.INNER HASH JOINsomente se as chaves usadas forem colunas e nenhum qualificador de mesclagem for usado.Mesclagens seletivas somente se as mesclagens estiverem no início da consulta de uma verificação colunar.
Filtrar consultas com expressões JSON.
Para mais informações sobre quais consultas funcionam melhor com o mecanismo colunar, se
ele foi usado por uma consulta e como foi usado, consulte
Verificar o uso do mecanismo colunar usando EXPLAIN.
Como usar o mecanismo colunar
Para usar o mecanismo colunar em uma instância do AlloyDB, siga estas etapas gerais:
Ative o mecanismo na instância.
A ativação do mecanismo é uma operação única e requer uma reinicialização.
Adicione colunas ao armazenamento de colunas.
Para adicionar colunas ao armazenamento de colunas, use um dos seguintes métodos:
Use a colunização automática, que analisa sua carga de trabalho e adiciona colunas automaticamente.
Adicione as colunas manualmente ou adicione expressões usadas com frequência ao armazenamento de colunas (pré-lançamento) com base no seu conhecimento da carga de trabalho nos bancos de dados da instância.
É possível acompanhar o que está no armazenamento de colunas usando a visualização
g_columnar_relationse, depois que as colunas forem adicionadas, use a instruçãoEXPLAINpara verificar o uso do mecanismo colunar em consultas SQL.
Para instruções detalhadas sobre como usar o mecanismo colunar, consulte Configurar o mecanismo colunar.
Quais dados você pode adicionar ao repositório de colunas
Há algumas limitações nos tipos e fontes de dados que podem ser usados ao adicionar colunas ao armazenamento de colunas.
Tipos de dados compatíveis
O mecanismo colunar pode preencher e atualizar colunas compatíveis em uma tabela, mesmo que algumas colunas tenham tipos de dados não compatíveis. As colunas com tipos de dados incompatíveis são ignoradas durante o processo de preenchimento.
Ao executar uma consulta, o mecanismo colunar processa uma tabela se todas as colunas específicas referenciadas nessa parte da consulta tiverem tipos de dados compatíveis e estiverem presentes no mecanismo colunar.
Em consultas que envolvem várias tabelas, como operações JOIN, é possível usar o
mecanismo colunar para qualquer tabela individualmente. Desde que todas as
colunas acessadas da tabela específica na consulta tenham tipos de dados compatíveis
e estejam no mecanismo colunar, essa tabela poderá ser processada pelo mecanismo colunar, mesmo
que outras tabelas na mesclagem tenham colunas não compatíveis.
O mecanismo colunar é compatível apenas com colunas que têm os seguintes tipos de dados integrados:
arraybigintbooleanbyteachardatedecimaldouble precisionenumfloat4float8integerjsonjsonbnumericrealserialshortsmallinttexttimestamptimestamptzuuidvarcharvector
O mecanismo colunar ignora qualquer tentativa de adicionar manualmente colunas com tipos de dados incompatíveis ao repositório de colunas.
Fontes de dados incompatíveis
O mecanismo colunar não é compatível com tabelas ou visualizações materializadas com os seguintes atributos como fontes de dados:
Tabelas particionadas que não são de folha
Tabelas externas
Limitações do mecanismo colunar
- Se você estiver executando uma consulta analítica em uma coluna que tenha um índice, o otimizador do AlloyDB poderá optar por usar o armazenamento de linhas.
- As colunas adicionadas manualmente ao repositório não são removidas de forma automática. Para forçar a remoção
de colunas adicionadas manualmente, use
google_columnar_engine_drop()na instância. - A colunização automática pode adicionar e remover colunas dinamicamente com base no uso da consulta.
- Nem todos os tipos de dados são compatíveis com o mecanismo colunar. Para ver os tipos de dados compatíveis, consulte tipos de dados compatíveis.
Atualizações frequentes nas linhas invalidam os dados colunares. Para validar uma tabela ou uma visualização materializada no armazenamento colunar, reduza a frequência de atualização ou programe as atualizações do mecanismo colunar com mais frequência.
Compare as colunas
invalid_block_countetotal_block_countem g_columnar_relations para verificar se a tabela ou visualização foi afetada. Se você tiver mudanças frequentes ou de alto volume na tabela ou visualização, oinvalid_block_countserá alto.Não é possível preencher uma tabela particionada diretamente no mecanismo colunar. Para usar o mecanismo colunar, preencha individualmente cada uma das partições de folha da tabela.
Para tabelas ou visualizações com um pequeno número de linhas, normalmente menos de 5.000, o planejador de consultas pode optar por usar o armazenamento de linhas em vez do armazenamento colunar para melhorar o desempenho, mesmo que os dados sejam carregados com sucesso no mecanismo colunar.