Tous les produits
Search
Centre de documentation

Realtime Compute for Apache Flink:Gérer les catalogues Paimon

Dernière mise à jour :Aug 14, 2026

Les catalogues Paimon permettent de connecter Flink aux métadonnées du data lake stockées dans OSS ou DLF. Découvrez comment créer et gérer des catalogues, des bases de données et des tables.

Avant de commencer

  • Exigences de version

    • VVR 8.0.5 ou ultérieur : requis pour créer des catalogues et des tables Paimon.

    • VVR 11.1 ou ultérieur : requis pour utiliser DLF comme metastore.

    • VVR 11.8 ou ultérieur : requis pour utiliser OSS-HDFS comme stockage pour le catalogue Filesystem Paimon.

  • Exigences de stockage

    Paimon stocke les données et les métadonnées dans OSS. Configurez votre bucket OSS comme suit :

    • Classe de stockage : utilisez Standard. Classe de stockage.

    • Configuration du bucket : créez un bucket dédié dans la même région que votre espace de travail Flink. Ne réutilisez pas le bucket système par défaut afin d'éviter les conflits de données.

  • Autorisations d'accès : assurez-vous que la paire AccessKey dispose des autorisations de lecture et d'écriture sur votre bucket OSS ou votre répertoire DLF.

  • Compatibilité des formats

    Les catalogues Paimon prennent en charge uniquement le format Paimon. Les autres formats, tels que Lance et Iceberg, ne sont pas pris en charge.

  • Actualisation de la console : après la création ou la suppression d'un catalogue, d'une base de données ou d'une table, cliquez sur refresh image pour mettre à jour la console.

  • Correspondance des versions Paimon

    Version Apache Paimon

    VVR

    1.3.1

    11.5, 11.6, 11.7, 11.8

    1.3

    11.4

    1.2

    11.2, 11.3

    1.1

    11.1

    1.0

    8.0.11

Créer un catalogue

Choisissez un type de metastore en fonction de votre scénario :

  • Catalogue Filesystem : stocke les métadonnées dans OSS. Idéal pour les déploiements simples.

  • Catalogue DLF : stocke les métadonnées dans Data Lake Formation (DLF). Recommandé pour les scénarios d'entreprise nécessitant une gestion unifiée des métadonnées.

Créer un catalogue Filesystem

Option 1 : Utiliser la console (recommandée)

  1. Accédez à la page Catalogs.

    1. Connectez-vous au Management Portal. Recherchez l'espace de travail cible et cliquez sur Console dans la colonne Actions.

    2. Dans le volet de navigation de gauche, cliquez sur Catalogs.

  2. Cliquez sur Create Catalog, sélectionnez Apache Paimon, puis cliquez sur Next.

  3. Définissez metastore sur filesystem et configurez les autres paramètres du catalogue.

Option 2 : Utiliser SQL

Exécutez la commande suivante dans l'éditeur SQL depuis Development > Scripts :

CREATE CATALOG `my-catalog` WITH (
  'type' = 'paimon',
  'metastore' = 'filesystem',
  'warehouse' = '<warehouse>',
  'fs.oss.endpoint' = '<fs.oss.endpoint>',
  'fs.oss.accessKeyId' = '<fs.oss.accessKeyId>',
  'fs.oss.accessKeySecret' = '<fs.oss.accessKeySecret>'
);
  • Paramètres généraux

    Élément de configuration

    Description

    Obligatoire

    Remarques

    my-catalog

    Le nom du catalogue Paimon.

    Oui

    Saisissez un nom personnalisé.

    type

    Le type du catalogue.

    Oui

    Définissez sur paimon.

    metastore

    Le type du metastore.

    Oui

    Valeurs valides :

    • filesystem : stocke les métadonnées dans OSS.

    • dlf : stocke les métadonnées dans DLF.

  • Paramètres OSS

    Élément de configuration

    Description

    Obligatoire

    Remarques

    warehouse

    Le répertoire de l'entrepôt de données dans OSS.

    Oui

    Le format est oss://<bucket>/<object>, où :

    • bucket : le nom de votre bucket OSS.

    • object : le chemin où vos données sont stockées.

    Consultez les noms de vos buckets et objets dans la console OSS.

    fs.oss.endpoint

    Le point de terminaison du service OSS.

    Oui

    • Si Flink et DLF se trouvent dans la même région, utilisez le point de terminaison VPC. Sinon, utilisez le point de terminaison du réseau public.

    • Ce paramètre est requis si le bucket OSS spécifié pour l'entrepôt (warehouse) ne se trouve pas dans la même région que l'espace de travail Flink, ou si vous utilisez un bucket OSS appartenant à un autre compte Alibaba Cloud.

    Régions et points de terminaison et Créer une AccessKey.

    fs.oss.accessKeyId

    L'AccessKey ID du compte Alibaba Cloud ou de l'utilisateur RAM disposant des autorisations de lecture et d'écriture sur OSS.

    Oui

    fs.oss.accessKeySecret

    L'AccessKey Secret du compte Alibaba Cloud ou de l'utilisateur RAM disposant des autorisations de lecture et d'écriture sur OSS.

    Oui

  • OSS-HDFS (VVR 11.8 ou ultérieur)

    Pour utiliser OSS-HDFS comme stockage pour le catalogue Filesystem Paimon, utilisez l'exemple SQL suivant :

    CREATE CATALOG `my_catalog` WITH (
      'type' = 'paimon',
      'metastore' = 'filesystem',
      'warehouse' = 'dls://<bucket>.<dls-endpoint>/<warehouse-path>',
      'fs.oss.endpoint' = '<dls-endpoint>',
      'fs.oss.accessKeyId' = '<access-key-id>',
      'fs.oss.accessKeySecret' = '<access-key-secret>',
      'fs.dls.client.mode.enabled' = 'false',
      'fs.dls.data.endpoint' = '<oss-data-endpoint>'
    );

    Le tableau suivant décrit les paramètres.

    Paramètre

    Description

    Obligatoire

    Remarques

    warehouse

    Le répertoire de l'entrepôt dans OSS-HDFS.

    Oui

    Format : dls://<bucket>.<dls-endpoint>/<warehouse-path>. Le <dls-endpoint> est identique à fs.oss.endpoint.

    fs.oss.endpoint

    Le point de terminaison du service OSS-HDFS.

    Oui

    Dans la console OSS, accédez à la section « Overview > Access Ports » du bucket cible et vérifiez le HDFS Service Endpoint.

    fs.oss.accessKeyId

    L'AccessKey ID du compte Alibaba Cloud ou de l'utilisateur RAM disposant des autorisations de lecture et d'écriture sur OSS-HDFS.

    Oui

    —

    fs.oss.accessKeySecret

    L'AccessKey Secret correspondant à l'AccessKey ID.

    Oui

    —

    fs.dls.client.mode.enabled

    Indique s'il faut activer le mode client DLS.

    Oui

    Définissez sur false.

    fs.dls.data.endpoint

    Le point de terminaison des données utilisé par DLS pour accéder aux données OSS sous-jacentes.

    Oui

    Dans la console OSS, accédez à la section « Overview > Access Ports » du bucket cible et vérifiez le OSS internal Endpoint. Vous pouvez également consulter la documentation « Régions et points de terminaison ».

Créer un catalogue DLF

DLF

  1. Créez un catalogue dans la console DLF, dans la même région que votre espace de travail Flink. Utiliser rapidement DLF.

  2. Enregistrez le catalogue Paimon dans la Development Console.

    Remarque

    Cette opération mappe votre catalogue DLF en tant que métadonnées uniquement. La création ou la suppression de ce catalogue dans Realtime Compute for Apache Flink n'affecte pas les données sous-jacentes dans DLF.

    1. Connectez-vous à la console Realtime Compute.

    2. Dans la liste des espaces de travail entièrement gérés, cliquez sur le nom de votre espace de travail pour ouvrir sa console.

    3. Vous pouvez enregistrer le catalogue via l'interface utilisateur ou en exécutant des commandes SQL.

      UI

      1. Dans le volet de navigation de gauche, cliquez sur Catalogs.

      2. Sur la page Catalog List, cliquez sur Create Catalog.

      3. Sélectionnez Apache Paimon et cliquez sur Next.

      4. Définissez metastore sur dlf. Pour catalog name, sélectionnez le catalogue DLF souhaité. Cliquez sur OK pour créer le catalogue.

      SQL commands

      Dans l'éditeur Scripts, saisissez et exécutez l'instruction SQL suivante pour créer le catalogue.

      CREATE CATALOG `flink_catalog_name` 
      WITH (
        'type' = 'paimon',
        'metastore' = 'rest',
        'token.provider' = 'dlf',
        'uri' = 'http://cn-hangzhou-vpc.dlf.aliyuncs.com',
        'warehouse' = 'dlf_test'
      );

      Le tableau suivant décrit les paramètres.

      Paramètre

      Description

      Obligatoire

      Exemple

      type

      Le type du catalogue. Ce paramètre est fixé à paimon.

      Oui

      paimon

      metastore

      Le type du metastore. Ce paramètre est fixé à rest.

      Oui

      rest

      token.provider

      Le fournisseur de jetons. Ce paramètre est fixé à dlf.

      Oui

      dlf

      uri

      L'URI pour accéder au serveur de catalogue REST DLF. Le format est http://[region-id]-vpc.dlf.aliyuncs.com. Pour plus d'informations sur les ID de région, reportez-vous à Points de terminaison.

      Oui

      http://cn-hangzhou-vpc.dlf.aliyuncs.com

      warehouse

      Le nom du catalogue DLF sous-jacent à utiliser comme entrepôt.

      Oui

      dlf_test

DLF-Legacy

  1. Créez un catalogue dans la console DLF, dans la même région que votre espace de travail Flink. Prise en main.

  2. Enregistrez le catalogue Paimon dans la Development Console.

    Option 1 : Utiliser la console (recommandée)

    1. Accédez à la page Catalogs.

      1. Connectez-vous au Management Portal et cliquez sur Console dans la colonne Actions de l'espace de travail cible.

      2. Cliquez sur Catalogs.

    2. Cliquez sur Create Catalog. Sélectionnez Apache Paimon et cliquez sur Next.

    3. Définissez metastore sur DLF et sélectionnez le catalogue DLF V1.0 à associer dans la liste déroulante catalog name. Configurez ensuite les autres paramètres du catalogue.

    Option 2 : Utiliser SQL

    Exécutez la commande suivante dans l'éditeur SQL depuis Development > Scripts :

    CREATE CATALOG `my-catalog` WITH (
      'type' = 'paimon',
      'metastore' = 'dlf',
      'warehouse' = '<warehouse>',
      'dlf.catalog.id' = '<dlf.catalog.id>',
      'dlf.catalog.accessKeyId' = '<dlf.catalog.accessKeyId>',
      'dlf.catalog.accessKeySecret' = '<dlf.catalog.accessKeySecret>',
      'dlf.catalog.endpoint' = '<dlf.catalog.endpoint>',
      'dlf.catalog.region' = '<dlf.catalog.region>',
      'fs.oss.endpoint' = '<fs.oss.endpoint>',
      'fs.oss.accessKeyId' = '<fs.oss.accessKeyId>',
      'fs.oss.accessKeySecret' = '<fs.oss.accessKeySecret>'
    );

    Descriptions des paramètres :

    • Général

      Élément de configuration

      Description

      Obligatoire

      Remarques

      my-catalog

      Le nom du catalogue Paimon.

      Oui

      Saisissez un nom personnalisé.

      type

      Le type du catalogue.

      Oui

      La valeur est fixée à paimon.

      metastore

      Le type du metastore.

      Oui

      La valeur est fixée à dlf.

    • OSS

      Élément de configuration

      Description

      Obligatoire

      Remarques

      warehouse

      Le répertoire de l'entrepôt de données dans OSS.

      Oui

      Le format est oss://<bucket>/<object>, où :

      • bucket : le nom de votre bucket OSS.

      • object : le chemin où vos données sont stockées.

      Consultez les noms de vos buckets et objets dans la console OSS.

      fs.oss.endpoint

      Le point de terminaison du service OSS.

      Oui

      • Si Flink et DLF se trouvent dans la même région, utilisez le point de terminaison VPC. Sinon, utilisez le point de terminaison du réseau public.

      • Si vous souhaitez stocker des tables Paimon dans OSS-HDFS, définissez la valeur du paramètre fs.oss.endpoint sur cn-<region>.oss-dls.aliyuncs.com, par exemple cn-hangzhou.oss-dls.aliyuncs.com.

      fs.oss.accessKeyId

      L'AccessKey ID du compte Alibaba Cloud ou de l'utilisateur RAM disposant des autorisations de lecture et d'écriture sur OSS.

      Oui

      Pour plus d'informations, reportez-vous à Régions et points de terminaison et Créer une AccessKey.

      fs.oss.accessKeySecret

      L'AccessKey Secret du compte Alibaba Cloud ou de l'utilisateur RAM disposant des autorisations de lecture et d'écriture sur OSS.

      Oui

    • DLF

      Élément de configuration

      Description

      Obligatoire

      Remarques

      dlf.catalog.id

      L'ID du catalogue de données DLF.

      Oui

      Consultez l'ID du catalogue de données dans la console Data Lake Formation.

      dlf.catalog.accessKeyId

      L'AccessKey ID requise pour accéder au service DLF.

      Oui

      Pour plus d'informations, reportez-vous à Créer une AccessKey.

      dlf.catalog.accessKeySecret

      L'AccessKey Secret requise pour accéder au service DLF.

      Oui

      Pour plus d'informations, reportez-vous à Créer une AccessKey.

      dlf.catalog.endpoint

      Le point de terminaison du service DLF.

      Oui

      Régions et points de terminaison.

      Remarque

      Si Flink et DLF se trouvent dans la même région, utilisez le point de terminaison VPC. Sinon, utilisez le point de terminaison du réseau public.

      dlf.catalog.region

      La région où se trouve DLF.

      Oui

      Régions et points de terminaison.

      Remarque

      Assurez-vous que la région est identique à celle spécifiée pour dlf.catalog.endpoint.

Gérer les bases de données

Exécutez les commandes suivantes dans l'éditeur SQL à partir de Development > Scripts.

  • Créer une base de données

    Une base de données default est créée automatiquement. Pour créer d'autres bases de données :

    -- Replace my-catalog with the name of your Paimon catalog.
    USE CATALOG `my-catalog`;
    
    -- Replace my_db with a custom database name in English.
    CREATE DATABASE `my_db`;
  • Supprimer une base de données

    Important

    La base de données default ne peut pas être supprimée d'un catalogue DLF. En revanche, vous pouvez la supprimer d'un catalogue Filesystem.

    -- Replace my-catalog with the name of your Paimon catalog.
    USE CATALOG `my-catalog`;
    
    -- Replace my_db with the name of the database that you want to delete.
    DROP DATABASE `my_db`; -- Deletes a database only if it contains no tables.
    DROP DATABASE `my_db` CASCADE; -- Deletes the database and all tables in it.
    

Gérer les tables

Créer une table

Remarque

Après avoir enregistré un catalogue Paimon, vous pouvez référencer ses tables directement dans vos jobs Flink sans créer de définitions DDL. Pour référencer une table :

  • Utilisez le nom complet : ${Paimon-catalog-name}.${Paimon-db-name}.${Paimon-table-name}

  • Ou bien, définissez le catalogue et la base de données actuels à l'aide de USE CATALOG ${Paimon-catalog-name} et USE ${Paimon-db-name}. Ensuite, référencez les tables en utilisant uniquement leurs noms : ${Paimon-table-name}

  • Créer une table à l'aide de l'instruction CREATE TABLE

    Exécutez la commande suivante dans l'éditeur SQL depuis Development > Scripts.

    L'exemple ci-dessous crée une table partitionnée dans la base de données my_db du catalogue my-catalog.

    -- Replace my-catalog with the name of your Paimon catalog.
    -- Replace my_db with the name of the database that you want to use.
    -- You can also replace my_tbl with a custom name in English.
    CREATE TABLE `my-catalog`.`my_db`.`my_tbl` (
      dt STRING,
      shop_id BIGINT,
      user_id BIGINT,
      num_orders INT,
      total_amount INT,
      PRIMARY KEY (dt, shop_id, user_id) NOT ENFORCED
    ) PARTITIONED BY (dt) WITH (
      'bucket' = '4'
    );

    Pour plus d'informations, consultez les rubriques Apache Paimon connector et Primary key and append-only tables.

  • Créer une table à l'aide de l'instruction CREATE TABLE AS (CTAS) statement (Retiring) ou CREATE DATABASE AS (CDAS) statement****

    Les instructions CTAS et CDAS synchronisent automatiquement les modifications de données et de schéma, en répliquant les tables depuis des sources telles que MySQL et Kafka vers Paimon.

    Remarque
    • Répliquer une table spécifique

      L'exemple suivant crée automatiquement une table Paimon my-catalog basée sur le schéma de la table mysql.tpcds.web_sales et réplique les données.

      CREATE TABLE IF NOT EXISTS `<catalog name>`.`<db name>`.`<table name>`
      WITH (
        'bucket' = '4',
        'changelog-producer' = 'input'
      ) AS TABLE mysql.tpcds.web_sales;
    • Répliquer une base de données entière

      L'exemple suivant crée automatiquement des tables Paimon dans la base de données my-catalog en se basant sur le schéma de chaque table de la base de données mysql.tpcds et réplique les données.

      CREATE DATABASE IF NOT EXISTS `<catalog name>`.`<db name>`
      WITH (
        'changelog-producer' = 'input'
      ) AS DATABASE mysql.tpcds INCLUDING ALL TABLES;
    • Répliquer les modifications de type de colonne

      Les tables Paimon créées à l'aide d'instructions CTAS ou CDAS prennent en charge certaines modifications de type de colonne.

      • Réplication de type par défaut

        Par défaut, les tables Paimon conservent les types de colonne exacts de la source. Toutefois, certaines promotions de type sont prises en charge sans configuration explicite :

        • Types entiers : TINYINT, SMALLINT, INT et BIGINT peuvent être promus vers un type entier de précision égale ou supérieure. (TINYINT < SMALLINT < INT < BIGINT).

        • Types à virgule flottante : FLOAT et DOUBLE peuvent être promus vers un type à virgule flottante de précision égale ou supérieure. (FLOAT < DOUBLE).

        • Types chaîne : CHAR, VARCHAR et STRING peuvent être promus vers un type chaîne de précision égale ou supérieure.

      • Normalisation des types

        Pour permettre des modifications de type plus flexibles et éviter les échecs de job dus à des évolutions de schéma compatibles, définissez 'enableTypeNormalization' = 'true' dans la clause WITH de votre instruction CTAS/CDAS. Dans ce mode, Flink normalise les types de données lors de l'évolution du schéma. Un job n'échouera que si les anciens et nouveaux types ne peuvent pas être normalisés vers le même type sous-jacent. Règles :

        • TINYINT, SMALLINT, INT et BIGINT sont normalisés en BIGINT.

        • FLOAT et DOUBLE sont normalisés en DOUBLE.

        • CHAR, VARCHAR et STRING sont normalisés en STRING.

        • Les autres types de données ne sont pas normalisés.

      • Impact de la normalisation :

        Lorsque la normalisation des types est active, les types de données stockés dans la table Paimon correspondent au type normalisé. Par exemple, si les colonnes source c1 (SMALLINT) et c2 (INT) sont toutes deux normalisées en BIGINT, alors c1 et c2 seront stockées en tant que BIGINT dans la table Paimon.

      • Exemples :

        • Succès : Si SMALLINT dans la source change en INT, les deux types se normalisent en BIGINT. Il s'agit d'une modification compatible et le job se poursuit normalement.

        • Échec : Si FLOAT dans la source change en BIGINT, leurs types normalisés (DOUBLE et BIGINT) sont incompatibles, ce qui provoquera une exception.

Modifier le schéma d'une table

Exécutez les commandes suivantes dans l'éditeur SQL depuis Development > Scripts.

Opération

Exemple de code

Ajouter ou modifier des propriétés de table

ALTER TABLE my_table SET (
  'write-buffer-size' = '256 MB',
  'write-buffer-spillable' = 'true'
);

Modifier temporairement des propriétés de table

Les propriétés de table modifiées temporairement ne s'appliquent qu'au job SQL actuel.

  • Lors de l'écriture dans la table my_table, définissez temporairement write-buffer-size sur 256 Mo et write-buffer-spillable sur true.

    INSERT INTO my_table /*+ OPTIONS('write-buffer-size' = '256 MB', 'write-buffer-spillable' = 'true') */
    SELECT ...;
  • Lors de la consommation de données depuis la table my_table, définissez temporairement scan.mode sur latest et scan.parallelism sur 10.

    SELECT * FROM t /*+ OPTIONS('scan.mode' = 'latest', 'scan.parallelism' = '10') */;

Renommer une table

ALTER TABLE my_table RENAME TO my_table_new;
Important

Les opérations de renommage OSS ne sont pas atomiques. Si vous stockez les fichiers de table Paimon dans OSS, utilisez OSS-HDFS pour des opérations de fichiers atomiques.

Ajouter une nouvelle colonne

  • Ajoutez la colonne c1 de type INT et la colonne c2 de type STRING à la fin de la table my_table.

    ALTER TABLE my_table ADD (c1 INT, c2 STRING);
  • Ajoutez la colonne c2 de type STRING après la colonne c1 dans la table my_table.

    ALTER TABLE my_table ADD c2 STRING AFTER c1;
  • Ajoutez la colonne c1 de type INT au début de la table my_table.

    ALTER TABLE my_table ADD c1 INT FIRST;

Renommer une colonne

Renommez la colonne c0 en c1 dans my_table.

ALTER TABLE my_table RENAME c0 TO c1;

Supprimer une colonne

Supprimez les colonnes c1 et c2 de my_table.

ALTER TABLE my_table DROP (c1, c2);

Supprimer une partition

Supprimez les partitions dt=20240108,hh=06 et dt=20240109,hh=07 de my_table.

ALTER TABLE my_table DROP PARTITION (`dt` = '20240108', `hh` = '08'), PARTITION (`dt` = '20240109', `hh` = '07');

Modifier le commentaire d'une colonne

Modifiez le commentaire de la colonne buy_count dans my_table pour « this is buy count ».

ALTER TABLE my_table MODIFY buy_count BIGINT COMMENT 'this is buy count';

Modifier l'ordre des colonnes

  • Déplacez col_a de type DOUBLE au début de my_table.

    ALTER TABLE my_table MODIFY col_a DOUBLE FIRST;
  • Déplacez col_a de type DOUBLE après col_b dans my_table.

    ALTER TABLE my_table MODIFY col_a DOUBLE AFTER col_b;

Modifier le type d'une colonne

Modifiez le type de col_a dans my_table pour DOUBLE.

ALTER TABLE my_table MODIFY col_a DOUBLE;

Conversions de type de colonne prises en charge (〇 = pris en charge, vide = non pris en charge) :

image

Supprimer une table

Exécutez la commande suivante dans l'éditeur SQL depuis Development > Scripts.

-- Replace my-catalog with the name of your Paimon catalog.
-- Replace my_db with the name of the database that you want to use.
-- Replace my_tbl with the name of the Paimon catalog table that you created.
DROP TABLE `my-catalog`.`my_db`.`my_tbl`;

Si le message The following statement has been executed successfully! s'affiche, la table Paimon est supprimée.

Consulter ou supprimer un catalogue

  1. Dans le Management Portal, cliquez sur Console dans la colonne Actions pour l'espace de travail cible.

  2. Sur la page Catalogs, consultez ou supprimez un catalogue Apache Paimon.

    • Sur la page Catalog List, consultez le nom et le type du catalogue. Pour afficher les bases de données et les tables d'un catalogue, cliquez sur View dans la colonne Actions.

    • Sur la page Catalog List, cliquez sur Delete dans la colonne Actions pour le catalogue à supprimer.

      Remarque

      La suppression d'un catalogue retire uniquement son enregistrement Flink. Les fichiers de données sous-jacents ne sont pas affectés. Réenregistrez le catalogue pour restaurer l'accès.

      Vous pouvez également, dans l'éditeur SQL depuis Development > Scripts, saisir DROP CATALOG <catalog name>;, sélectionner le code, puis cliquer sur Run.

Références