Todos os produtos
Search
Central de documentação

Hologres:Database and table configuration functions

Última atualização: Oct 21, 2026

O Hologres é compatível com PostgreSQL e oferece dois stored procedures para configurar propriedades de bancos de dados e tabelas: HG_UPDATE_DATABASE_PROPERTY e SET_TABLE_PROPERTY.

Função

Descrição

HG_UPDATE_DATABASE_PROPERTY

Defina o grupo de tabelas padrão e a contagem de shards de um banco de dados

SET_TABLE_PROPERTY

Configure propriedades em uma tabela, incluindo modo de armazenamento, índices, chave de distribuição e ciclo de vida

HG_UPDATE_DATABASE_PROPERTY

Defina a propriedade default_table_group ou shard_count de um banco de dados.

Pré-requisitos

Para chamar HG_UPDATE_DATABASE_PROPERTY, você deve ser superusuário da instância ou proprietário do banco de dados.

Sintaxe

CALL HG_UPDATE_DATABASE_PROPERTY ('property', 'value');

Parâmetros

Parâmetro

Descrição

property

Propriedade a definir. Valores válidos: default_table_group e shard_count.

default_table_group

Defina um grupo de tabelas como padrão para o banco de dados. Requer Hologres V0.10 ou posterior. Caso sua instância esteja em uma versão anterior, atualize-a manualmente ou entre no grupo DingTalk do Hologres para contatar o suporte técnico. Para atualizar sua instância, consulte Upgrade instances. Para obter suporte, consulte Obtain online support for Hologres.

shard_count

Especifica o número de shards do grupo de tabelas padrão. Recomendamos não configurar esta propriedade.

value

Valor da propriedade.

Exemplo

Defina TG120 como o grupo de tabelas padrão:

CALL HG_UPDATE_DATABASE_PROPERTY ('default_table_group', 'TG120');

SET_TABLE_PROPERTY

Configure propriedades em uma tabela, incluindo modo de armazenamento, índices, chave de distribuição e ciclo de vida.

Para modifique o esquema de uma tabela, use ALTER TABLE . Para exclua uma tabela, use DROP TABLE .

Sintaxe

CALL SET_TABLE_PROPERTY ('table_name', 'property', 'value');

Parâmetros

table_name

Nome da tabela. O nome pode ser qualificado com esquema. Caracteres válidos: letras minúsculas, letras maiúsculas, dígitos e sublinhados (_). O nome deve começar com uma letra. Se contiver caracteres especiais, coloque-o entre aspas duplas (" "). Este parâmetro não diferencia maiúsculas de minúsculas; portanto, letras maiúsculas são tratadas como minúsculas.

property e value

A tabela a seguir lista as propriedades suportadas, suas descrições e quando cada uma pode ser configurada.

Propriedade

Descrição

Quando configure

orientation

Modo de armazenamento da tabela. Valores válidos: armazenamento orientado a linhas, armazenamento orientado a colunas ou armazenamento híbrido de linhas e colunas.

Somente na mesma transação de CREATE TABLE

clustering_key

Colunas usadas para crie um índice clusterizado. Especifique as colunas no formato column:asc ou column:desc.

Somente na mesma transação de CREATE TABLE

segment_key

Colunas usadas como chave de segmento. O Hologres utiliza a chave de segmento para localizar dados durante consultas. Colunas baseadas em tempo são uma escolha comum.

Somente na mesma transação de CREATE TABLE

distribution_key

Colunas que determinam como os dados da tabela são distribuídos entre os shards.

Somente na mesma transação de CREATE TABLE

bitmap_columns

Colunas para criação de índice bitmap. Índices bitmap filtram dados dentro de um segmento.

Configuração independente

dictionary_encoding_columns

Colunas para criação de mapeamentos de dicionário. A codificação por dicionário converte comparações de strings em comparações numéricas, acelerando consultas GROUP BY e FILTER.

Configuração independente

blob_columns

Colunas TEXT ou BYTEA que utilizam Blob Storage. Valores grandes nessas colunas são armazenados separadamente, e a coluna mantém apenas uma referência a cada valor. Especifique o valor no formato 'columnName:{on|auto|off}[,...]':

  • on: Força o armazenamento separado de valores grandes na coluna.

  • auto: Permite que o sistema decida se deve armazenar um valor separadamente com base em um limiar de tamanho.

  • off: Desativa o Blob Storage para a coluna.

Nota
  • Suportado no Hologres V5.0.0 e versões posteriores.

  • Suportado apenas para tabelas orientadas a colunas e tabelas híbridas de linhas e colunas.

  • É possível alterar esta propriedade após a criação da tabela. Os arquivos existentes não são regravados imediatamente. A alteração entra em vigor gradualmente conforme a compactação em segundo plano é executada.

Para mais informações, consulte Blob Storage.

Configuração independente

time_to_live_in_seconds

Ciclo de vida dos dados da tabela em segundos. Aceita inteiros não negativos e números de ponto flutuante.

Nota

A partir do Hologres V4.2, o TTL de tabelas com chave primária está sujeito a um valor mínimo imposto pelo parâmetro GUC hg_time_to_live_in_days_min_value (unidade: dias, padrão: 36500, equivalente a 100 anos). Apenas superusuários podem modifique esse parâmetro. Ao defina o TTL de uma tabela com chave primária por meio de CREATE TABLE, ALTER TABLE, SET_TABLE_PROPERTY ou REBUILD, o sistema valida se o valor especificado atende ao limiar mínimo (deve ser maior ou igual ao número de dias defina por hg_time_to_live_in_days_min_value). Essa restrição não se aplica a tabelas sem chaves primárias.

Configuração independente

Se value contiver um nome de coluna com letras maiúsculas, coloque o valor entre aspas duplas (" ").

Exemplo

O exemplo a seguir crie uma tabela ORDERS e defina suas propriedades de armazenamento em uma única transação. Propriedades configuráveis apenas durante a criação da tabela — clustering_key, segment_key e distribution_key — são definidas dentro de um bloco BEGIN...COMMIT junto com CREATE TABLE. Propriedades como bitmap_columns e dictionary_encoding_columns também podem ser definidas na mesma transação ou configuradas independentemente depois. A propriedade time_to_live_in_seconds configure os dados para expirar após 48 horas (172800 segundos).

BEGIN;
CREATE TABLE ORDERS (
  O_ORDERKEY       INTEGER NOT NULL,
  O_CUSTKEY        INTEGER NOT NULL,
  O_ORDERSTATUS    TEXT NOT NULL,
  O_TOTALPRICE     DECIMAL(15,2) NOT NULL,
  O_ORDERDATE      DATE NOT NULL,
  O_ORDERPRIORITY  TEXT NOT NULL,
  O_CLERK          TEXT NOT NULL,
  O_SHIPPRIORITY   INTEGER NOT NULL,
  O_COMMENT        TEXT NOT NULL
);
CALL SET_TABLE_PROPERTY ('ORDERS', 'clustering_key', 'O_ORDERKEY:asc,O_CUSTKEY:asc');
CALL SET_TABLE_PROPERTY ('ORDERS', 'segment_key', 'O_ORDERDATE');
CALL SET_TABLE_PROPERTY ('ORDERS', 'bitmap_columns', 'O_ORDERSTATUS,O_ORDERPRIORITY,O_CLERK,O_SHIPPRIORITY');
CALL SET_TABLE_PROPERTY ('ORDERS', 'dictionary_encoding_columns', 'O_ORDERSTATUS,O_ORDERPRIORITY,O_CLERK,O_SHIPPRIORITY');
CALL SET_TABLE_PROPERTY ('ORDERS', 'blob_columns', 'O_COMMENT:on');
CALL SET_TABLE_PROPERTY ('ORDERS', 'time_to_live_in_seconds', '172800');
COMMIT;