Todos los productos
Search
Centro de documentos

Hologres:CREATE EXTERNAL DATABASE

Última actualización: Sep 05, 2026

CREATE EXTERNAL DATABASE asigna un origen de datos externo —MaxCompute o un lago de datos de Data Lake Formation (DLF)— a una instancia de Hologres como un solo objeto de base de datos. Una vez asignado, consulte las tablas externas mediante la ruta de tres partes ext_db.schema.table, ejecute consultas federadas entre datos internos y externos y gestione todos los metadatos desde un solo lugar.

Las bases de datos externas son visibles en toda la instancia de Hologres, por lo que cualquier base de datos interna puede hacer referencia a ellas. Asimismo, puede conectarse directamente a una base de datos externa. Ejecute sentencias SQL y establezca parámetros de Grand Unified Configuration (GUC).

Compatible con Hologres V3.0 y versiones posteriores.

Elija el origen de datos

Los dos orígenes de datos compatibles funcionan de manera diferente. Elija el adecuado antes de escribir la sentencia.

MaxCompute

DLF

A qué se conecta

Un proyecto de MaxCompute

Un catálogo de DLF (formato Paimon)

Ubicación de almacenamiento

Almacenamiento de MaxCompute

Object Storage Service (OSS) gestionado por DLF

Formatos compatibles

Nativo de MaxCompute

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

Cuándo usarlo

Sus datos residen en proyectos de MaxCompute

Sus datos residen en lagos de datos de OSS gestionados por DLF

Hologres utiliza su motor High-QPS Engine (HQE), desarrollado internamente, para lecturas y escrituras de alto rendimiento en formatos de lago de datos, como Paimon, Hudi y Delta Lake.

Requisitos previos

Configuración de la instancia

Habilite la aceleración de lago de datos para la instancia antes de ejecutar CREATE EXTERNAL DATABASE:

  1. Abra Hologres console y vaya a Instance List o a la página Instance Details.

  2. Busque la instancia de destino y haga clic en Data Lake Acceleration en la columna Actions.

  3. Haga clic en Confirm en el cuadro de diálogo.

Activación de servicios

  • DLF: Active el servicio DLF. Consulte Quick start y Available regions and endpoints.

  • DLF V1.0: Active también Object Storage Service (OSS) y complete la autorización de OSS. Sin los permisos de OSS obligatorios, las consultas fallan aunque la tabla externa se cree correctamente. Consulte Bucket policy.

  • OSS-HDFS (opcional): Active el servicio OSS-HDFS si planea usar almacenamiento de OSS-HDFS. Consulte Activate the OSS-HDFS service.

Permisos

  • La cuenta que ejecuta CREATE EXTERNAL DATABASE debe tener permisos de Superuser en Hologres.

  • Los permisos sobre los datos externos (tablas, esquemas) los controla MaxCompute o DLF, no Hologres. Conceda al rol vinculado al servicio (SLR) AliyunServiceRoleForHologresIdentityMgmt los permisos obligatorios antes de acceder a los datos externos. Consulte Hologres service-linked role.

  • Para usar un rol de RAM en lugar del SLR, consulte RAM role overview.

  • Para cuentas que no son de Alibaba Cloud y usuarios de RAM (por ejemplo, cuentas BASIC de Hologres), use CREATE USER MAPPING para vincular y autorizar la cuenta. Consulte CREATE USER MAPPING.

Limitaciones

  • El acceso entre bases de datos es unidireccional. Si está conectado a una base de datos interna, acceda a las tablas externas mediante la ruta completa ext_db.schema.table. Si se conecta directamente a una base de datos externa, no podrá acceder a las tablas de la base de datos interna.

  • El TTL de la caché de metadatos está fijo en 5 minutos. Hologres almacena en caché los metadatos externos durante 5 minutos para mejorar el rendimiento. Este valor no se puede configurar. Para forzar una actualización, use la sentencia REFRESH CACHE descrita en Actualizar metadatos externos.

  • MaxCompute: solo son compatibles los proyectos internos. No se pueden asignar proyectos externos de MaxCompute.

Sintaxis

Origen de datos de MaxCompute

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

Parámetros

Parámetro

Obligatorio

Descripción

metastore_type

Sí

Tipo de metastore. Establezca el valor en maxcompute. No distingue mayúsculas de minúsculas.

mc_project

Sí

Nombre del proyecto de MaxCompute que se asignará. Solo son compatibles los proyectos internos de MaxCompute.

comment

No

Descripción de la base de datos externa.

Origen de datos de DLF

Actualmente, DLF solo admite el modo de almacenamiento gestionado y el tipo de catálogo Paimon. Establezca metastore_type en dlf-rest y catalog_type en paimon . La autenticación usa el SLR ( AliyunServiceRoleForHologresIdentityMgmt ) de forma predeterminada. Para usar un rol de RAM en su lugar, configure el rol mediante 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

Obligatorio

Descripción

metastore_type

Sí

Tipo de metastore para el origen de datos de DLF. Establezca el valor en dlf-rest.

catalog_type

Sí

Formato de tabla del lago de datos. Establezca el valor en paimon.

dlf_catalog

Sí

Nombre del catálogo de DLF que se asignará.

comment

No

Descripción de la base de datos externa.

Origen de datos de DLF V1.0

DLF V1.0 admite almacenamiento de OSS personalizado y formatos adicionales: Paimon, Apache Hudi, Delta Lake, ORC, Parquet, CSV y SequenceFile. Consulte Data lake acceleration . DLF V1.0 no admite la autenticación con SLR ni con un rol de RAM. Use CREATE USER MAPPING para proporcionar credenciales para cada usuario.
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

Obligatorio

Descripción

Ejemplo

metastore_type

Sí

Tipo de metastore. Establezca el valor en dlf para DLF V1.0.

dlf

catalog_type

No

Formato de tabla del lago de datos. DLF V1.0 admite Paimon, Hudi, Delta Lake, ORC, Parquet, CSV y SequenceFile. No es obligatorio para DLF V1.0.

paimon

dlf_region

Sí

Región donde se implementa el servicio DLF. Formato: <nation>-<region>.

cn-beijing

dlf_endpoint

Sí

Endpoint de red interna para el acceso a DLF. Formato: dlf-share.<nation>-<region>.aliyuncs.com. Consulte Available regions and endpoints.

dlf-share.cn-beijing.aliyuncs.com

dlf_catalog

Sí

Nombre del catálogo de DLF que se asignará.

hive_catalog

dlf_access_id

Sí

AccessKey ID para acceder a DLF. Proporcione este valor mediante CREATE USER MAPPING.

—

dlf_access_key

Sí

AccessKey secret para acceder a DLF. Proporcione este valor mediante CREATE USER MAPPING.

—

oss_endpoint

Sí

Endpoint para acceder a OSS. Use el endpoint interno para mejorar el rendimiento. Para OSS-HDFS, use el endpoint interno de OSS-HDFS. Consulte Get the OSS-HDFS domain name.

oss-cn-beijing-internal.aliyuncs.com

oss_access_id

Sí

AccessKey ID para acceder a OSS. Proporcione este valor mediante CREATE USER MAPPING.

—

oss_access_key

Sí

AccessKey secret para acceder a OSS. Proporcione este valor mediante CREATE USER MAPPING.

—

comment

No

Descripción de la base de datos externa.

—

Ejemplos

Origen de datos de MaxCompute

Cuando asigna un proyecto de MaxCompute que usa un modelo de dos capas, Hologres lo muestra como una estructura de tres capas: ext_db.schema.mc_table . El nombre del esquema es default de forma predeterminada. Por ejemplo: 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;

Origen de datos de 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;

Origen de datos de DLF V1.0

DLF V1.0 requiere un par de AccessKey tanto para DLF como para OSS. Proporcione las credenciales mediante CREATE USER MAPPING en lugar de incluirlas en la sentencia 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;

Más operaciones

Consulte todas las bases de datos externas

SELECT database_name, options FROM hologres.hg_external_databases();

Actualizar metadatos externos

Fuerce una actualización inmediata de metadatos en lugar de esperar a que expire la caché:

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

Modifique el intervalo de actualización de metadatos

El parámetro metadata_refresh_interval_sec controla el intervalo de actualización completa del esquema por nodo de frontend (FE). El valor predeterminado es 7,200 segundos. Ajuste este valor con:

ALTER EXTERNAL DATABASE <EXT_DB_NAME> WITH metadata_refresh_interval_sec 1800;