Les jobs UDF et MapReduce dans MaxCompute ne peuvent pas accéder directement aux fichiers locaux. Vous devez d'abord les importer en tant que ressources au niveau du projet. Une fois importées, les ressources sont disponibles pour tous les jobs sans nécessiter de nouvel import. Cette rubrique explique comment ajouter, créer un alias, télécharger, consulter, lister et supprimer des ressources à l'aide du client MaxCompute (odpscmd).
Le tableau suivant répertorie les opérations prises en charge.
|
Opération |
Commande CLI |
Autorisation requise |
|
|
Autorisation d'écriture sur les ressources |
|
|
|
Autorisation d'écriture sur les ressources |
|
|
|
Autorisation d'écriture sur les ressources |
|
|
|
Autorisation de lecture sur les ressources |
|
|
|
Autorisation de liste sur les objets d'un projet |
|
|
|
Autorisation de suppression sur les ressources |
Prérequis
Avant de commencer, assurez-vous de disposer des éléments suivants :
Un accès au client MaxCompute (odpscmd) ou à Cloud Shell (odpscmd)
Les autorisations requises pour l'opération (voir le tableau ci-dessus)
Ajouter des ressources
Cette opération ajoute un fichier local à un projet MaxCompute en tant que ressource, ce qui la rend disponible pour les fonctions définies par l'utilisateur (UDF) ou les jobs MapReduce.
Limitations :
Les tables externes ne peuvent pas être ajoutées en tant que ressources.
La taille maximale par fichier de ressource est de 2 048 Mo. La taille totale des ressources référencées par un seul job SQL ou MapReduce ne peut pas dépasser 2 048 Mo.
Syntaxe :
add file <local_file> [as <alias>] [comment '<comment>'] [-f];
add archive <local_file> [as <alias>] [comment '<comment>'] [-f];
add table <table_name> [partition (<spec>)] [as <alias>] [comment '<comment>'] [-f];
add py|jar <local_file> [comment '<comment>'] [-f];
Paramètres :
|
Paramètre |
Requis |
Description |
|
|
Oui |
|
|
|
Oui |
Le chemin d'accès local du fichier à ajouter. Le nom du fichier devient le nom de la ressource, qui identifie de manière unique la ressource dans le projet. |
|
|
Oui (type table) |
Le nom de la table MaxCompute à ajouter en tant que ressource. |
|
|
Oui (table partitionnée) |
La spécification de la partition. Lorsqu'elle est indiquée, seule cette partition est ajoutée en tant que ressource, et non la table entière. |
|
|
Non |
Un nom personnalisé pour la ressource. S'il est omis, le nom du fichier est utilisé. Non pris en charge pour les ressources |
|
|
Non |
Un commentaire descriptif pour la ressource. |
|
|
Non |
Écrase une ressource existante portant le même nom. Si cette option est omise et qu'un conflit de nom existe, l'opération échoue. |
Exemples :
Ajoutez un fichier texte en tant que ressource :
add file banking.txt;
Sortie attendue :
OK: Resource 'banking.txt' have been created.
Ajoutez une partition d'une table en tant que ressource avec un alias :
add table sale_detail partition (ds='20150602') as sale.res comment 'sale detail on 20150602' -f;
Sortie attendue :
OK: Resource 'sale.res' have been updated.
Ajoutez un fichier Python en tant que ressource :
add py python.py;
Sortie attendue :
OK: Resource 'python.py' have been created.
Créer un alias pour une ressource
Créez un alias qui pointe vers une ressource. Utilisez les alias dans le code MapReduce ou UDF pour basculer entre différentes ressources par nom sans modifier le code.
Syntaxe :
alias <alias>=<real>;
Paramètres :
|
Paramètre |
Description |
|
|
L'alias à attribuer. |
|
|
Le nom réel de la ressource. |
Exemple :
L'exemple suivant exécute deux jobs MapReduce qui référencent différentes partitions de date via le même alias resName. La réaffectation de l'alias entre les jobs élimine le besoin de modifier le code.
-- Add resources for two different date partitions.
add table sale_detail partition (ds='20121208') as res_20121208;
add table sale_detail partition (ds='20121209') as res_20121209;
-- Point resName to the first partition and run the job.
alias resName=res_20121208;
jar -resources resName -libjars work.jar -classpath ./work.jar com.company.MainClass args ...;
-- Reassign resName to the second partition and run the job.
alias resName=res_20121209;
jar -resources resName -libjars work.jar -classpath ./work.jar com.company.MainClass args ...;
Consulter les informations sur une ressource
Renvoie les détails d'une ressource spécifiée : nom, propriétaire, type, commentaire, heure de création, heure de la dernière modification, dernier utilisateur ayant effectué la mise à jour, taille du fichier et somme de contrôle MD5.
Les noms de ressources dans MaxCompute ne sont pas sensibles à la casse. resource_A et resource_a font référence à la même ressource.
Plateformes prises en charge : Client MaxCompute (odpscmd), Cloud Shell (odpscmd), DataWorks, MaxCompute Studio
Syntaxe :
desc resource <resource_name>;
Paramètres :
|
Paramètre |
Requis |
Description |
|
|
Oui |
Le nom de la ressource à inspecter. |
Champs de retour :
|
Champ |
Description |
|
|
Nom de la ressource. |
|
|
Compte propriétaire de la ressource. |
|
|
Type de ressource. |
|
|
Commentaire de la ressource. |
|
|
Heure de création de la ressource. |
|
|
Heure de la dernière mise à jour de la ressource. |
|
|
Compte ayant effectué la dernière mise à jour. |
|
|
Taille du fichier de ressource, en Mo. |
|
|
Somme de contrôle MD5 du fichier de ressource. |
Exemple :
-- View details for topn_new.jar.
desc resource topn_new.jar;
Sortie attendue :
Name topn_new.jar
Owner ALIYUN$****@test.aliyunid.com
Type JAR
Comment cloudopenapi
CreatedTime 2020-12-29 13:55:11
LastModifiedTime 2020-12-29 13:55:11
LastUpdator
Size 11438795
Md5sum 8bcf6aabf****56c0
Afficher la liste des ressources
Liste toutes les ressources d'un projet, y compris le nom de chaque ressource, son propriétaire, l'heure de création, l'heure de la dernière modification, le type et la taille.
Syntaxe :
list resources;
Exemple :
list resources;
Sortie attendue :
Resource Name Owner Creation Time Last Modified Time Type Last Updator Resource Size Source comment
getaddr.jar ALIYUN$**** 2020-06-18 15:47:28 2020-06-18 15:47:28 jar 1353716 cloudopenapi
ip.dat ALIYUN$**** 2020-06-18 15:49:46 2020-06-18 15:49:46 file 8525962 cloudopenapi
2 resources
Télécharger des ressources
Téléchargez une ressource d'un projet MaxCompute vers votre machine locale.
Limitations : Seuls les types de ressources FILE, JAR, ARCHIVE et PY sont pris en charge. Les ressources TABLE ne peuvent pas être téléchargées.
Syntaxe :
get resource <resource_name> <path>;
Paramètres :
|
Paramètre |
Requis |
Description |
|
|
Oui |
Le nom de la ressource à télécharger. |
|
|
Oui |
Le chemin d'accès local où la ressource téléchargée est enregistrée. |
Exemple :
get resource getaddr.jar D:\;
Supprimer des ressources
Supprimez une ressource d'un projet MaxCompute. L'opération demande une confirmation avant d'être effective.
Syntaxe :
drop resource <resource_name>;
Paramètres :
|
Paramètre |
Requis |
Description |
|
|
Oui |
Le nom de la ressource à supprimer. |
Exemple :
drop resource getaddr.jar;
Sortie attendue :
Confirm to "drop resource getaddr.jar" (yes/no)? y
OK
Étapes suivantes
Fonctions définies par l'utilisateur (UDF) — référencez des ressources dans les définitions UDF.
MapReduce — utilisez des ressources dans les jobs MapReduce.