Questions fréquentes et solutions concernant les ressources, les nœuds, les workflows, les tables et la planification dans le module de développement de données DataWorks.
-
Ressources
-
PyODPS
-
EMR Spark
-
Nœuds et workflows
-
Table
-
Journaux d'opération et période de rétention
-
Opérations par lot
-
Intégration BI
-
Appels API
-
Autres
Comment appeler un package tiers dans PyODPS ?
Utilisez un groupe de ressources exclusif pour la planification. Pour plus de détails, consultez Appeler des packages tiers dans un nœud PyODPS.
Comment contrôler si les résultats de requête peuvent être téléchargés après l'interrogation des données de la table ?
Les téléchargements doivent être activés au niveau de l'espace de travail. Si aucune option de téléchargement n'apparaît, contactez votre compte Alibaba Cloud ou l'administrateur de l'espace de travail. Dans la console DataWorks, cliquez sur Workspace Configuration dans le volet de navigation de gauche. Dans la section Security Settings, activez ou désactivez l'option Download SELECT results pour autoriser ou bloquer les téléchargements des résultats de requête. Lorsque le commutateur est bleu (activé), vous pouvez télécharger les résultats des requêtes SELECT.
Après avoir exécuté une requête, une option de téléchargement apparaît dans le coin inférieur droit des résultats. Cliquez sur le bouton Download dans la barre d'outils en bas de la page de résultats pour télécharger les données.
En raison des limitations du moteur, l'interface DataWorks permet uniquement de télécharger jusqu'à 10 000 lignes.
Comment télécharger plus de 10 000 lignes de données de table ?
Utilisez MaxCompute Tunnel. Pour plus de détails, consultez Exporter de grands volumes de données à l'aide de SQLTask et Tunnel.
Pourquoi la création visuelle de table dans DataWorks échoue-t-elle pour EMR avec l'erreur « call emr exception » ?
-
Cause possible : Le groupe de sécurité du cluster ECS hébergeant EMR ne dispose pas des règles requises. Lors de l'enregistrement d'un cluster EMR, ajoutez la stratégie de groupe de sécurité suivante pour éviter cette erreur.
Le groupe de sécurité du cluster ECS hébergeant EMR ne dispose pas des règles requises. Lors de l'enregistrement d'un cluster EMR, ajoutez la stratégie de groupe de sécurité suivante pour éviter cette erreur.
Stratégie d'autorisation : Allow
Type de protocole : Custom TCP
Plage de ports : 8898/8898
Objet d'autorisation : 100.104.0.0/16
Résolution : Vérifiez la configuration du groupe de sécurité du cluster ECS hébergeant EMR et ajoutez la stratégie ci-dessus.
Comment utiliser les ressources au sein d'un nœud ?
Cliquez avec le bouton droit sur le nœud de ressource cible et sélectionnez Insert Resource Path.
##@resource_reference{"pyodps_packagetest.py"}
import sys
import os
sys.path.append(os.path.dirname(os.path.abspath('pyodps_packagetest.py'))) # Add the resource to the workspace
import pyodps_packagetest # Reference the resource
pyodps_packagetest.printname() # Call the method
Comment télécharger les ressources envoyées vers DataWorks ?
Cliquez avec le bouton droit sur le nœud de ressource cible et sélectionnez View Historical Versions. Dans la boîte de dialogue Version Information, le tableau de l'historique des versions comprend des colonnes pour la version, le soumetteur, l'heure de soumission, le type de modification, le statut, les remarques et les actions. Dans la colonne Actions, cliquez sur Code pour afficher le contenu de la ressource pour cette version, ou cliquez sur Roll Back pour revenir à cette version. Cliquez sur Compare en bas de la boîte de dialogue pour comparer les versions.
Comment envoyer des ressources de plus de 30 Mo ?
Envoyez les ressources de plus de 30 Mo à l'aide des commandes Tunnel. Après l'envoi, ajoutez-les en tant que ressources MaxCompute dans DataWorks pour une utilisation ultérieure. Pour plus de détails, consultez Comment utiliser les ressources envoyées via odpscmd dans DataWorks ?.
Comment utiliser les ressources envoyées via odpscmd dans DataWorks ?
Les ressources envoyées via odpscmd sont répertoriées sous les ressources MaxCompute dans DataStudio. Dans le volet de navigation de gauche de DataStudio, cliquez sur MaxCompute Resources pour afficher toutes les ressources MaxCompute de l'espace de travail actuel. Sélectionnez la ressource cible et cliquez sur Add to Data Development dans le panneau de détails à droite pour l'inclure dans votre workflow.
Comment envoyer un fichier JAR développé localement dans DataWorks et l'exécuter ?
Envoyez votre fichier JAR en tant que ressource dans l'interface de développement de données. Pour le référencer dans un nœud, cliquez avec le bouton droit sur le nœud de ressource et sélectionnez Insert Resource Path (cela ajoute une ligne de commentaire en haut du nœud). Exécutez ensuite le JAR par son nom de ressource. Dans DataStudio, développez Resources dans l'arborescence de fichiers à gauche, cliquez avec le bouton droit et choisissez New > JAR pour créer une ressource JAR. Dans le panneau Upload Resource, cliquez sur l'icône d'envoi et sélectionnez votre fichier JAR local (par exemple, ip2region.jar). Cochez Upload as ODPS Resource pour synchroniser la ressource avec MaxCompute (ODPS). Après avoir cliqué sur Upload, soumettez et publiez la ressource pour éviter une erreur resource not found lors de l'exécution.
Exemple : Dans un nœud Shell, utilisez ##@resource_reference{"test.jar"} java -jar test.jar.
Comment utiliser les ressources de table MaxCompute dans DataWorks ?
DataWorks ne prend pas en charge l'envoi de ressources de table MaxCompute via l'interface graphique. Consultez l'exemple MaxCompute Exemple UDF : Référencer des ressources de table pour savoir comment référencer les ressources de table. Pour utiliser les ressources de table MaxCompute dans DataWorks, procédez comme suit :
-
Dans MaxCompute, ajoutez la table en tant que ressource de table à l'aide de l'instruction SQL suivante. Pour plus d'informations, consultez Add Resource.
add table <table_name> [partition (<spec>)] [as <alias>] [comment '<comment>'][-f]; Dans DataStudio, créez une ressource Python nommée
get_cache_table.pypour parcourir et accéder à la ressource de table ajoutée dans MaxCompute. Pour le code Python, consultez Develop code.
-
Sur la page DataWorks Data Development, créez une nouvelle fonction. Dans cet exemple, la fonction est nommée
table_udf.Remplissez les champs suivants :
Class Name :
get_cache_table.DistCacheTableExampleResources : Sélectionnez le fichier Python
get_cache_table.pydans la liste déroulante. Ajoutez la ressource de table en mode Script Mode.
Après avoir enregistré la fonction, suivez l'exemple d'utilisation pour préparer les données de test et appeler la fonction enregistrée.
Lors de la soumission d'une tâche dans DataWorks, je reçois l'erreur « No default or available resource group is configured. » Comment configurer un groupe de ressources ?
Pour résoudre ce problème, accédez à la section Scheduling Settings située à droite de la page d'édition du nœud. Trouvez Resource Group for Scheduling et sélectionnez le groupe de ressources souhaité dans la liste déroulante. Si aucun groupe de ressources approprié n'apparaît, associez un groupe de ressources à votre espace de travail comme suit.
Connectez-vous à la console de gestion DataWorks. Après avoir changé de région, cliquez sur Resource Group dans le volet de navigation de gauche pour ouvrir les Resource Groups.
Sur la page Liste des groupes de ressources, trouvez votre groupe de ressources créé et cliquez sur Associate Workspace dans la colonne Actions.
Sur la page Associate Workspace, trouvez votre espace de travail DataWorks et cliquez sur Associate dans la colonne Actions.
Après avoir effectué ces étapes, revenez à la page d'édition du nœud. Dans Scheduling Settings à droite, sélectionnez le groupe de ressources de planification souhaité dans la liste déroulante.
Une ressource Python peut-elle appeler une autre ressource Python ?
Oui. Une ressource Python peut invoquer une autre ressource Python au sein du même espace de travail.
PyODPS prend-il en charge l'appel de fonctions définies par l'utilisateur pour utiliser des packages tiers ?
Oui. En plus d'utiliser la fonction test via la méthode map d'un DataFrame, PyODPS prend en charge l'invocation directe de fonctions définies par l'utilisateur pour importer des packages tiers. Pour plus d'informations, consultez Utiliser des packages tiers dans PyODPS.
Lors de l'appel d'un fichier Pickle dans PyODPS 3, j'obtiens l'erreur : _pickle.UnpicklingError: invalid load key, '\xef
Si votre code contient des caractères spéciaux, compressez-le dans un fichier ZIP avant de l'envoyer. Décompressez-le ensuite et utilisez-le dans votre code.
Comment supprimer des ressources MaxCompute ?
Vous pouvez supprimer une ressource après sa création. En mode basique, cliquez avec le bouton droit sur la ressource et supprimez-la directement. En mode standard, supprimez d'abord la ressource dans l'environnement de développement, puis publiez la suppression pour la retirer de la production. L'exemple suivant montre comment supprimer une ressource en production.
En mode standard, les environnements de développement et de production sont séparés. La suppression d'une ressource dans DataStudio la retire uniquement de l'environnement de développement. Pour la supprimer de la production, vous devez publier l'opération de suppression.
Supprimez la ressource dans l'environnement de développement. Sous le workflow concerné, accédez à . Cliquez avec le bouton droit sur la ressource à supprimer et cliquez sur Delete. Dans la boîte de dialogue de confirmation, cliquez sur Confirm.
Supprimez la ressource de l'environnement de production. La suppression d'une ressource dans l'environnement de développement crée un enregistrement de déploiement en attente. La ressource n'est retirée de la production qu'après le déploiement de cet enregistrement. Cliquez sur DataStudio dans le coin supérieur droit de la page DataStudio, filtrez le type de modification sur Unpublish, localisez le package de déploiement, cliquez sur Actions, puis cliquez sur Deploy. Sur la page contextuelle, cliquez sur Deploy pour terminer le déploiement et retirer la ressource de la production.
Après avoir activé Kerberos dans un cluster EMR, pourquoi obtiens-je une erreur « DlfMetaStoreClientFactory not found » lors de l'exécution de spark-submit en mode YARN-Cluster dans un nœud EMR Spark ?DlfMetaStoreClientFactory not found ?
Détails de l'erreur :
Class com.aliyun.datalake.metastore.hive2.DlfMetaStoreClientFactory not found?Cause : Après avoir activé Kerberos dans un cluster EMR, le classpath du Driver en mode YARN-Cluster n'inclut pas automatiquement les fichiers JAR des répertoires spécifiés, ce qui entraîne l'échec des tâches Spark. Pour plus de détails, consultez FAQ EMR on ECS.
-
Solution : Spécifiez manuellement les packages liés à DLF comme suit :
-
Après avoir activé Kerberos dans le cluster EMR, lors de la soumission d'une tâche en mode YARN-Cluster à l'aide de
spark-submit, ajoutez le paramètre--jars. Incluez tous les fichiers JAR du répertoire/opt/apps/METASTORE/metastore-current/hive2ainsi que les dépendances de votre application.Pour le mode YARN-Cluster dans EMR Spark, spécifiez manuellement les packages liés à DLF comme indiqué ci-dessous.
ImportantEn mode YARN-Cluster, toutes les dépendances du paramètre
--jarsdoivent être séparées par des virgules. Les chemins de répertoire ne sont pas pris en charge.spark-submit --deploy-mode cluster --class org.apache.spark.examples.SparkPi --master yarn --jars /opt/apps/METASTORE/metastore-current/hive2/aliyun-java-sdk-dlf-shaded-0.2.9.jar,/opt/apps/METASTORE/metastore-current/hive2/metastore-client-common-0.2.22.jar,/opt/apps/METASTORE/metastore-current/hive2/metastore-client-hive2-0.2.22.jar,/opt/apps/METASTORE/metastore-current/hive2/metastore-client-hive-common-0.2.22.jar,/opt/apps/METASTORE/metastore-current/hive2/shims-package-0.2.22.jar /opt/apps/SPARK3/spark3-current/examples/jars/spark-examples_2.12-3.4.2.jar -
Lors de la spécification manuelle des packages liés à DLF, configurez les informations AccessKey avec les permissions d'accès à DLF et OSS. Sinon, vous pourriez rencontrer une erreur d'authentification STS, telle que l'une des suivantes :
Process Output>>> java.io.IOException: Response{protocol=http/1.1, code=403, message=Forbidden, url=http://xxx.xxx.xxx.xxx/latest/meta-data/Ram/security-credentials/}at com.aliyun.datalake.metastore.common.STSHelper.getEMRSTSToken(STSHelper.java:82)
At the task level, add the following parameters in Advanced Configuration on the right side of the node (to apply globally, configure these as Spark global parameters in cluster service settings): "spark.hadoop.dlf.catalog.akMode":"MANUAL", "spark.hadoop.dlf.catalog.accessKeyId":"xxxxxxx", "spark.hadoop.dlf.catalog.accessKeySecret":"xxxxxxxxx"
-
Comment restaurer un nœud supprimé ?
Après avoir supprimé un nœud, restaurez-le depuis la corbeille. Dans DataStudio, cliquez sur Recycle Bin dans le volet de navigation de gauche. Dans la liste des nœuds supprimés, cliquez avec le bouton droit sur le nœud cible et sélectionnez Restore.
Comment consulter la version d'un nœud ?
Ouvrez l'interface de configuration du nœud et cliquez sur l'onglet Versions à droite pour consulter son historique des versions.
Les versions sont générées uniquement après la soumission.
La liste des versions comprend l'ID du fichier, le numéro de version, le soumetteur et l'heure de soumission. Dans la colonne Actions, cliquez sur Code pour afficher le code d'une version spécifique, ou cliquez sur Roll Back pour revenir à cette version. Sélectionnez deux versions quelconques et cliquez sur Compare en bas pour voir leurs différences.
Comment cloner un workflow ?
Utilisez la fonctionnalité de groupe de nœuds. Pour plus de détails, consultez Utiliser les groupes de nœuds.
Comment exporter le code des nœuds depuis un espace de travail ?
Utilisez la fonctionnalité Migration Assistant. Pour plus de détails, consultez Migration Assistant.
Comment vérifier le statut de soumission d'un nœud de workflow ?
Sélectionnez et développez la liste Business Process correspondante pour afficher le statut de tous les nœuds. Si une
icône apparaît à gauche du nom du nœud, le nœud a été soumis. Si l'icône n'apparaît pas, le nœud n'a pas été soumis.
Lorsqu'un workflow contient plusieurs nœuds, puis-je configurer leurs informations de planification par lot ?
DataWorks ne prend pas en charge la configuration des informations de planification au niveau du workflow. Vous devez configurer chaque nœud individuellement.
Si un nœud est supprimé, ses instances sont-elles affectées ?
Le système de planification génère une ou plusieurs instances quotidiennement en fonction des attributs temporels de la tâche. Si vous supprimez une tâche après qu'elle ait fonctionné pendant un certain temps, les instances existantes restent. Si une instance se déclenche après la suppression de la tâche, elle échoue car le code n'existe plus.
Après avoir modifié une tâche de nœud et l'avoir publiée dans l'environnement de production, cela écrase-t-il le nœud erroné précédent en production ?
Non. Les instances de nœud précédentes ne sont pas écrasées. Les instances non exécutées utilisent le dernier code. Si les paramètres de planification changent, vous devez régénérer les instances pour les exécuter.
Comment visualiser une table nouvellement créée ?
Vous pouvez créer des tables dans Data Development, Table Management ou dans des conteneurs de table au sein des workflows. Dans DataStudio, cliquez sur Table Management dans le volet de navigation de gauche, puis cliquez sur New Table dans la barre d'outils supérieure. Dans le panneau de détails à droite, configurez le nom de la table, l'instance de moteur MaxCompute et la source de la table. La section Basic Properties comprend le nom chinois, la catégorie de niveau un, la catégorie de niveau deux et la description. Dans Physical Model Design, définissez le type de partition, le cycle de vie, le niveau, la classification physique et le type de table (table interne/étrangère). Utilisez les boutons en haut du panneau (DDL Mode, Load from Development Environment, Submit to Development Environment, Load from Production Environment, Submit to Production Environment) pour gérer le déploiement de la table. Cliquez avec le bouton droit sur une table dans le répertoire pour effectuer des actions telles que Rename Table, Import Data ou Delete Table.
Comment ajouter des champs à une table de production ?
Un compte Alibaba Cloud peut ajouter des champs à une table de production dans la page Table Management et soumettre les modifications à la production.
Un utilisateur RAM doit disposer du rôle O&M ou administrateur de projet pour ajouter des champs à une table de production dans la page Table Management et soumettre les modifications à la production.
Comment supprimer une table ?
Pour supprimer une table de développement, effectuez l'opération dans l'interface de développement de données.
Pour supprimer une table de production :
Supprimez-la depuis My Data dans Data Map.
Créez un nœud ODPS SQL, saisissez et exécutez une instruction DROP. Pour plus de détails sur la création de nœuds ODPS SQL, consultez Développer des tâches ODPS SQL. Pour la syntaxe DROP, consultez Opérations sur les tables.
Sur la page My Data, sélectionnez la table cible et cliquez sur Delete dans la colonne Actions pour supprimer une seule table. Pour supprimer plusieurs tables, sélectionnez-les et cliquez sur Batch Delete en bas de la page.
Comment envoyer des données locales vers une table MaxCompute ?
Dans DataStudio, utilisez la fonctionnalité d'importation de table pour envoyer des données locales. Cliquez sur l'icône Import dans la barre d'outils pour ouvrir la boîte de dialogue Data Import Wizard. Définissez Select Data Import Method sur Upload Local File, File Format sur CSV, cliquez sur Browse... pour sélectionner votre fichier CSV local (seuls les fichiers .csv sont pris en charge), Select Separator sur Comma, Source Character Set sur GBK, Import Starting Row sur 1 et cochez First Row as Header.
La création de table échoue dans un cluster EMR et l'interface affiche : call emr exception?
-
Le groupe de sécurité du cluster ECS hébergeant EMR ne dispose pas des règles requises. Lors de l'enregistrement d'un cluster EMR, ajoutez la stratégie de groupe de sécurité suivante pour éviter cette erreur.
Stratégie d'autorisation : Allow
Type de protocole : Custom TCP
Plage de ports : 8898/8898
Objet d'autorisation : 100.104.0.0/16
-
Solution :
Vérifiez la configuration du groupe de sécurité du cluster ECS hébergeant EMR et ajoutez la stratégie ci-dessus.
Comment accéder aux données de l'environnement de production depuis l'environnement de développement ?
En mode standard, interrogez les données de production en utilisant project_name.table_name.
Si vous êtes passé du mode basique au mode standard, demandez les permissions de rôle producteur avant d'interroger les données de production avec project_name.table_name. Pour plus de détails sur la demande de permissions, consultez Demander des permissions de table.
Comment obtenir les journaux d'exécution historiques dans l'interface de développement de données ?
Dans l'interface de développement de données, trouvez le module Runtime Logs dans la barre latérale gauche pour afficher les journaux d'exécution historiques.
Combien de temps les historiques d'exécution du développement de données sont-ils conservés ?
Par défaut, les historiques d'exécution dans l'interface de développement de données sont conservés pendant 3 jours.
Pour les périodes de rétention des journaux et des instances dans le centre O&M de production, consultez Combien de temps les journaux et les instances sont-ils conservés ?.
Comment modifier par lot les propriétés des nœuds, des ressources, des fonctions et d'autres objets ?
Dans l'interface DataStudio, cliquez sur Batch Operation dans la barre d'outils à gauche pour modifier par lot les nœuds, les ressources et les fonctions. Après avoir effectué les modifications, soumettez-les en masse et publiez-les dans l'interface de publication des tâches pour appliquer les changements à la production.
Dans l'interface des opérations par lot, sélectionnez les nœuds cibles. La barre d'action en bas fournit les boutons Submit, Change Owner et Change Engine Instance. Cliquez sur More pour accéder à d'autres actions : Change Scheduling Resource Group, Change Rerun Properties, Change Scheduling Type, Change Scheduling Cycle, Change Timeout Period et Delete. Cliquez sur Operation History dans le coin supérieur droit pour afficher les opérations par lot passées.
Comment modifier par lot le groupe de ressources de planification utilisé par les nœuds sous un workflow sur la page de développement de données ?
Dans DataStudio, accédez à l'onglet Resource Group Orchestration du workflow pour modifier par lot le groupe de ressources de planification pour tous les nœuds. Après avoir effectué les modifications, cliquez sur Submit puis publiez-les dans l'interface de publication des tâches pour appliquer les changements à la production. Utilisez l'arborescence de navigation à gauche pour filtrer les nœuds par type (Data Integration, MaxCompute, Hologres, etc.). La section en haut à droite affiche les zones de configuration pour Shared Resource Groups for Scheduling et Exclusive Resource Groups. La liste des nœuds ci-dessous vous permet de filtrer par nom de nœud, type de nœud, type de moteur, instance de moteur ou propriétaire. Sélectionnez les nœuds à modifier et cliquez sur Switch Resource Group en bas pour appliquer la modification.
Lors de la connexion de Power BI à MaxCompute, je rencontre une erreur. Comment résoudre ce problème ?
MaxCompute ne prend pas en charge les connexions Power BI. Nous recommandons d'utiliser Hologres à la place. Pour plus de détails, consultez Endpoints.
L'appel OpenAPI échoue avec access is forbidden. Please first activate DataWorks Enterprise Edition or Flagship Edition
OpenAPI nécessite DataWorks Enterprise Edition ou une version supérieure. Pour plus de détails, consultez Aperçu de l'API Open DataWorks.
Comment obtenir des exemples d'utilisation du SDK Python ?
Sur la page API pertinente, cliquez sur Debug pour afficher les exemples du SDK Python.
Ma tâche s'exécute sans ID d'instance. Comment désactiver le mode d'accélération ODPS ?
Désactivez le mode d'accélération pour obtenir un ID d'instance.
DataWorks permet uniquement de télécharger 10 000 lignes. Pour davantage, utilisez Tunnel, ce qui nécessite un ID d'instance.
Task submitted successfully
Task running...
Task running...
Task running...
Task running...
Congratulations! Your task was selected to run in MaxCompute Query Acceleration mode
SQL executed successfully in MaxCompute Query Acceleration mode
SQL: SELECT a.real_name...
Lors de l'exécution de la tâche, ajoutez set odps.mcqa.disable=true; dans l'éditeur de nœud ODPS SQL (exécutez-le conjointement avec vos instructions SELECT).
Erreur : [202:ERROR_GROUP_NOT_ENABLE]:group is not available
Lors de l'exécution de la tâche, vous obtenez l'erreur : Job Submit Failed! submit job failed directly! Caused by: execute task failed, exception: [202:ERROR_GROUP_NOT_ENABLE]:group is not available.
Cause possible : Le groupe de ressources associé n'est pas disponible.
Solution : Connectez-vous à la console DataWorks. Cliquez sur Resource Groups dans le volet de navigation de gauche. Trouvez votre groupe de ressources et vérifiez si son Status est Running. Si ce n'est pas le cas, redémarrez le groupe de ressources ou utilisez-en un autre disponible.