Tous les produits
Search
Centre de documentation

Hologres:CREATE FOREIGN TABLE

Dernière mise à jour :Aug 11, 2026

CREATE FOREIGN TABLE mappe une table externe dans Hologres vers une table située dans une source de données connectée, telle que MaxCompute, Object Storage Service (OSS), Data Lake Formation (DLF) ou une autre instance Hologres. Vous pouvez ainsi interroger ces données via SQL standard sans avoir à les importer au préalable.

Le serveur distant odps_server est préconfiguré dans Hologres. Il n'est pas nécessaire de le créer.

Syntaxe

CREATE FOREIGN TABLE [ IF NOT EXISTS ] table_name (
  { column_name data_type }
  [, ... ]
)
SERVER odps_server
OPTIONS (
  project_name '<odps_project_name>[#<odps_schema_name>]',
  table_name '<odps_table_name>'
)

Paramètres

Paramètres obligatoires

Paramètre Description
table_name Nom de la table distante à créer dans Hologres.
SERVER odps_server Serveur distant permettant la connexion à MaxCompute. La valeur odps_server est préconfigurée dans Hologres ; ne la modifiez pas. Pour plus d'informations sur l'implémentation sous-jacente, consultez la documentation Postgres FDW.
OPTIONS Paires clé-valeur identifiant la table source MaxCompute. Consultez la section OPTIONS ci-dessous pour plus de détails.

OPTIONS

Le format de la valeur project_name dépend du modèle utilisé par votre projet MaxCompute : deux couches ou trois couches.

Modèle à deux couches (projet → table) :

Clé Valeur
project_name Nom du projet MaxCompute. Exemple : 'my_project'
table_name Nom de la table MaxCompute à interroger. Exemple : 'my_table'

Modèle à trois couches (projet → schéma → table) :

Clé Valeur
project_name Nom du projet MaxCompute et nom du schéma, séparés par #. Exemple : 'my_project#my_schema'
table_name Nom de la table MaxCompute à interroger. Exemple : 'my_table'
Remarque

Les types de données de toutes les colonnes de la table distante Hologres doivent correspondre aux types de données des colonnes correspondantes dans la table MaxCompute.

Notes d'utilisation

  • Le modèle à trois couches nécessite Hologres V1.3 ou une version ultérieure. Si la version de votre instance est antérieure à la V1.3, mettez-la à niveau avant de créer des tables distantes pour les projets utilisant ce modèle. En cas d'échec de la mise à niveau, consultez la rubrique Erreurs courantes lors de la préparation d'une mise à niveau ou contactez le support via le groupe DingTalk Hologres.

  • L'utilisation de la syntaxe du modèle à deux couches sur un projet fonctionnant avec le modèle à trois couches génère l'erreur suivante : failed to import foreign schema:Table not found - table_xxx

  • Si la table MaxCompute contient une colonne dont le type de données n'est pas pris en charge, vous pouvez toujours interroger les autres colonnes prises en charge, à condition de ne pas sélectionner la colonne non prise en charge.

  • Le type DATETIME utilise le fuseau horaire UTC+8. La plage de valeurs s'étend du 1er janvier 0000 au 31 décembre 9999, avec une précision à la milliseconde.

  • Le type TIMESTAMPTZ inclut un décalage de fuseau horaire. La plage de valeurs s'étend de 4713 av. J.-C. à 294276 apr. J.-C., avec une précision à la microseconde.

Exemples

Interroger directement les données depuis une table distante

Créez une table distante et interrogez les données MaxCompute sans les importer.

Modèle à deux couches :

CREATE FOREIGN TABLE src_pt (
  id text,
  pt text
)
SERVER odps_server
OPTIONS (project_name '<odps_project>', table_name '<odps_table>');

SELECT * FROM src_pt;

Modèle à trois couches :

CREATE FOREIGN TABLE src_pt (
  id text,
  pt text
)
SERVER odps_server
OPTIONS (project_name '<odps_project>#<odps_schema>', table_name '<odps_table>');

SELECT * FROM src_pt;

Pour plus d'informations, consultez la rubrique Accélérer les requêtes sur les données MaxCompute à l'aide de tables distantes.

Importer les données puis les interroger

Importez d'abord les données MaxCompute dans une table interne Hologres, puis effectuez vos requêtes.

-- Step 1: Create a foreign table pointing to the MaxCompute source
CREATE FOREIGN TABLE src_pt_odps (
  id text,
  pt text
)
SERVER odps_server
OPTIONS (project_name '<odps_project>', table_name '<odps_table>');

-- Step 2: Create an internal Hologres table to hold the imported data
BEGIN;
CREATE TABLE src_pt (
  id text,
  pt text
);
COMMIT;

-- Step 3: Import data from MaxCompute into the internal table
INSERT INTO src_pt SELECT * FROM src_pt_odps;

Pour plus d'informations, consultez la rubrique Importer des données depuis MaxCompute à l'aide de SQL.

Mappage des types de données

Pour consulter le mappage complet entre les types de données MaxCompute et Hologres, reportez-vous à la rubrique Mappage des types de données entre MaxCompute et Hologres.

Rubriques connexes