Tous les produits
Search
Centre de documentation

:Tables externes Paimon

Dernière mise à jour :Aug 10, 2026

MaxCompute vous permet de créer des tables externes Paimon pour accéder aux répertoires de tables Paimon stockés dans OSS. Cette rubrique explique comment créer et interroger ces tables avec MaxCompute.

Contexte

Apache Paimon est un format de stockage de data lake unifié pour les flux de données en continu et par lots, offrant des écritures à haut débit et des requêtes à faible latence. Paimon s'intègre parfaitement aux moteurs de calcul courants tels que Spark, Hive et Trino, utilisés dans des services tels que Realtime Compute for Apache Flink et E-MapReduce. Avec Paimon, vous pouvez construire un data lake sur OSS et le connecter à MaxCompute pour l'analytique. Pour plus d'informations, consultez la documentation officielle d'Apache Paimon.

Prérequis

  • Vous disposez des autorisations nécessaires pour créer des tables MaxCompute (CreateTable). Pour plus d'informations, consultez la section Autorisations MaxCompute.

  • Un projet MaxCompute a été créé. Pour obtenir des instructions, consultez la rubrique Créer un projet.

  • Un bucket OSS et un répertoire au sein de ce bucket ont été créés. Pour obtenir des instructions, consultez la rubrique Créer un bucket.

    Remarque

    Afin d'éviter tout problème de connectivité, créez le bucket dans la même région que votre projet MaxCompute.

  • Le service Realtime Compute for Apache Flink est activé. Pour obtenir des instructions, consultez la rubrique Activer Realtime Compute for Apache Flink.

Limites

  • MaxCompute prend uniquement en charge la lecture depuis des tables externes Paimon. L'écriture dans ces tables et la détection automatique des modifications de schéma dans la table source ne sont pas prises en charge.

  • Paimon ne prend pas en charge les projets MaxCompute pour lesquels la fonctionnalité de schéma est activée.

  • Les tables externes Paimon ne prennent pas en charge l'attribut de clustering.

  • Les tables externes Paimon ne prennent pas en charge certaines fonctionnalités, telles que l'interrogation des versions historiques des données.

Syntaxe des tables externes Paimon

Utilisez la syntaxe suivante pour créer une table externe Paimon dans MaxCompute :

CREATE EXTERNAL TABLE [IF NOT EXISTS] <mc_oss_extable_name>
(
<col_name> <data_type>,
...
)
[PARTITIONED BY (<col_name> <data_type>, ...)]
STORED BY 'org.apache.paimon.hive.PaimonStorageHandler'
WITH SERDEPROPERTIES (
    'odps.properties.rolearn'='acs:ram::xxxxxxxxxxxxx:role/aliyunodpsdefaultrole'
)
LOCATION '<oss_location>'
USING 'paimon_maxcompute_connector.jar';

Si vous créez une table partitionnée, vous devez exécuter une commande supplémentaire pour charger les données de partition. Pour plus d'informations, consultez la section relative aux tables externes ORC.

  • Méthode 1 (recommandée) : Analysez automatiquement la structure du répertoire OSS pour identifier et ajouter les partitions à la table externe.

    MSCK REPAIR TABLE <mc_oss_extable_name> ADD PARTITIONS;
  • Méthode 2 : Exécutez manuellement la commande suivante pour ajouter une partition.

    ALTER TABLE <mc_oss_extable_name> ADD PARTITION (<col_name>= <col_value>);

Paramètres

Paramètre

Obligatoire

Description

mc_oss_extable_name

Oui

Nom de la table externe Paimon à créer.

Les noms de tables ne sont pas sensibles à la casse. Vous n'avez pas besoin de tenir compte de la casse lors de l'interrogation de la table externe.

col_name

Oui

Nom d'une colonne dans la table externe Paimon.

Lors de la lecture des données depuis Paimon, le schéma de la table externe doit correspondre au schéma des fichiers de données Paimon. Dans le cas contraire, l'opération de lecture échoue.

data_type

Oui

Type de données d'une colonne dans la table externe Paimon.

Lors de la lecture des données depuis Paimon, le type de données de chaque colonne de la table externe doit correspondre au type de données de la colonne correspondante dans les fichiers de données Paimon. Dans le cas contraire, l'opération de lecture échoue.

odps.properties.rolearn

Oui

Alibaba Cloud Resource Name (ARN) d'un rôle RAM disposant des autorisations d'accès à OSS.

Vous pouvez obtenir l'ARN depuis la page détails du rôle dans la console RAM.

oss_location

Oui

Chemin d'accès aux fichiers de données OSS. Le format est oss://<oss_endpoint>/<BucketName>/<oss_directory_name>/. Par défaut, MaxCompute lit tous les fichiers de données situés sous ce chemin.

  • oss_endpoint : Nom de domaine d'accès OSS. Vous devez utiliser un endpoint OSS interne afin d'éviter les frais de transfert de données. Exemple : oss://oss-cn-beijing-internal.aliyuncs.com/xxx. Pour la liste des endpoints OSS internes, consultez la section Régions et endpoints.

    Remarque

    Le bucket OSS doit se trouver dans la même région que votre projet MaxCompute afin d'éviter les problèmes de connectivité, car MaxCompute est déployé dans des régions spécifiques.

  • BucketName : Nom du bucket OSS. Pour trouver le nom de votre bucket, consultez la section Lister les buckets.

  • oss_directory_name : Nom du répertoire OSS. Vous n'avez pas besoin de spécifier un nom de fichier. Exemple :

    oss://oss-cn-shanghai-internal.aliyuncs.com/oss-mc-test/Demo1/

Procédure

Étape 1 : Préparer les données dans Flink

Créez un catalogue Paimon et une table Paimon, puis insérez des données dans la table. Si vous disposez déjà d'une table Paimon contenant des données dans Realtime Compute for Apache Flink, vous pouvez ignorer cette étape.

  1. Connectez-vous à la console Realtime Compute for Apache Flink et créez un catalogue Paimon. Pour plus de détails, consultez la section Créer un catalogue Paimon.

  2. Créez une table Paimon. Pour plus de détails, consultez la section Gérer les tables Paimon.

    1. Sur la page Metadata Management, accédez au catalogue Paimon que vous avez créé, sélectionnez la base de données default et cliquez sur Create Table.

    2. Dans la boîte de dialogue Add Table, sélectionnez le connecteur Apache Paimon, saisissez l'instruction suivante, puis cliquez sur OK. Cet exemple crée une table nommée test_tbl.

      CREATE TABLE `catalogname`.`default`.test_tbl (
          dt STRING,
          id BIGINT,
          data STRING,
          PRIMARY KEY (dt, id) NOT ENFORCED
      ) PARTITIONED BY (dt);
    3. Sur la page SQL Editor, créez, déployez et exécutez une tâche SQL contenant l'instruction suivante. Pour plus d'informations sur la création et l'exécution d'une tâche SQL, consultez la rubrique Vue d'ensemble du développement de tâches.

      INSERT INTO `catalogname`.`default`.test_tbl VALUES ('2023-04-21', 1, 'AAA'), ('2023-04-21', 2, 'BBB'), ('2023-04-22', 1, 'CCC'), ('2023-04-22', 2, 'DDD');
      Remarque
      • Assurez-vous que la version du moteur pour la tâche SQL est vvr-8.0.1-flink-1.17 ou ultérieure.

      • Si votre tâche SQL subit une rétropression (par exemple, lors de l'exécution d'instructions INSERT INTO ... VALUES ...), accédez à la page Job O&M, modifiez les Execution Parameters, et dans la section Other Configurations, définissez execution.checkpointing.checkpoints-after-tasks-finish.enabled: true. Pour plus de détails sur la configuration des paramètres d'exécution d'une tâche, consultez la rubrique Configurer les informations de déploiement des tâches.

Étape 2 : Télécharger le connecteur Paimon

Utilisez l'une des méthodes suivantes pour télécharger le connecteur Paimon vers votre projet MaxCompute.

Client MaxCompute

Utiliser le client (odpscmd) pour accéder au projet MaxCompute et exécutez le code suivant afin de télécharger paimon_maxcompute_connector.jar vers le projet.

ADD JAR <path_to_paimon_maxcompute_connector.jar>;

DataWorks

  1. Connectez-vous à la console DataWorks. Dans le volet de navigation de gauche, cliquez sur Workspaces. Recherchez l'espace de travail cible et cliquez sur Go to DataStudio dans la colonne Actions.

  2. Sur la page Data Development, cliquez sur l'icône Create et sélectionnez Resource > JAR.

  3. Dans la boîte de dialogue Create Resource, configurez les paramètres de la nouvelle ressource, téléchargez paimon_maxcompute_connector.jar et cliquez sur Create. Pour plus d'informations, consultez la section Étape 1 : Créer ou télécharger une ressource.

    Définissez Resource Type sur JAR et sélectionnez Upload as ODPS resource.

  4. Une fois la ressource créée, cliquez sur l'icône image.png dans la barre d'outils pour soumettre la ressource au serveur.

Étape 3 : Créer une table externe Paimon

Se connecter à l'aide du client local (odpscmd) ou utilisez un autre outil capable d'exécuter du SQL MaxCompute pour créer une table externe Paimon MaxCompute. Cette rubrique utilise oss_extable_paimon_1pt à titre d'exemple.

CREATE EXTERNAL TABLE oss_extable_paimon_1pt
(
    id BIGINT,
    data STRING
)
PARTITIONED BY (dt STRING)
STORED BY 'org.apache.paimon.hive.PaimonStorageHandler'
WITH SERDEPROPERTIES (
    'odps.properties.rolearn'='acs:ram::124*********:role/aliyunodpsdefaultrole'
)
LOCATION 'oss://oss-cn-beijing-internal.aliyuncs.com/paimon_flink/test_db_y.db/test_tbl/'
USING 'paimon_maxcompute_connector.jar'
;

Étape 4 : Lire la table externe Paimon

  1. Connectez-vous à l'aide du client MaxCompute (odpscmd) ou d'un autre outil capable d'exécuter du SQL MaxCompute, puis exécutez les commandes suivantes :

    SET odps.sql.common.table.planner.ext.hive.bridge = true;
    SET odps.sql.hive.compatible = true;
  2. Exécutez la commande suivante pour interroger la table externe Paimon MaxCompute oss_extable_paimon_1pt.

    SELECT * FROM oss_extable_paimon_1pt;

    Le résultat suivant est renvoyé :

    +------------+------------+------------+
    | id         | data       | dt         |
    +------------+------------+------------+
    | 1          | AAA        | 2023-04-21 |
    | 2          | BBB        | 2023-04-21 |
    +------------+------------+------------+
    Remarque

    Si les partitions ne s'affichent pas dans le résultat, exécutez la commande suivante pour les ajouter :

    MSCK REPAIR TABLE oss_extable_paimon_1pt ADD PARTITIONS;

Documentation connexe

Vous pouvez également créer une table externe Paimon MaxCompute en tant que catalogue personnalisé dans Realtime Compute for Apache Flink. Cela vous permet d'interroger et de consommer les données Paimon avec MaxCompute après leur écriture. Pour plus d'informations, consultez la rubrique Créer une table externe Paimon à l'aide de Realtime Compute for Apache Flink.