L'API de métadonnées est une interface standard et open source fournie par Paimon pour accéder aux métadonnées de Data Lake Formation (DLF). La dépendance SDK de l'API de métadonnées ne contient que des classes liées à Paimon, ce qui évite tout conflit avec les dépendances de votre application.
Choisir un endpoint d'accès
L'API de métadonnées DLF est accessible via deux endpoints. Choisissez un endpoint en fonction de l'emplacement d'exécution de votre client :
Endpoint VPC DLF (recommandé) — Offre un accès à faible latence depuis un VPC figurant dans la liste d'autorisation DLF. Les exemples de cette rubrique utilisent un endpoint VPC DLF.
Endpoint OpenAPI Alibaba Cloud — Permet un accès via le réseau public, adapté aux scénarios tels que l'accès inter-régions et le débogage local. La prise en charge de la signature pour l'endpoint OpenAPI nécessite un client Paimon version 1.4 ou ultérieure, soit une version supérieure au SDK utilisé dans la dépendance Maven de cette rubrique.
Prérequis
Avant d'ajouter un VPC à la liste d'autorisation, d'accorder des autorisations à un rôle, d'ajouter la dépendance Maven et d'appeler l'API de métadonnées DLF, vérifiez que les conditions suivantes sont remplies :
Accès réseau — Par défaut, l'API de métadonnées DLF n'est accessible qu'à partir des VPC inclus dans la liste d'autorisation. Lorsque vous accédez à DLF via un endpoint VPC DLF, votre client doit s'exécuter dans un VPC autorisé.
Environnement d'exécution et rôle — Lorsque vous utilisez l'authentification par rôle ECS, votre client s'exécute sur une instance Elastic Compute Service (ECS) ou sur un nœud de cluster E-MapReduce (EMR) associé à un rôle ECS.
Catalogue DLF — Un catalogue DLF est disponible et le rôle ECS dispose des autorisations nécessaires sur ce catalogue.
Identifiants d'autorisation — Vous disposez des identifiants d'un compte Alibaba Cloud ou d'un administrateur Resource Access Management (RAM), requis pour accorder des autorisations RAM au rôle ECS.
Version du client — Le client Paimon satisfait aux exigences de version de l'endpoint que vous utilisez, comme décrit dans la section précédente.
Configurer une liste d'autorisation de VPC
Lors de l'activation de DLF, le système synchronise automatiquement les ID de VPC de votre région actuelle vers la liste d'autorisation au niveau de l'utilisateur. Pour ajouter un VPC ultérieurement, ajoutez son ID de VPC dans la console DLF :
Connectez-vous à la console Data Lake Formation (DLF).
Dans le volet de navigation de gauche, cliquez sur System & Security.
Cliquez sur l'onglet System & Security, puis cliquez sur Add VPC.
Dans la boîte de dialogue qui s'affiche, saisissez l'ID du VPC à partir duquel vous accédez à l'API de métadonnées DLF, puis cliquez sur OK.
Accorder des autorisations DLF à un rôle
Accordez au rôle ECS deux ensembles d'autorisations : les autorisations RAM dans la console RAM et les autorisations de catalogue dans la console DLF. Par exemple, pour un cluster EMR, le rôle est AliyunECSInstanceForEMRRole.
-
Accordez des autorisations RAM au rôle ECS.
Connectez-vous à la console Resource Access Management (RAM) avec votre compte Alibaba Cloud ou en tant qu'administrateur RAM.
Choisissez Identities > Roles, puis recherchez le rôle ECS.
Dans la colonne Actions, cliquez sur Add Permissions.
Dans Policies, recherchez et sélectionnez
AliyunDLFFullAccess, puis cliquez sur OK.
-
Accordez des autorisations DLF au rôle ECS.
Connectez-vous à la console Data Lake Formation (DLF).
Sur la page Catalogs, cliquez sur le nom du catalogue cible.
Cliquez sur l'onglet Permissions, puis cliquez sur Grant Permissions.
-
Sur la page d'autorisation, configurez les paramètres suivants, puis cliquez sur OK.
Principal : Sélectionnez un utilisateur RAM ou un rôle RAM.
-
Select DLF User : Sélectionnez ECS Role dans la liste déroulante.
RemarqueSi ECS Role n'apparaît pas dans la liste déroulante des utilisateurs, choisissez System & Security > Access Control > Users, puis cliquez sur Sync Users.
Predefined Permission Type : Sélectionnez Data Editor.
Créer un client API REST
Créez un client API REST pour appeler l'API de métadonnées DLF depuis votre application Java.
Ajouter la dépendance Maven
Pour référencer le SDK API dans votre projet Java, ajoutez la dépendance Maven suivante :
<dependency>
<groupId>org.apache.paimon</groupId>
<artifactId>paimon-api</artifactId>
<version>1.3.0</version>
</dependency>
Vous pouvez également télécharger directement le fichier JAR : paimon-api-1.3.0.jar.
Initialiser le client et appeler l'API
Choisissez une méthode d'authentification pour le service REST DLF en fonction de votre environnement d'exécution :
Rôle ECS (recommandé) — Émet un jeton temporaire via l'instance ECS sur laquelle le client s'exécute. L'exemple suivant utilise cette méthode.
Paire AccessKey — Se connecte directement au service REST DLF en configurant
DLF_ACCESS_KEY_IDetDLF_ACCESS_KEY_SECRETdansRESTCatalogOptions. Utilisez cette méthode lorsqu'aucun rôle ECS n'est disponible dans votre environnement d'exécution.
L'exemple suivant crée un client RESTApi qui s'authentifie avec un rôle ECS, puis répertorie les tables d'une base de données. Remplacez l'endpoint, le nom du catalogue dlf_test et le nom de la base de données my_database par les valeurs correspondant à votre endpoint régional, à votre catalogue DLF et à votre base de données.
import org.apache.paimon.options.Options;
import org.apache.paimon.rest.RESTApi;
import static org.apache.paimon.options.CatalogOptions.WAREHOUSE;
import static org.apache.paimon.rest.RESTCatalogOptions.DLF_TOKEN_LOADER;
import static org.apache.paimon.rest.RESTCatalogOptions.TOKEN_PROVIDER;
import static org.apache.paimon.rest.RESTCatalogOptions.URI;
public class RESTApiExample {
public static void main(String[] args) {
Options options = new Options();
options.set(URI, "http://cn-hangzhou-vpc.dlf.aliyuncs.com");
options.set(WAREHOUSE, "dlf_test");
options.set(TOKEN_PROVIDER, "dlf");
options.set(DLF_TOKEN_LOADER, "ecs");
RESTApi api = new RESTApi(options);
System.out.println(api.listTables("my_database"));
}
}
L'exemple affiche le résultat renvoyé par l'appel listTables pour la base de données spécifiée.
Le tableau suivant décrit les paramètres.
| Paramètre | Description | Obligatoire | Exemple |
| URI | L'URI utilisé pour accéder au serveur de catalogue REST DLF, au format http://[region-id]-vpc.dlf.aliyuncs.com. Pour les ID de région et les endpoints OpenAPI, consultez Endpoints. |
Oui | http://cn-hangzhou-vpc.dlf.aliyuncs.com |
| WAREHOUSE | Le nom du catalogue DLF. | Oui | dlf_test |
| TOKEN_PROVIDER | Le fournisseur de jetons. Définissez la valeur sur dlf. |
Oui | dlf |
| DLF_TOKEN_LOADER | Le chargeur de jetons. Définissez la valeur sur ecs pour émettre un jeton temporaire via une instance ECS. Configurez ce paramètre lorsque vous vous authentifiez avec un rôle ECS. |
Non | ecs |
| DLF_ACCESS_KEY_ID | L'ID AccessKey utilisé pour se connecter directement au service REST DLF au lieu d'utiliser l'authentification basée sur ECS. Configurez ce paramètre dans RESTCatalogOptions. |
Non | - |
| DLF_ACCESS_KEY_SECRET | Le secret AccessKey utilisé pour se connecter directement au service REST DLF au lieu d'utiliser l'authentification basée sur ECS. Configurez ce paramètre dans RESTCatalogOptions. |
Non | - |