Nesta página, você encontra uma visão geral do mecanismo colunar oferecido pelo AlloyDB para PostgreSQL e aprende a usá-lo.
O mecanismo colunar do AlloyDB acelera o processamento de consultas SQL de verificações, junções e agregações fornecendo estes 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.
Um planejador de consultas colunares e um mecanismo de execução 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. Também é possível usar a coluna 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 performance.
Para usar o mecanismo colunar com uma consulta específica, todas as colunas nos fragmentos dessa consulta, como junções e verificações, precisam estar no repositório de colunas.
Por padrão, o mecanismo colunar é definido para usar 30% da memória da instância. Dependendo da sua carga de trabalho, do uso de 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 ver e monitorar o uso da memória pelo mecanismo colunar, consulte Ver 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 para o mecanismo colunar da sua instância, consulte Recomendar tamanho da memória do repositório de colunas.
Tipos de consultas que se beneficiam do mecanismo colunar
Algumas consultas podem se beneficiar do mecanismo colunar. Confira a seguir uma lista de operações e padrões de consulta que se beneficiam mais do mecanismo colunar:
Verificações de tabela
- Ele 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
,SUBSTR
ou "TRIM".
- Ele tem filtros seletivos, como cláusulas
Funções de agregação
- Elas usam apenas as seguintes expressões:
SUM
,MIN
,MAX
,AVG
eCOUNT
. - Eles estão no início da consulta de uma verificação colunar.
- Elas não estão agrupadas ou são colunas de agrupamento.
- Elas usam apenas as seguintes expressões:
ORDER-BY
eSORT
: somente quandoORDER-BY
ouSORT
está nos resultados da verificação das 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 operadorSORT
ouGROUP BY
.INNER HASH JOIN
somente se as chaves usadas forem colunas e nenhum qualificador de junção for usado.Junções seletivas somente se elas estiverem no início da consulta de uma varredura colunar.
Para mais informações sobre quais consultas funcionam melhor com o mecanismo de colunas, se ele foi usado por uma consulta e como foi usado, consulte Verificar o uso do mecanismo de colunas usando EXPLAIN
.
Como usar o mecanismo de colunas
Para usar o mecanismo colunar em uma instância do AlloyDB, siga estas etapas de alto nível:
Ative o mecanismo na instância.
A ativação do mecanismo é uma operação única e requer uma reinicialização.
Adicione colunas ao repositório de colunas.
Para adicionar colunas ao columnstore, use um dos seguintes métodos:
Use a columnarização automática, que analisa sua carga de trabalho e adiciona colunas automaticamente.
Adicione as colunas manualmente com base no seu conhecimento da carga de trabalho nos bancos de dados da instância.
É possível acompanhar o que está no repositório de colunas usando a visualização
g_columnar_relations
e, depois que as colunas forem adicionadas, use a instruçãoEXPLAIN
para verificar o uso do mecanismo colunar em consultas SQL.
Para instruções detalhadas sobre como usar o mecanismo de colunas, consulte Configurar o mecanismo de colunas.
Quais dados podem ser adicionados ao repositório de colunas
Há algumas limitações nos tipos e fontes de dados que podem ser usados ao adicionar colunas ao repositório de colunas.
Tipos de dados compatíveis
O mecanismo colunar é compatível apenas com colunas que têm os seguintes tipos de dados integrados:
array
bigint
boolean
bytea
char
date
decimal
double precision
enum
float4
float8
integer
json
jsonb
numeric
real
serial
short
smallint
text
timestamp
timestamptz
uuid
varchar
vector
(Pré-lançamento)
O mecanismo colunar ignora qualquer tentativa de adicionar manualmente colunas com tipos de dados não compatíveis ao repositório de colunas.
Fontes de dados sem suporte
O mecanismo colunar não é compatível com tabelas ou visualizações materializadas com os seguintes atributos como fontes de dados:
Tabelas particionadas não folha
Tabelas externas
Tabelas ou visualizações com menos de 5.000 linhas
Limitações do mecanismo colunar
- Se você estiver executando uma consulta analítica em uma coluna que tem um índice, o otimizador do AlloyDB poderá usar o armazenamento de linhas.
- As colunas adicionadas manualmente ao repositório não são removidas automaticamente. Para forçar a remoção de
colunas adicionadas manualmente, use
google_columnar_engine_drop()
na sua instância. - A columnarizaçã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 conferir os tipos de dados compatíveis, consulte Tipos de dados compatíveis.
Atualizações frequentes de 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 atualizações mais frequentes do mecanismo colunar.
Compare as colunas
invalid_block_count
etotal_block_count
em g_columnar_relations para verificar se a tabela ou visualização foi afetada. Se você fizer mudanças frequentes ou em grande volume na tabela ou visualização, oinvalid_block_count
será alto.