Tous les produits
Search
Centre de documentation

Hologres:CREATE EXTERNAL DATABASE

Dernière mise à jour :Aug 11, 2026

CREATE EXTERNAL DATABASE associe une source de données externe (MaxCompute ou un lac de données Data Lake Formation [DLF]) à une instance Hologres sous la forme d'un objet de base de données unique. Une fois l'association établie, vous pouvez interroger les tables externes via le chemin en trois parties ext_db.schema.table, exécuter des requêtes fédérées sur les données internes et externes, et gérer toutes les métadonnées depuis un emplacement centralisé.

Les bases de données externes sont visibles globalement au sein d'une instance Hologres ; toute base de données interne peut donc y faire référence. Vous pouvez également vous connecter directement à une base de données externe pour exécuter des instructions SQL et définir des paramètres de configuration unifiée globale (GUC).

Prise en charge à partir de Hologres V3.0.

Choisissez votre source de données

Les deux sources de données prises en charge fonctionnent différemment. Sélectionnez celle qui correspond à votre cas d'usage avant de rédiger votre instruction.

MaxCompute DLF
Élément connecté Un projet MaxCompute Un catalogue DLF (format Paimon)
Emplacement de stockage Stockage MaxCompute Object Storage Service (OSS) géré par DLF
Formats pris en charge Natif MaxCompute Paimon (géré par DLF) ; Paimon, Apache Hudi, Delta Lake, ORC, Parquet, CSV, SequenceFile (DLF V1.0)
Cas d'utilisation recommandé Vos données résident dans des projets MaxCompute Vos données résident dans des lacs de données OSS gérés par DLF

Hologres s'appuie sur son moteur High-QPS Engine (HQE), développé en interne, pour assurer des lectures et écritures haute performance sur les formats de lac de données tels que Paimon, Hudi et DeltaLake.

Prérequis

Configuration de l'instance

Activez l'accélération des lacs de données pour l'instance avant d'exécuter CREATE EXTERNAL DATABASE :

  1. Ouvrez la console Hologres et accédez à la page Instance Details ou à la liste des instances.

  2. Repérez l'instance cible et cliquez sur Data Lake Acceleration dans la colonne Actions.

  3. Cliquez sur Confirm dans la boîte de dialogue.

Activation des services

  • DLF : activez le service DLF. Consultez le Guide de démarrage rapide et la rubrique Régions et endpoints disponibles.

  • DLF V1.0 : activez également le service Object Storage Service (OSS) et complétez l'autorisation OSS. Sans les autorisations OSS requises, les requêtes échouent même si la table externe est créée avec succès. Consultez la rubrique Stratégie de bucket.

  • OSS-HDFS (facultatif) : activez le service OSS-HDFS si vous prévoyez d'utiliser le stockage OSS-HDFS. Consultez la rubrique Activer le service OSS-HDFS.

Autorisations

  • Le compte qui exécute CREATE EXTERNAL DATABASE doit disposer des autorisations Superuser dans Hologres.

  • Les autorisations sur les données externes (tables, schémas) sont gérées par MaxCompute ou DLF, et non par Hologres. Accordez les autorisations requises au rôle lié au service (SLR) AliyunServiceRoleForHologresIdentityMgmt avant d'accéder aux données externes. Consultez la rubrique Rôle lié au service Hologres.

  • Pour utiliser un rôle RAM au lieu du SLR, consultez la rubrique Présentation des rôles RAM.

  • Pour les comptes non Alibaba Cloud et les utilisateurs RAM (par exemple, les comptes Hologres BASIC), utilisez CREATE USER MAPPING pour lier et autoriser le compte. Consultez la rubrique CREATE USER MAPPING.

Limitations

  • L'accès inter-bases de données est unidirectionnel. Lorsque vous êtes connecté à une base de données interne, accédez aux tables externes via le chemin complet ext_db.schema.table. Lorsque vous êtes connecté directement à une base de données externe, les tables des bases de données internes ne sont pas accessibles.

  • La durée de vie (TTL) du cache de métadonnées est fixée à 5 minutes. Hologres met en cache les métadonnées externes pendant 5 minutes afin d'améliorer les performances. Cette valeur n'est pas configurable. Pour forcer l'actualisation, utilisez l'instruction REFRESH CACHE décrite dans la section Actualiser les métadonnées externes.

  • MaxCompute : seuls les projets internes sont pris en charge. Les projets MaxCompute externes ne peuvent pas être associés.

Syntaxe

Source de données MaxCompute

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

Paramètres

Paramètre Requis Description
metastore_type Oui Type de metastore. Définissez la valeur sur maxcompute. La casse n'est pas sensible.
mc_project Oui Nom du projet MaxCompute à associer. Seuls les projets MaxCompute internes sont pris en charge.
comment Non Description de la base de données externe.

Source de données DLF

DLF prend actuellement en charge uniquement le mode de stockage géré et le type de catalogue Paimon. Définissez metastore_type sur dlf-rest et catalog_type sur paimon . L'authentification utilise par défaut le SLR ( AliyunServiceRoleForHologresIdentityMgmt ). Pour utiliser un rôle RAM à la place, configurez-le 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>'];

Paramètres

Paramètre Requis Description
metastore_type Oui Type de metastore pour la source de données DLF. Définissez la valeur sur dlf-rest.
catalog_type Oui Format de table de lac de données. Définissez la valeur sur paimon.
dlf_catalog Oui Nom du catalogue DLF à associer.
comment Non Description de la base de données externe.

Source de données DLF V1.0

DLF V1.0 prend en charge le stockage OSS personnalisé et des formats supplémentaires : Paimon, Apache Hudi, Delta Lake, ORC, Parquet, CSV et SequenceFile. Consultez la rubrique Accélération des lacs de données . DLF V1.0 ne prend pas en charge l'authentification par SLR ou par rôle RAM. Utilisez CREATE USER MAPPING pour fournir les identifiants par utilisateur.
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>'];

Paramètres

Paramètre Requis Description Exemple
metastore_type Oui Type de metastore. Définissez la valeur sur dlf pour DLF V1.0. dlf
catalog_type Non Format de table de lac de données. DLF V1.0 prend en charge Paimon, Hudi, Delta Lake, ORC, Parquet, CSV et SequenceFile. Ce paramètre n'est pas requis pour DLF V1.0. paimon
dlf_region Oui Région où le service DLF est déployé. Format : <nation>-<region>. cn-beijing
dlf_endpoint Oui Endpoint de réseau interne pour l'accès à DLF. Format : dlf-share.<nation>-<region>.aliyuncs.com. Consultez la rubrique Régions et endpoints disponibles. dlf-share.cn-beijing.aliyuncs.com
dlf_catalog Oui Nom du catalogue DLF à associer. hive_catalog
dlf_access_id Oui ID AccessKey pour l'accès à DLF. Fourni via CREATE USER MAPPING.
dlf_access_key Oui Secret AccessKey pour l'accès à DLF. Fourni via CREATE USER MAPPING.
oss_endpoint Oui Endpoint pour l'accès à OSS. Utilisez l'endpoint interne pour de meilleures performances. Pour OSS-HDFS, utilisez l'endpoint interne OSS-HDFS. Consultez la rubrique Obtenir le nom de domaine OSS-HDFS. oss-cn-beijing-internal.aliyuncs.com
oss_access_id Oui ID AccessKey pour l'accès à OSS. Fourni via CREATE USER MAPPING.
oss_access_key Oui Secret AccessKey pour l'accès à OSS. Fourni via CREATE USER MAPPING.
comment Non Description de la base de données externe.

Exemples

Source de données MaxCompute

Lorsque vous associez un projet MaxCompute utilisant un modèle à deux couches, Hologres l'affiche sous forme d'une structure à trois couches : ext_db.schema.mc_table . Le nom du schéma est par défaut default . Par exemple : 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;

Source de données 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;

Source de données DLF V1.0

DLF V1.0 nécessite une paire AccessKey pour DLF et OSS. Fournissez les identifiants à l'aide de CREATE USER MAPPING plutôt que de les intégrer directement dans l'instruction 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;

Autres opérations

Afficher toutes les bases de données externes

SELECT database_name, options FROM hologres.hg_external_databases();

Actualiser les métadonnées externes

Forcez une actualisation immédiate des métadonnées au lieu d'attendre l'expiration du cache :

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

Modifier l'intervalle d'actualisation des métadonnées

Le paramètre metadata_refresh_interval_sec contrôle l'intervalle d'actualisation complète du schéma par nœud frontend (FE). La valeur par défaut est de 7 200 secondes. Ajustez-la avec :

ALTER EXTERNAL DATABASE <EXT_DB_NAME> WITH metadata_refresh_interval_sec 1800;