Para uma vista geral conceptual do motor de colunas do AlloyDB, consulte o artigo Vista geral do motor de colunas do AlloyDB Omni.
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
.
Os passos que usa para definir esta flag numa instância dependem do facto de executar o AlloyDB Omni num contentor ou num cluster do Kubernetes.
Servidor único
Para definir o valor google_columnar_engine.enabled
como on
, siga estes passos:
Execute o comando
ALTER SYSTEM
do PostgreSQL:ALTER SYSTEM SET google_columnar_engine.enabled = 'on'
Se quiser ajustar a configuração do motor de colunas, siga as instruções na secção seguinte antes de reiniciar o servidor de base de dados. Caso contrário, conclua o passo seguinte para reiniciar o servidor de base de dados agora.
Para que a alteração dos parâmetros de configuração entre em vigor, reinicie o contentor em execução com o AlloyDB Omni.
Docker
sudo docker restart CONTAINER_NAME
Podman
sudo podman restart CONTAINER_NAME
Kubernetes
Para definir a flag google_columnar_engine.enabled
como on
, modifique o manifesto do cluster da base de dados para adicionar o atributo parameters
à secção primarySpec
:
apiVersion: alloydbomni.dbadmin.goog/v1
kind: DBCluster
metadata:
name: CLUSTER_NAME
spec:
databaseVersion: "16.3.0"
primarySpec:
parameters:
google_columnar_engine.enabled: "on"
Substitua CLUSTER_NAME
pelo nome do cluster da base de dados. É o mesmo nome do cluster da base de dados que declarou quando o criou.
Configure o tamanho do armazenamento de colunas
Embora o motor de colunas esteja ativado numa instância, o AlloyDB Omni 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 verifica que o AlloyDB Omni 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
Pode definir a atribuição para um tamanho fixo através da flag google_columnar_engine.memory_size_in_mb
.
Os passos que usa para configurar a memória da base de dados de colunas para o AlloyDB Omni dependem de executar o AlloyDB Omni num contentor ou num cluster do Kubernetes.
Servidor único
Para definir a flag google_columnar_engine.memory_size_in_mb
numa instância, faça o seguinte:
Configure a memória executando o comando
ALTER SYSTEM
do PostgreSQL:ALTER SYSTEM SET google_columnar_engine.memory_size_in_mb = COLUMN_MEMORY_SIZE;
Substitua
COLUMN_MEMORY_SIZE
pelo novo tamanho do armazenamento da coluna, em megabytes. Por exemplo,256
.Para que a alteração dos parâmetros de configuração entre em vigor, reinicie o contentor em execução com o AlloyDB Omni.
Docker
sudo docker restart CONTAINER_NAME
Podman
sudo podman restart CONTAINER_NAME
Kubernetes
Para definir a flag google_columnar_engine.memory_size_in_mb
, modifique o manifesto do cluster da base de dados para adicionar o atributo parameters
à secção primarySpec
:
apiVersion: alloydbomni.dbadmin.goog/v1
kind: DBCluster
metadata:
name: CLUSTER_NAME
spec:
databaseVersion: "16.3.0"
primarySpec:
parameters:
google_columnar_engine.memory_size_in_mb: "COLUMN_MEMORY_SIZE"
Substitua o seguinte:
CLUSTER_NAME
: o nome do cluster da base de dados. É o mesmo nome do cluster da base de dados que declarou quando o criou.COLUMN_MEMORY_SIZE
: o novo tamanho do armazenamento de colunas, em megabytes, por exemplo,256
.
Configure a cache de armazenamento
Antes de configurar a cache de armazenamento, tem de ativar a cache de disco do AlloyDB Omni.
Os passos que usa para ativar a cache de armazenamento para o AlloyDB Omni dependem do facto de executar o AlloyDB Omni num contentor ou num cluster do Kubernetes.
Servidor único
Configure a cache de armazenamento da seguinte forma:
ALTER SYSTEM SET google_columnar_engine.storage_cache_size = STORAGE_CACHE_SIZE;
Substitua
STORAGE_CACHE_SIZE
pelo tamanho da cache de armazenamento pretendido, em megabytes. Por predefinição, 5% da cache de disco é atribuída ao motor de colunas. O valor máximo permitido para esta flag é 50% da cache de disco total ou 1000 * google_columnar_engine.memory_size_in_mb, consoante o que for mínimo.Para que a alteração dos parâmetros de configuração entre em vigor, reinicie o contentor em execução com o AlloyDB Omni.
Docker
sudo docker restart CONTAINER_NAME
Podman
sudo podman restart CONTAINER_NAME
Kubernetes
Para ativar a cache de armazenamento para a sua base de dados, modifique o manifesto do cluster da base de dados para adicionar o atributo columnarSpillToDisk
à secção features
da secção primarySpec
:
apiVersion: alloydbomni.dbadmin.goog/v1
kind: DBCluster
metadata:
name: CLUSTER_NAME
spec:
databaseVersion: "16.3.0"
primarySpec:
features:
columnarSpillToDisk:
cacheSize: STORAGE_CACHE_SIZE
ultraFastCache:
cacheSize: ULTRAFAST_CACHE_SIZE
genericVolume:
storageClass: "STORAGE_CLASS_NAME"
...
Substitua o seguinte:
CLUSTER_NAME
: o nome do cluster da base de dados. É o mesmo nome do cluster da base de dados que declarou quando o criou.STORAGE_CACHE_SIZE
: o tamanho da cache de armazenamento em colunas, por exemplo,5Gi
. Se não especificar um valor para este campo, 5% da cache de disco é atribuída ao motor de colunas por predefinição.ULTRAFAST_CACHE_SIZE
: o tamanho da cache, por exemplo,100Gi
. Tem de ser superior ashared_buffers
. Este campo é opcional. Se não especificar o valor deste campo, o AlloyDB Omni usa todo o espaço restante no disco, o que se aplica ao AlloyDB Omni num contentor e num cluster do Kubernetes. Para mais informações sobre as unidades de medida, consulte o artigo Unidades de recursos de memória.STORAGE_CLASS_NAME
: o nome da classe de armazenamento do volume de cache ultrarrápido, por exemplo,local-storage
.
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 usando cada método.
Para ativar a junção vetorizada numa instância, defina a flag
google_columnar_engine.enable_vectorized_join
da instância como on
.
Para definir esta flag numa instância, execute o comando ALTER SYSTEM
PostgreSQL:
ALTER SYSTEM SET google_columnar_engine.enable_vectorized_join = 'on';
Por predefinição, o AlloyDB Omni 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. O valor máximo é cpu_count * 2
.
Atualize manualmente o motor de colunas
Por predefinição, quando o motor de colunas está ativado, atualiza o armazenamento de colunas em segundo plano.
Para atualizar manualmente o motor da coluna, execute a seguinte consulta SQL:
SELECT google_columnar_engine_refresh(relation =>'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
.
Os passos que usa para definir esta flag numa instância dependem de executar o AlloyDB Omni num contentor num único servidor ou num cluster do Kubernetes.
Servidor único
Para definir o valor google_columnar_engine.enabled
como off
, siga estes passos:
- Execute o comando
ALTER SYSTEM
do PostgreSQL:
ALTER SYSTEM SET google_columnar_engine.enabled = 'off'
- Para que a alteração dos parâmetros de configuração entre em vigor, reinicie o contentor em execução com o AlloyDB Omni.
Docker
Para reiniciar um contentor do AlloyDB Omni, execute o comando docker container restart
:
sudo docker restart CONTAINER_NAME
Substitua CONTAINER_NAME
pelo nome que atribuiu
ao contentor do AlloyDB Omni quando o instalou.
Podman
Para reiniciar um contentor do AlloyDB Omni, execute o comando podman container start
:
sudo podman restart CONTAINER_NAME
Substitua CONTAINER_NAME
pelo nome que atribuiu
ao contentor do AlloyDB Omni quando o instalou.
Kubernetes
Para definir a flag google_columnar_engine.enabled
como off
, modifique o manifesto do cluster da base de dados para adicionar o atributo parameters
à secção primarySpec
:
apiVersion: alloydbomni.dbadmin.goog/v1
kind: DBCluster
metadata:
name: CLUSTER_NAME
spec:
databaseVersion: "16.3.0"
primarySpec:
parameters:
google_columnar_engine.enabled: "off"
Substitua CLUSTER_NAME
pelo nome do cluster da base de dados. É o mesmo nome do cluster da base de dados que declarou quando o criou.
O que se segue?
Veja a lista completa de flags da base de dados do motor colunar.
Trabalhe no tutorial do Google CodeLab Acelerar consultas analíticas com o motor de colunas no AlloyDB Omni.