Gerenciar manualmente o conteúdo do repositório de colunas

Selecione uma versão da documentação:

Nesta página, descrevemos como gerenciar o conteúdo do repositório de colunas do mecanismo colunar adicionando e removendo colunas manualmente.

Com base na sua carga de trabalho, é possível adicionar colunas manualmente ao repositório de colunas ou descartar algumas ou todas as colunas de uma tabela ou visualização materializada do repositório de colunas. A avaliação de consulta usa automaticamente os dados colunares armazenados para responder às consultas.

Ao escolher quais tabelas, visualizações materializadas e colunas adicionar ao repositório de colunas, considere o tamanho do repositório de colunas e o formato da carga de trabalho. Boas candidatas para seleção incluem tabelas ou visualizações grandes que são verificadas com frequência. Nessas tabelas ou visualizações, identifique grandes índices não exclusivos usados pela carga de trabalho OLAP. É possível adicionar as colunas desses índices ao repositório de colunas e, potencialmente, descartar os índices, eliminando assim o custo de desempenho associado à manutenção deles na instância principal.

Use um dos seguintes métodos para gerenciar o conteúdo do repositório de colunas do mecanismo colunar:

Consulte Quais dados podem ser adicionados ao repositório de colunas para informações sobre os tipos de dados e as fontes de dados que podem ser usados ao adicionar tabelas, colunas e visualizações materializadas ao repositório de colunas.

Gerenciar o conteúdo do repositório de colunas atualizando flags de banco de dados

É possível gerenciar o conteúdo do repositório de colunas manualmente atualizando a flag de banco de dados google_columnar_engine.relations. A flag tem um único valor que especifica todas as fontes de dados do repositório de colunas. Durante a reinicialização, as colunas especificadas nessa flag são preenchidas automaticamente no repositório de colunas.

É possível usar essa flag com a columnarização automática. Se o mecanismo colunar tiver memória disponível após preencher as colunas especificadas pela flag google_columnar_engine.relations, a columnarização automática adicionará mais colunas ao repositório de colunas, conforme necessário.

Adicionar colunas usando flags

Para adicionar colunas ao repositório de colunas, defina a flag google_columnar_engine.relations de uma instância. Defina o valor como uma lista separada por vírgulas de itens, com cada item especificando uma lista de colunas a serem incluídas em uma tabela específica, neste formato:

DATABASE_NAME.SCHEMA_NAME.TABLE_NAME(COLUMN_LIST)

Substitua:

  • DATABASE_NAME: o banco de dados que contém as colunas a serem adicionadas ao repositório de colunas.

  • SCHEMA_NAME: o esquema que identifica as tabelas ou as visualizações materializadas a serem adicionadas ao repositório de colunas, por exemplo, public.

  • TABLE_NAME: a tabela ou a visualização materializada que contém as colunas a serem adicionadas ao repositório de colunas.

  • COLUMN_LIST: uma lista separada por vírgulas das colunas a serem adicionadas ao repositório de colunas.

Para adicionar todas as colunas de uma tabela ou visualização materializada, omita a lista de colunas:

DATABASE_NAME.SCHEMA_NAME.TABLE_NAME
ALTER SYSTEM SET google_columnar_engine.relations='DATABASE_NAME.SCHEMA_NAME.TABLE_NAME(COLUMN_1,COLUMN_2)';

Descartar colunas usando flags

Para descartar colunas do repositório de colunas, defina um novo valor para a google_columnar_engine.relations flag descrita em Adicionar colunas usando flags, deixando de fora as colunas que você quer descartar.

Para descartar todas as colunas do repositório de colunas, desative a flag google_columnar_engine.relations da sua instância.

Para mais informações sobre como definir flags de banco de dados em uma instância, consulte Configurar parâmetros de banco de dados do AlloyDB Omni.

Gerenciar o conteúdo do repositório de colunas usando funções SQL

É possível gerenciar o conteúdo do repositório de colunas manualmente usando funções SQL.

Adicionar colunas usando funções SQL

Execute a função SQL google_columnar_engine_add para adicionar colunas ao repositório de colunas.

Esse método adiciona as colunas especificadas ao repositório de colunas e gerencia as colunas apenas no nó conectado. As novas colunas não são mantidas no repositório em reinicializações de instâncias.

Esse método não altera a google_columnar_engine.relations flag de banco de dados. A columnarização automática não considera as colunas adicionadas por essa função SQL.

Cliente psql

SELECT google_columnar_engine_add(
    relation => 'TABLE_NAME',
    columns => 'COLUMN_LIST'
);
    Substitua:
  • 'TABLE_NAME': uma string que contém o nome da tabela ou da visualização materializada. Se a tabela ou a visualização estiver em um esquema diferente de public, especifique o nome do esquema, um ponto e o nome da tabela ou da visualização. Por exemplo, 'myschema.mytable'.
  • 'COLUMN_LIST': uma string que contém uma lista separada por vírgulas, sensível a maiúsculas e minúsculas dos nomes das colunas que você quer adicionar. Se você quiser adicionar todas as colunas da tabela ou da visualização materializada ao repositório de colunas, omita esse parâmetro.

Descartar colunas usando funções SQL

Execute a função SQL google_columnar_engine_drop da seguinte maneira:

Cliente psql

SELECT google_columnar_engine_drop(
    relation => 'TABLE_NAME',
    columns => 'COLUMN_LIST'
);
Substitua:
  • 'TABLE_NAME': uma string que contém o nome da tabela ou da visualização materializada. Se a tabela ou a visualização estiver em um esquema diferente de public, especifique o nome do esquema, um ponto e o nome da tabela ou da visualização. Por exemplo, 'myschema.mytable'.
  • 'COLUMN_LIST': uma string que contém uma lista separada por vírgulas, sensível a maiúsculas e minúsculas dos nomes das colunas que você quer adicionar. Se você quiser adicionar todas as colunas da tabela ou da visualização materializada ao repositório de colunas, omita esse parâmetro.

É possível usar a função google_columnar_engine_drop para remover colunas adicionadas editando a flag de banco de dados google_columnar_engine.relations. No entanto, quando você faz isso, essas colunas são adicionadas novamente ao repositório colunar quando a instância é reiniciada.