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 armazenamento 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 fontes de dados podem ser usados ao adicionar tabelas, colunas e visualizações materializadas ao armazenamento de colunas.

Antes de começar

  • Você precisa ter um destes papéis do IAM no projeto Google Cloud que está usando:
    • roles/alloydb.admin (papel predefinido do IAM de administrador do AlloyDB)
    • roles/owner (o papel básico do IAM "Proprietário")
    • roles/editor (papel básico do IAM de editor)

    Se você não tiver nenhuma dessas funções, entre em contato com o administrador da organização para solicitar acesso.

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.

Para mais informações sobre como definir as flags do banco de dados de uma instância usando a Google Cloud CLI ou o console Google Cloud , consulte Configurar as flags do banco de dados de uma instância.

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

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

Observação sobre a sintaxe de linha de comando

Se você usar a Google Cloud CLI para definir a flag google_columnar_engine.relations, use a sintaxe de delimitador alternativo para separar as flags do banco de dados definidas. Isso ocorre porque a lista de colunas é separada por vírgulas, exigindo que você use um caractere diferente de vírgula ao especificar sinalizações no mesmo argumento de linha de comando.

O exemplo a seguir demonstra o uso da CLI gcloud para adicionar duas colunas no esquema public ao armazenamento de colunas. O exemplo define uma flag separada para ativar o mecanismo de colunas, porque o uso do comando gcloud alloydb instance update para definir qualquer flag de banco de dados também precisa definir todas as outras flags de banco de dados que você quer que tenham valores diferentes do padrão, 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

Descartar colunas usando flags

Para excluir colunas do repositório, defina um novo valor para a flag google_columnar_engine.relations descrita na seção anterior, 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 são mantidas na loja entre as reinicializações de instância.

Esse método não muda a flag do banco de dados google_columnar_engine.relations. A colunizaçã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 repositório 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 serão adicionadas de volta à loja de colunas quando a instância for reiniciada.