Gerenciar o conteúdo da coluna de forma manual

Esta página descreve como gerenciar o conteúdo do armazenamento de colunas do mecanismo de colunas, adicionando e removendo colunas manualmente.

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

Ao escolher quais tabelas, visualizações materializadas e colunas adicionar ao armazenamento de colunas, considere o tamanho do armazenamento e a forma da carga de trabalho. Bons candidatos para seleção incluem tabelas ou visualizações grandes que são varridas 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, possivelmente, excluir os índices, eliminando 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 de colunas:

Consulte Quais dados podem ser adicionados ao armazenamento de colunas para saber quais tipos e origens de dados podem ser usados ao adicionar tabelas, colunas e visualizações materializadas ao armazenamento de colunas.

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

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

É possível usar essa flag com a autocolunização. Se o mecanismo de colunas tiver memória disponível após preencher as colunas especificadas com a flag google_columnar_engine.relations, a autocolunização vai adicionar outras colunas ao armazenamento 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 de itens separados por vírgulas, em que cada item especifica 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 armazenamento 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 armazenamento de colunas.

Para adicionar todas as colunas de uma tabela ou de uma 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 excluir colunas do repositório, defina um novo valor para a flag google_columnar_engine.relations descrita em Adicionar colunas usando flags, excluindo as colunas que você quer excluir.

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

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

Gerenciar o conteúdo da coluna usando funções SQL

É possível gerenciar o conteúdo do armazenamento 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 armazenamento de colunas e gerencia as colunas apenas no nó conectado. As novas colunas não persistem na loja durante as reinicializações de instância.

Esse método não muda a flag do banco de dados google_columnar_engine.relations. A columarizaçã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 e diferencia maiúsculas de 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 armazenamento de colunas, omita esse parâmetro.

Excluir 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 e diferencia maiúsculas de 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 armazenamento de colunas, omita esse parâmetro.

É possível usar a função google_columnar_engine_drop para remover colunas adicionadas editando a flag do banco de dados google_columnar_engine.relations. No entanto, ao fazer isso, essas colunas são adicionadas de volta à loja de colunas quando a instância é reiniciada.