Esta página descreve o mecanismo de colunas AlloyDB Omni e fornece instruções sobre como usá-lo em instalações de contêineres e clusters do Kubernetes. Nesta página, consideramos que você já conhece o PostgreSQL.
O mecanismo colunar do AlloyDB Omni acelera o processamento de consultas SQL de verificações, mesclagens e agregações, fornecendo 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.
Um planejador de consulta colunar e um mecanismo de execução que oferece suporte ao uso do armazenamento de colunas em consultas.
É possível usar o mecanismo de colunas na instância principal, em uma instância de pool de leitura ou em ambos. Você também pode usar a autocolunização para analisar sua carga de trabalho e preencher automaticamente o armazenamento de colunas com as colunas que oferecem o melhor ganho de performance.
Para usar o mecanismo de colunas com uma consulta específica, todas as colunas referenciadas na consulta, como mesclagens e verificações, precisam estar no armazenamento de colunas.
Por padrão, o mecanismo de colunas é configurado para usar 1 GB da memória da instância. 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 de colunas 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 de colunas, consulte Conferir o uso da memória do armazenamento de colunas. Para modificar o tamanho da memória usado pelo armazenamento de colunas, consulte Configurar o tamanho do armazenamento de colunas. Para encontrar o tamanho de memória do mecanismo colunar recomendado para sua instância, consulte Recomendar tamanho de memória do armazenamento 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 se beneficiam mais do mecanismo de colunas:
Operação | Padrões de consulta |
---|---|
Verificação de tabela | Filtros seletivos, como cláusulas WHERE .Um pequeno número de colunas de uma tabela maior ou visualização materializada. Expressões como LIKE , SUBSTR ou TRIM . |
Funções de agregação | Somente expressões como SUM , MIN , MAX , AVG e COUNT .No início da consulta de uma verificação de colunas. Sem agrupamento ou agrupado por colunas. |
ORDER-BY |
Somente se o operador estiver no início da consulta de uma varredura de colunas. |
SORT |
Somente se o operador estiver no início da consulta de uma verificação de coluna e classificar apenas nas colunas de base da tabela ou da visualização materializada. |
LIMIT |
Somente se o operador estiver no início da consulta de uma varredura de colunas e antes de qualquer operador SORT ou GROUP BY . |
INNER HASH JOIN |
Somente se as chaves usadas forem colunas e nenhum qualificador de mesclagem for usado. |
Junções seletivas | Somente se as junções estiverem no início da consulta de uma varredura de colunas. |
Para mais informações sobre quais consultas funcionam melhor com o mecanismo de colunas, se
o mecanismo de colunas foi usado por uma consulta e como ele foi usado, consulte
Verificar o uso do mecanismo de colunas usando EXPLAIN
.
Usar o mecanismo colunar
Para usar o mecanismo colunar em uma instância do AlloyDB Omni, siga estas etapas gerais:
Ative o mecanismo na instância.
A ativação do mecanismo é uma operação única e requer a reinicialização do banco de dados.
Adicione colunas ao repositório de colunas.
Para adicionar colunas ao repositório, use um destes métodos:
Use a colunarizaçã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 armazenamento de colunas usando a visualização
g_columnar_relations
. Depois de adicionar as colunas, use a instruçãoEXPLAIN
para verificar o uso do motor de colunas 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 nas fontes de dados que você pode usar ao adicionar colunas ao armazenamento de colunas.
Tipos de dados compatíveis
O mecanismo de colunas oferece suporte apenas a colunas com os seguintes tipos de dados incorporados:
array
bigint
boolean
bytea
char
date
decimal
double precision
enum
float4
float8
integer
json
jsonb
numeric
real
serial
short
smallint
text
timestamp
uuid
varchar
O mecanismo colunar ignora todas as tentativas de adicionar manualmente colunas com tipos de dados não compatíveis ao repositório de colunas.
Fontes de dados sem suporte
O mecanismo de colunas não oferece suporte a tabelas ou visualizações materializadas com os seguintes atributos como fontes de dados:
Tabelas particionadas que não são folhas
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 tenha um índice, o otimizador do AlloyDB Omni 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 colunarizaçã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 de colunas. Para saber quais são os tipos de dados compatíveis, consulte Tipos de dados compatíveis.
Atualizações frequentes nas linhas invalidam os dados das colunas. Para validar uma tabela ou uma visualização materializada na loja de colunas, reduza a frequência de atualização ou programe as atualizações do mecanismo de colunas com mais frequência.
Compare as colunas
invalid_block_count
etotal_block_count
emg_columnar_relations
para verificar se a tabela ou visualização foi afetada. Se você tiver mudanças frequentes ou de grande volume na tabela ou visualização, oinvalid_block_count
será alto.