Esta página descreve como gerir o conteúdo do armazenamento de colunas do motor de base de dados colunar adicionando e removendo colunas manualmente.
Com base na sua carga de trabalho, pode adicionar manualmente colunas ao arquivo de colunas ou eliminar algumas ou todas as colunas de uma tabela ou uma vista materializada do arquivo de colunas. A avaliação de consultas usa automaticamente os dados organizados em colunas armazenados para responder a consultas.
Ao escolher as tabelas, as vistas materializadas e as colunas a adicionar ao arquivo de colunas, considere o tamanho do arquivo de colunas e a forma da carga de trabalho. Os bons candidatos para seleção incluem tabelas grandes ou vistas que são frequentemente analisadas. Dentro destas tabelas ou vistas, identifique quaisquer índices não únicos grandes usados pela carga de trabalho OLAP. Pode adicionar as colunas destes índices ao arquivo de colunas e, potencialmente, eliminar os índices, eliminando assim o custo de desempenho associado à respetiva manutenção na instância principal.
Use um dos seguintes métodos para gerir o conteúdo do armazenamento de colunas do motor de colunas:
- Faça a gestão do conteúdo da base de dados de colunas atualizando as flags da base de dados
- Faça a gestão do conteúdo do armazenamento de colunas através de funções SQL
Consulte Que dados pode adicionar ao armazenamento de colunas para obter informações sobre os tipos de dados e as origens de dados que pode usar quando adiciona tabelas, colunas e vistas materializadas ao armazenamento de colunas.
Antes de começar
- Tem de ter uma destas funções de IAM no Google Cloud projeto que está a usar:
roles/alloydb.admin
(a função IAM predefinida de administrador do AlloyDB)roles/owner
(a função de IAM básica de proprietário)roles/editor
(a função de IAM básica de editor)
Se não tiver nenhuma destas funções, contacte o administrador organizacional para pedir acesso.
Faça a gestão do conteúdo da loja de colunas atualizando as flags da base de dados
Pode gerir manualmente o conteúdo do armazenamento de colunas atualizando a flag da base de dados google_columnar_engine.relations
. O indicador tem um único valor que especifica todas as origens de dados do seu armazenamento de colunas. Durante o reinício, as colunas especificadas nesta flag são preenchidas automaticamente na loja de colunas.
Pode usar esta flag juntamente com a auto-columnarization. Se o motor
colunar tiver memória disponível após o preenchimento das colunas que
especifica através da flag google_columnar_engine.relations
, a
colunarização automática adiciona mais colunas ao armazenamento de colunas, conforme
necessário.
Para mais informações sobre como definir as flags da base de dados de uma instância através da CLI Google Cloud ou da Google Cloud consola, consulte o artigo Configure as flags da base de dados de uma instância.
Adicione colunas com sinalizadores
Para adicionar colunas ao arquivo de colunas, defina a flag google_columnar_engine.relations
de uma instância. Defina o valor como uma lista de itens separados por vírgulas, em que cada item especifica uma lista de colunas a incluir de uma tabela específica, neste formato:
DATABASE_NAME.SCHEMA_NAME.TABLE_NAME(COLUMN_LIST)
Substitua o seguinte:
DATABASE_NAME: a base de dados que contém as colunas a adicionar ao arquivo de colunas.
SCHEMA_NAME: o esquema que identifica as tabelas ou as vistas materializadas a adicionar ao armazenamento de colunas, por exemplo,
public
.TABLE_NAME: a tabela ou a vista materializada que contém as colunas a adicionar ao arquivo de colunas.
COLUMN_LIST: uma lista separada por vírgulas das colunas a adicionar ao arquivo de colunas.
Para adicionar todas as colunas de uma tabela ou de uma vista materializada, omita a lista de colunas:
DATABASE_NAME.SCHEMA_NAME.TABLE_NAME
Para mais informações sobre como definir as flags da base de dados numa instância, consulte o artigo Configure as flags da base de dados de uma instância.
Uma nota sobre a sintaxe da linha de comandos
Se usar a Google Cloud CLI para definir o sinalizador google_columnar_engine.relations
, tem de usar a sintaxe de delimitador alternativo para separar os sinalizadores da base de dados que definir. Isto deve-se ao facto de a lista de colunas estar separada por vírgulas, o que exige que use um caráter que não seja uma vírgula quando especifica flags no mesmo argumento da linha de comandos.
O exemplo seguinte demonstra a utilização da CLI gcloud para adicionar duas colunas no esquema public
ao arquivo de colunas. O exemplo define uma flag separada para ativar o motor colunar, porque a utilização do comando gcloud alloydb instance update
para definir qualquer flag da base de dados também tem de definir todas as outras flags da base de dados que quer ter valores não predefinidos, mesmo que já estejam definidas.
gcloud alloydb instances update INSTANCE_NAME \
--database-flags=^:^\
google_columnar_engine.relations='DATABASE_NAME.public.TABLE_NAME(COLUMN_1,COLUMN_2)'\
:google_columnar_engine.enabled=on\
[:FLAG_3=VALUE_3 ...] \
--region=REGION_ID \
--cluster=CLUSTER_ID
Elimine colunas com a utilização de flags
Para remover colunas do arquivo de colunas, defina um novo valor para a flag google_columnar_engine.relations
descrita na secção anterior, excluindo as colunas que quer remover.
Para eliminar todas as colunas do arquivo de colunas, desmarque a flag google_columnar_engine.relations
na sua instância.
Para mais informações sobre como definir flags de base de dados numa instância, consulte o artigo Configure as flags de base de dados de uma instância.
Faça a gestão do conteúdo da loja de colunas através de funções SQL
Pode gerir manualmente o conteúdo do armazenamento de colunas através de funções SQL.
Adicione colunas com funções SQL
Execute a função SQL google_columnar_engine_add
para adicionar colunas à base de dados de colunas.
Este método adiciona as colunas especificadas ao arquivo de colunas e gere as colunas apenas no nó associado. As novas colunas não persistem na loja nos reinícios da instância.
Este método não altera a flag da base de dados.google_columnar_engine.relations
A auto
colunarização
não considera as colunas adicionadas por esta função SQL.
Cliente psql
SELECT google_columnar_engine_add( relation => 'TABLE_NAME', columns => 'COLUMN_LIST' );
-
Substitua o seguinte:
- "TABLE_NAME": uma string que contém o nome da tabela ou da vista materializada. Se a tabela ou a vista estiver num esquema diferente de
public
, especifique o nome do esquema, um ponto e o nome da tabela ou da vista; por exemplo,'myschema.mytable'
. - 'COLUMN_LIST': uma string que contém uma lista separada por vírgulas, com distinção entre maiúsculas e minúsculas, dos nomes das colunas que quer adicionar. Se quiser adicionar todas as colunas da tabela ou da vista materializada ao arquivo de colunas, omita este parâmetro.
Elimine colunas com funções SQL
Execute a função SQL google_columnar_engine_drop
da seguinte forma:
Cliente psql
SELECT google_columnar_engine_drop( relation => 'TABLE_NAME', columns => 'COLUMN_LIST' );
- "TABLE_NAME": uma string que contém o nome da tabela ou da vista materializada. Se a tabela ou a vista estiver num esquema diferente de
public
, especifique o nome do esquema, um ponto e o nome da tabela ou da vista; por exemplo,'myschema.mytable'
. - 'COLUMN_LIST': uma string que contém uma lista separada por vírgulas, com distinção entre maiúsculas e minúsculas, dos nomes das colunas que quer adicionar. Se quiser adicionar todas as colunas da tabela ou da vista materializada ao arquivo de colunas, omita este parâmetro.
Pode usar a função google_columnar_engine_drop
para remover colunas adicionadas
editando a sinalização da base de dados google_columnar_engine.relations
. No entanto, quando o fizer, essas colunas são adicionadas novamente ao armazenamento em colunas quando a instância é reiniciada.