Cette rubrique explique comment accéder à un catalogue Data Lake Formation (DLF) depuis un environnement Trino sur EMR on ECS en utilisant Paimon REST.
Prérequis
Un cluster EMR on ECS avec le composant Trino est requis. La version d'EMR doit être la 5.13.0 ou une version ultérieure. Pour demander une version différente, contactez les développeurs DLF via le groupe DingTalk (ID : 106575000021).
Créer un catalogue DLF
Pour plus d'informations, consultez Premiers pas avec DLF.
Accorder des autorisations DLF à un rôle
-
Accordez des autorisations RAM au rôle AliyunECSInstanceForEMRRole. Vous pouvez ignorer cette étape une fois l'intégration du produit entre EMR et DLF terminée.
Connectez-vous à la console RAM avec votre compte Alibaba Cloud ou en tant qu'administrateur RAM.
Dans le volet de navigation de gauche, sélectionnez . Recherchez ensuite le rôle AliyunECSInstanceForEMRRole.
Dans la colonne Actions, cliquez sur Add Permissions.
Sous l'onglet Permission Policies, recherchez et sélectionnez la stratégie AliyunDLFFullAccess. Cliquez ensuite sur OK.
-
Accordez des autorisations DLF au rôle AliyunECSInstanceForEMRRole.
Connectez-vous à la console DLF.
Sur la page Catalogs, cliquez sur le nom d'un catalogue pour accéder à sa page de détails.
Pour accorder des autorisations sur l'ensemble du catalogue, cliquez sur l'onglet Permissions. Sinon, pour accorder des autorisations sur une base de données ou une table spécifique, accédez d'abord à la ressource, puis cliquez sur son onglet Permissions.
-
Dans le panneau Grant Permissions, configurez les paramètres suivants et cliquez sur OK.
Principal : Sélectionnez RAM User/RAM Role.
-
Select Principal : Sélectionnez AliyunECSInstanceForEMRRole dans la liste déroulante.
RemarqueSi AliyunECSInstanceForEMRRole ne figure pas dans la liste déroulante, cliquez sur Sync User/Role sur la page de gestion des utilisateurs.
Predefined Permission Type : Personnalisez les autorisations de lecture ou sélectionnez un type prédéfini, tel que Data Reader ou Data Editor.
Mettre à niveau les dépendances Paimon sur EMR
-
Importez les dépendances Paimon.
Téléchargez les deux fichiers JAR requis, paimon-ali-jindo-1,4.jar et paimon-trino-422-1,4-plugin.jar, vers Object Storage Service (OSS). Définissez ensuite la liste de contrôle d'accès (ACL) des fichiers sur Public Read. Pour plus d'informations, consultez Téléchargement simple.
Modifiez le script suivant et téléchargez-le vers OSS.
#!/bin/bash echo 'backup paimon-trino-ali-.*' sudo mkdir /tmp/upgrade-trino-dlf2.5 sudo cp -r /opt/apps/TRINO/trino-current/plugin/paimon /tmp/upgrade-trino-dlf2.5 echo 'clear old paimon plugin jars' sudo rm -rf /opt/apps/TRINO/trino-current/plugin/paimon/* echo 'download paimon-ali-trino-1.4.jar' cd /opt/apps/TRINO/trino-current/plugin/paimon/ wget ${paimon-ali-jindo-1.4.jar} wget ${paimon-trino-422-1.4-plugin.jar}ImportantRemplacez les espaces réservés
${paimon-ali-jindo-1.4.jar}et${paimon-trino-422-1.4-plugin.jar}dans le script par les URL de téléchargement OSS des fichiers JAR. Par exemple : https://{bucket}.oss-cn-hangzhou-internal.aliyuncs.com/jars/paimon-ali-jindo-1.4.jar. -
Exécutez le script en tant qu'action manuelle sur le cluster EMR. Pour plus d'informations, consultez Exécuter manuellement un script.
Dans votre cluster EMR, accédez à l'onglet , puis cliquez sur Create and Execute.
-
Dans la boîte de dialogue, configurez les paramètres suivants et cliquez sur OK.
Name : Saisissez un nom personnalisé pour le script.
Script Location : Sélectionnez le script de mise à niveau que vous avez téléchargé vers OSS. Le chemin du script doit être au format oss://**/*.sh.
Execution Scope : Sélectionnez Cluster.
Configurer la connexion au catalogue Trino
Dans la section Cluster Services de votre cluster EMR, cliquez sur Configure pour le service Trino. Dans le fichier paimon.properties, ajoutez ou modifiez les propriétés suivantes.
connector.name=paimon
warehouse=dlf_test
metastore=rest
token.provider=dlf
uri=<uri>
dlf.token-loader=ecs
|
Parameter |
Description |
Required |
Example |
|
connector.name |
Le nom du connecteur. Doit être défini sur |
Oui |
paimon |
|
warehouse |
Le nom de votre catalogue DLF. |
Oui |
dlf_test |
|
metastore |
Le type de metastore. Doit être défini sur |
Oui |
rest |
|
token.provider |
Le fournisseur de jetons. Doit être défini sur |
Oui |
dlf |
|
uri |
Le point de terminaison pour le serveur de catalogue DLF REST. Le format est |
Oui |
http://cn-hangzhou-vpc.dlf.aliyuncs.com |
|
dlf.token-loader |
Indique que le jeton temporaire est obtenu à partir du rôle d'instance ECS. Cette valeur doit être définie sur |
Oui |
ecs |
Une fois la configuration terminée, redémarrez le service Trino pour appliquer les modifications.
Lire des tables Paimon avec Trino
-
Exécutez la commande suivante pour entrer dans l'interface de ligne de commande (CLI).
sh /opt/apps/TRINO/trino-current/bin/trino --server master-1-1:9090 -
Exécutez la commande suivante pour lire les données, où
users_samplesest une table existante dans le catalogue DLF.select * from paimon.default.users_samples;trino> select * from paimon.default.users_samples; user_id | age_level | final_gender_code | clk ---------+-----------+-------------------+------- 1 | 2-25-34 | M | true 2 | 2-18-24 | F | false 3 | 2-35-44 | M | true (3 rows) Query 20250520_071520_00003_6rw87, FINISHED, 1 node Splits: 1 total, 1 done (100.00%) 1.54 [3 rows, 0B] [1 rows/s, 0B/s]