Todos os produtos
Search
Central de documentação

Hologres:CREATE EXTERNAL TABLE

Última atualização: Jun 28, 2026

O comando CREATE EXTERNAL TABLE cria uma tabela externa em um schema externo com origem no Data Lake Formation 2.0 (DLF 2.0). Há suporte apenas para tabelas no formato Apache Paimon.

Limitações

  • Requer Hologres V3.0 ou superior.

  • As tabelas externas devem residir em um schema externo com origem no DLF 2.0.

  • Há suporte apenas ao formato de tabela Apache Paimon.

  • Somente os formatos de arquivo ORC e Parquet são aceitos.

Sintaxe

CREATE EXTERNAL TABLE [IF NOT EXISTS] <ext_db_name>.<ext_schema_name>.<ext_table_name>
(
  [{
    <col_name> <col_type> [<col_constraints> [, ...]] |
    <table_constraints> [, ...]
  }]
)
[LOGICAL PARTITION BY LIST(<col_name> [, ...])]
[
  WITH
  (
    "<property>" = '<value>' [, ...]
  )
];

Parâmetros da cláusula WITH

Parâmetro

Descrição

Exemplo

table_format

Formato da tabela externa. Apenas paimon é compatível.

"table_format" = 'paimon'

file_format

Formato de arquivo da tabela externa. Valores válidos: orc, parquet.

"file_format" = 'orc'

bucket

Número de buckets. Os dados de uma tabela não particionada, ou de cada partição de uma tabela particionada, distribuem-se entre os buckets para permitir leituras e gravações simultâneas. Para obter detalhes, consulte Data Distribution.

"bucket" = '1'

bucket-key

Coluna usada para distribuir os dados nos buckets.

"bucket-key" = 'id'

changelog-producer

Método de geração de changelogs na tabela. Os changelogs capturam registros completos de INSERT, DELETE e UPDATE — semelhantes a um log binário de banco de dados — e ativam o consumo downstream em streaming. Para obter mais informações, consulte Changelog Producer.

"changelog-producer" = 'input'

Exemplos

Crie uma tabela particionada no DLF 2.0

O exemplo a seguir cria uma tabela Apache Paimon do tipo append-only com partição lógica em created_at.

CREATE EXTERNAL TABLE ext_db_dlf.ext_schema_dlf.ext_par_table_dlf(
    id TEXT,
    created_at BIGINT,          -- logical partition key
    type TEXT,
    actor_id TEXT,
    actor_login TEXT,
    repo_id TEXT,
    repo_name TEXT,
    org TEXT,
    org_login TEXT
)
LOGICAL PARTITION BY LIST(created_at)
WITH (
  "file_format" = 'orc',
  "bucket" = 6,
  "bucket-key" = 'id'          -- distribute data by id across 6 buckets
);

Crie uma tabela não particionada no DLF 2.0

O exemplo a seguir cria uma tabela de chave primária Apache Paimon. O parâmetro changelog-producer define o método de geração de changelogs para permitir o consumo downstream em modo streaming.

CREATE EXTERNAL TABLE openlake_win.github_events.gh_event_ods(
    id TEXT,
    created_at BIGINT,
    type TEXT,
    actor_id TEXT,
    actor_login TEXT,
    repo_id TEXT,
    repo_name TEXT,
    org TEXT,
    org_login TEXT,
    PRIMARY KEY(id)
) WITH (
  "changelog-producer" = 'input',   -- generate changelogs for streaming consumers
  "bucket" = 6,
  "bucket-key" = 'id'
);

Outras operações

Consultar a instrução de criação da tabela

SELECT * FROM hologres.hg_dump_script_external('<ext_db_name>.<ext_schema_name>.<ext_table_name>');

Consultar propriedades de colunas e partições

SELECT * FROM hologres.hg_external_columns('<ext_db_name>', '<ext_schema_name>', '<ext_table_name>');

Listar todas as tabelas em um schema externo

SELECT * FROM hologres.hg_external_tables('<ext_db_name>', '<ext_schema_name>');

Atualize os metadados de uma tabela externa

REFRESH CACHE FOR External TABLE <ext_db_name>.<ext_schema_name>.<ext_table_name> WITH( cache_level = 'metadata');