Todos os produtos
Search
Central de documentação

Hologres:Access MaxCompute Delta tables

Última atualização: Sep 18, 2026

A partir da versão V3.0.38 do Hologres, é possível consultar tabelas Delta do MaxCompute diretamente no Hologres sem a necessidade de mover dados. Uma tabela Delta é um formato de tabela do MaxCompute voltado para dados incrementais. Esse formato permite a importação de dados em nível de minutos, utiliza o AliORC como formato de arquivo base, oferece suporte à semântica UPSERT e possibilita a leitura e gravação de dados incrementais no formato Change Data Capture (CDC). Para mais informações sobre os conceitos de tabelas Delta, consulte Termos.

Limitações

Funcionalidade

Suporte

Leitura do snapshot mais recente de uma tabela Delta

Suportado

Gravação de dados do Hologres em uma tabela Delta

Não suportado

Pré-requisitos

Antes de começar, certifique-se de que você possui:

Etapa 1: Crie uma tabela Delta no MaxCompute

Crie uma tabela Delta no MaxCompute usando um dos seguintes métodos:

  • No DataWorks: anexe uma source de dados do MaxCompute e, em seguida, crie a tabela no console do DataWorks.

  • Usando a MaxCompute local client: execute o comando SQL diretamente.

O exemplo a seguir cria uma tabela Delta particionada chamada mf_dt:

CREATE TABLE IF NOT EXISTS mf_dt (
  pk  BIGINT NOT NULL PRIMARY KEY,
  val BIGINT NOT NULL
)
PARTITIONED BY (dd STRING, hh STRING)
TBLPROPERTIES ("transactional"="true");

A propriedade "transactional"="true" marca a tabela como uma tabela Delta.

Etapa 2: Grave dados na tabela Delta

O MaxCompute oferece suporte a dois métodos para carregar dados em uma tabela Delta:

O exemplo a seguir usa inserções em lote para carregar dados na tabela mf_dt:

-- Append rows to the dd='01', hh='01' partition
INSERT INTO TABLE mf_dt PARTITION (dd='01', hh='01')
VALUES (3, 30), (4, 4), (5, 5);

-- Overwrite the dd='01', hh='01' partition with new data
INSERT OVERWRITE TABLE mf_dt PARTITION (dd='01', hh='01')
VALUES (1, 1), (2, 2), (3, 3);

Etapa 3: Mapeie o projeto do MaxCompute no Hologres

Crie um mapeamento de source de dados externa no Hologres para que ele possa descobrir e consultar as tabelas do MaxCompute. Há dois métodos de mapeamento disponíveis:

O exemplo a seguir cria um mapeamento de banco de dados externo para um projeto do MaxCompute:

CREATE EXTERNAL DATABASE ext_database_mc WITH
  metastore_type 'maxcompute'
  mc_project      'mc_3_layer_project'
  comment         'mc three layer project';

Após criar o mapeamento, verifique se é possível descobrir os schemas e as tabelas:

-- List all schemas in the external database
SELECT * FROM hologres.hg_external_schemas('ext_database_mc');

-- List all tables in the default schema
SELECT * FROM hologres.hg_external_tables('ext_database_mc', 'default');

Etapa 4: Consulte a tabela Delta

Antes de consultar uma tabela Delta, defina o seguinte parâmetro GUC no nível da sessão:

SET hg_experimental_external_catalog_routing = 'odps:common_table';

Em seguida, consulte a tabela usando o nome de três partes external_database.schema.table:

SELECT * FROM ext_database_mc.mc_schema_name.mf_dt;

Próximos passos