Todos os produtos
Search
Central de documentação

Hologres:CREATE EXTERNAL DATABASE

Última atualização: Jun 28, 2026

O comando CREATE EXTERNAL DATABASE mapeia uma fonte de dados externa — MaxCompute ou um data lake do Data Lake Formation (DLF) — em uma instância Hologres como um único objeto de banco de dados. Após o mapeamento, consulte tabelas externas pelo caminho de três partes ext_db.schema.table, execute consultas federadas entre dados internos e externos e gerencie todos os metadados em um único local.

Os bancos de dados externos têm visibilidade global na instância Hologres; portanto, qualquer banco de dados interno pode referenciá-los. Conecte-se diretamente a um banco de dados externo para executar instruções SQL e definir parâmetros do Grand Unified Configuration (GUC).

Compatível com Hologres V3.0 e versões posteriores.

Escolha sua fonte de dados

As duas fontes de dados compatíveis funcionam de maneiras diferentes. Selecione a opção adequada antes de escrever a instrução.

MaxCompute

DLF

Conexão

Um projeto MaxCompute

Um catálogo DLF (formato Paimon)

Local de armazenamento

Armazenamento do MaxCompute

Object Storage Service (OSS) gerenciado pelo DLF

Formatos compatíveis

Nativo do MaxCompute

Paimon (gerenciado pelo DLF); Paimon, Apache Hudi, Delta Lake, ORC, Parquet, CSV, SequenceFile (DLF V1.0)

Cenário recomendado

Dados armazenados em projetos MaxCompute

Dados armazenados em data lakes no OSS gerenciados pelo DLF

O Hologres utiliza o mecanismo proprietário High-QPS Engine (HQE) para leituras e gravações de alto desempenho em formatos de data lake, como Paimon, Hudi e DeltaLake.

Pré-requisitos

Configuração da instância

Ative a aceleração de data lake na instância antes de executar CREATE EXTERNAL DATABASE:

  1. Abra o console do Hologres e acesse a página Instance List ou Instance Details.

  2. Localize a instância desejada e clique em Data Lake Acceleration na coluna Actions.

  3. Clique em Confirm na caixa de diálogo.

Ativação de serviços

Permissões

  • A conta que executa CREATE EXTERNAL DATABASE deve ter permissões de Superuser no Hologres.

  • O MaxCompute ou o DLF controlam as permissões sobre os dados externos (tabelas, schemas), e não o Hologres. Conceda à função vinculada ao serviço (SLR) AliyunServiceRoleForHologresIdentityMgmt as permissões necessárias antes de acessar dados externos. Consulte Função vinculada ao serviço do Hologres.

  • Para utilizar uma função RAM em vez da SLR, consulte Visão geral de funções RAM.

  • Para contas fora da Alibaba Cloud e usuários RAM (por exemplo, contas Hologres BASIC), utilize CREATE USER MAPPING para vincular e autorizar a conta. Consulte CREATE USER MAPPING.

Limitações

  • O acesso entre bancos de dados é unidirecional. Quando conectado a um banco de dados interno, acesse tabelas externas pelo caminho completo ext_db.schema.table. Se estiver conectado diretamente a um banco de dados externo, as tabelas do banco de dados interno ficarão inacessíveis.

  • O TTL do cache de metadados é fixo em 5 minutos. O Hologres armazena metadados externos em cache por 5 minutos para melhorar o desempenho. Esse valor não é configurável. Para forçar uma atualização, use a instrução REFRESH CACHE descrita em Atualizar metadados externos.

  • MaxCompute: apenas projetos internos são compatíveis. Não é possível mapear projetos externos do MaxCompute.

Sintaxe

Fonte de dados MaxCompute

CREATE EXTERNAL DATABASE <ext_database_name> WITH
  metastore_type 'maxcompute'
  mc_project '<project_name>'
  [comment '<description>'];

Parâmetros

Parâmetro

Obrigatório

Descrição

metastore_type

Sim

Tipo de metastore. Defina como maxcompute. Não diferencia maiúsculas de minúsculas.

mc_project

Sim

Nome do projeto MaxCompute a ser mapeado. Apenas projetos internos do MaxCompute são compatíveis.

comment

Não

Descrição do banco de dados externo.

Fonte de dados DLF

Atualmente, o DLF oferece suporte apenas ao modo de armazenamento gerenciado e ao tipo de catálogo Paimon. Defina metastore_type como dlf-rest e catalog_type como paimon . A autenticação usa por padrão a SLR ( AliyunServiceRoleForHologresIdentityMgmt ). Para usar uma função RAM, configure-a via CREATE USER MAPPING .
CREATE EXTERNAL DATABASE <ext_database_name> WITH
  catalog_type 'paimon'
  metastore_type 'dlf-rest'
  dlf_catalog '<dlf_catalog_name>'
  [comment '<description>'];

Parâmetros

Parâmetro

Obrigatório

Descrição

metastore_type

Sim

Tipo de metastore para a fonte de dados DLF. Defina como dlf-rest.

catalog_type

Sim

Formato da tabela de lake. Defina como paimon.

dlf_catalog

Sim

Nome do catálogo DLF a ser mapeado.

comment

Não

Descrição do banco de dados externo.

Fonte de dados DLF V1.0

O DLF V1.0 oferece suporte a armazenamento OSS personalizado e formatos adicionais: Paimon, Apache Hudi, Delta Lake, ORC, Parquet, CSV e SequenceFile. Consulte Aceleração de data lake . O DLF V1.0 não oferece suporte à autenticação via SLR ou função RAM. Utilize CREATE USER MAPPING para fornecer credenciais por usuário.
CREATE EXTERNAL DATABASE <ext_database_name> WITH
  metastore_type 'dlf'
  dlf_region '<region>'
  dlf_endpoint '<dlf_endpoint>'
  dlf_catalog '<catalog_name>'
  oss_endpoint '<oss_endpoint>'
  [comment '<description>'];

Parâmetros

Parâmetro

Obrigatório

Descrição

Exemplo

metastore_type

Sim

Tipo de metastore. Defina como dlf para DLF V1.0.

dlf

catalog_type

Não

Formato da tabela de lake. O DLF V1.0 oferece suporte a Paimon, Hudi, Delta Lake, ORC, Parquet, CSV e SequenceFile. Não é obrigatório para DLF V1.0.

paimon

dlf_region

Sim

Região onde o serviço DLF está implantado. Formato: <nation>-<region>.

cn-beijing

dlf_endpoint

Sim

Endpoint de rede interna para acesso ao DLF. Formato: dlf-share.<nation>-<region>.aliyuncs.com. Consulte Regiões e endpoints disponíveis.

dlf-share.cn-beijing.aliyuncs.com

dlf_catalog

Sim

Nome do catálogo DLF a ser mapeado.

hive_catalog

dlf_access_id

Sim

AccessKey ID para acesso ao DLF. Forneça via CREATE USER MAPPING.

dlf_access_key

Sim

AccessKey secret para acesso ao DLF. Forneça via CREATE USER MAPPING.

oss_endpoint

Sim

Endpoint para acesso ao OSS. Use o endpoint interno para melhor desempenho. Para OSS-HDFS, utilize o endpoint interno do OSS-HDFS. Consulte Obter o nome de domínio do OSS-HDFS.

oss-cn-beijing-internal.aliyuncs.com

oss_access_id

Sim

AccessKey ID para acesso ao OSS. Forneça via CREATE USER MAPPING.

oss_access_key

Sim

AccessKey secret para acesso ao OSS. Forneça via CREATE USER MAPPING.

comment

Não

Descrição do banco de dados externo.

Exemplos

Fonte de dados MaxCompute

Ao mapear um projeto MaxCompute que utiliza um modelo de duas camadas, o Hologres o exibe como uma estrutura de três camadas: ext_db.schema.mc_table . O nome do schema assume por padrão o valor default . Por exemplo: SELECT * FROM ext_db.default.mc_table .
-- Create an external database for a MaxCompute project.
CREATE EXTERNAL DATABASE ext_database_mc WITH
  metastore_type 'maxcompute'
  mc_project 'mc_3_layer_project'
  comment 'mc three layer project';

-- Query a table in the external database.
SELECT * FROM ext_database_mc.mc_schema.mc_table;

Fonte de dados DLF

-- Create an external database for a DLF Paimon catalog.
CREATE EXTERNAL DATABASE ext_database_dlf WITH
  metastore_type 'dlf-rest'
  catalog_type 'paimon'
  dlf_catalog 'dlf_paimon_catalog'
  comment 'DLF paimon catalog';

-- Query a table in the external database.
SELECT * FROM ext_database_dlf.dlf_db.paimon_table;

Fonte de dados DLF V1.0

O DLF V1.0 exige um par de AccessKey tanto para o DLF quanto para o OSS. Forneça as credenciais usando CREATE USER MAPPING em vez de incorporá-las na instrução CREATE EXTERNAL DATABASE.

-- Create an external database.
CREATE EXTERNAL DATABASE ext_database_dlf1 WITH
  metastore_type 'dlf'
  dlf_region 'cn-beijing'
  dlf_endpoint 'dlf-share.cn-beijing.aliyuncs.com'
  dlf_catalog 'hive_catalog'
  oss_endpoint 'oss-cn-beijing-internal.aliyuncs.com'
  comment 'DLF1.0 hive catalog';

-- Bind credentials for the current user.
CREATE USER MAPPING FOR current_user
EXTERNAL DATABASE ext_database_dlf1
OPTIONS
  (
      dlf_access_id 'LTxxxxxxxxxx',
      dlf_access_key 'y8xxxxxxxxxxxxx',
      oss_access_id 'LTxxxxxxxxxx',
      oss_access_key 'y8xxxxxxxxxxxxx'
  );

-- Query a table in the external database.
SELECT * FROM ext_database_dlf1.dlf_db.hive_table;

Mais operações

Visualize todos os bancos de dados externos

SELECT database_name, options FROM hologres.hg_external_databases();

Atualizar metadados externos

Force uma atualização imediata dos metadados em vez de aguardar a expiração do cache:

REFRESH CACHE FOR EXTERNAL DATABASE <EXT_DB_NAME> WITH (cache_level = 'metadata');

Modifique o intervalo de atualização de metadados

O parâmetro metadata_refresh_interval_sec controla o intervalo de atualização completa do schema por nó frontend (FE). O valor padrão é 7.200 segundos. Ajuste-o com:

ALTER EXTERNAL DATABASE <EXT_DB_NAME> WITH metadata_refresh_interval_sec 1800;