Cette rubrique explique comment se connecter à un catalogue Data Lake Formation (DLF) depuis votre espace de travail Realtime Compute for Apache Flink en utilisant Flink SQL et Paimon REST.
Prérequis
Vous disposez d'un espace de travail entièrement géré pour Realtime Compute for Apache Flink. Si vous n'en avez pas encore créé, consultez la section Activer Realtime Compute for Apache Flink.
Assurez-vous que votre espace de travail Realtime Compute for Apache Flink et DLF se trouvent dans la même région. Vous devez également ajouter le VPC de l'espace de travail à la liste d'autorisation de DLF. Pour plus d'informations, consultez le Guide d'utilisation de l'API.
Limitations
Seule la version 11.1.0 ou ultérieure de Ververica Runtime (VVR) prend en charge la connexion à un catalogue DLF.
Créer un catalogue DLF
Pour plus d'informations, consultez la section Premiers pas avec DLF.
Enregistrer le catalogue dans Flink
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.
Connectez-vous à la console Realtime Compute.
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.
-
Enregistrez le catalogue via l'interface utilisateur ou en exécutant des commandes SQL.
Interface utilisateur
Dans le volet de navigation de gauche, cliquez sur Catalogs.
Sur la page Catalog List, cliquez sur Create Catalog.
Sélectionnez Apache Paimon puis cliquez sur Next.
Définissez le paramètre metastore sur dlf. Pour le paramètre catalog name, sélectionnez le catalogue DLF souhaité. Cliquez sur OK pour créer le catalogue.
Commandes SQL
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
Type du catalogue. Ce paramètre est fixé à
paimon.Oui
paimon
metastore
Type du metastore. Ce paramètre est fixé à
rest.Oui
rest
token.provider
Fournisseur de jetons. Ce paramètre est fixé à
dlf.Oui
dlf
uri
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, consultez la section Endpoints.Oui
http://cn-hangzhou-vpc.dlf.aliyuncs.com
warehouse
Nom du catalogue DLF sous-jacent à utiliser comme entrepôt de données.
Oui
dlf_test
Erreurs courantes
java.lang.NullPointerException
-
Exemple de trace de pile :
Caused by: java.lang.NullPointerException at org.apache.paimon.rest.HttpClient.getRequestUrl(HttpClient.java:180) at org.apache.paimon.rest.HttpClient.get(HttpClient.java:108) at org.apache.paimon.rest.RESTCatalog.<init>(RESTCatalog.java:159) at org.apache.paimon.rest.RESTCatalog.<init>(RESTCatalog.java:141) at org.apache.paimon.rest.RESTCatalogFactory.create(RESTCatalogFactory.java:36) at org.apache.paimon.catalog.CatalogFactory.createUnwrappedCatalog(CatalogFactory.java:84) at org.apache.paimon.catalog.CatalogFactory.createCatalog(CatalogFactory.java:71) at org.apache.paimon.flink.VvrCatalogFactory.createCatalog(VvrCatalogFactory.java:67) at org.apache.paimon.flink.VvrCatalogFactory.createCatalog(VvrCatalogFactory.java:37) at org.apache.flink.table.gateway.vvr.module.delegation.CatalogFactoryWrapper.createCatalog(CatalogFactoryWrapper.java:91) at org.apache.flink.table.factories.FactoryUtil.createCatalog(FactoryUtil.java:572) ... 23 more -
Solution :
Vérifiez la valeur du paramètre uri dans la configuration de votre catalogue. La valeur doit commencer par
http://.
ForbiddenException: You are not authorized to do this operation
-
Exemple de trace de pile :
Caused by: org.apache.paimon.rest.exceptions.ForbiddenException: Forbidden: You are not authorized to do this operation. Action: dlf:GetConfig. AccessDeniedDetail : {"AuthAction":"dlf:GetConfig","AuthPrincipalType":"AssumedRoleUser","AuthPrincipalOwnerId":"xxxxx","AuthPrincipalDisplayName":"aliyunstreamasidefaultrole:xxxxx","PolicyType":"AccountLevelIdentityBasedPolicy","NoPermissionType":"ImplicitDeny"} requestId:xxxxx at org.apache.paimon.rest.DefaultErrorHandler.accept(DefaultErrorHandler.java:59) at org.apache.paimon.rest.DefaultErrorHandler.accept(DefaultErrorHandler.java:35) at org.apache.paimon.rest.HttpClient.exec(HttpClient.java:205) at org.apache.paimon.rest.HttpClient.get(HttpClient.java:112) at org.apache.paimon.rest.RESTCatalog.<init>(RESTCatalog.java:159) at org.apache.paimon.rest.RESTCatalog.<init>(RESTCatalog.java:141) at org.apache.paimon.rest.RESTCatalogFactory.create(RESTCatalogFactory.java:36 -
Solution :
Accordez la stratégie AliyunDLFFullAccess au rôle AliyunStreamAsiDefaultRole. Cette étape pourrait devenir inutile lors de futures mises à jour du produit.
Connectez-vous à la console RAM avec votre compte Alibaba Cloud ou en tant qu'administrateur RAM.
Dans le volet de navigation de gauche, accédez à et recherchez le rôle AliyunStreamAsiDefaultRole.
Dans la colonne Actions, cliquez sur Grant Permission.
Dans la section Policy , recherchez et sélectionnez la stratégie AliyunDLFFullAccess. Cliquez sur Grant Permissions.