Le client MaxCompute (odpscmd) est une interface en ligne de commande qui vous permet d'exécuter des commandes et de gérer des projets depuis votre machine locale. Cette rubrique explique comment télécharger, installer, configurer et utiliser odpscmd.
Prérequis
Le client MaxCompute nécessite Java 8 ou une version ultérieure.
-
Compatibilité des versions
Le client MaxCompute v0.28.0 et les versions ultérieures prennent en charge JDK 1.9 et les versions suivantes. Les versions antérieures à la v0.28.0 ne sont compatibles qu'avec JDK 1.8. Après avoir démarré le client MaxCompute, vous pouvez consulter la version du client dans l'interface en ligne de commande.
Le format de sortie du client MaxCompute n'est pas rétrocompatible. Les formats de commande et les comportements peuvent différer selon les versions du client. Ne vous fiez pas au format de sortie du client pour l'analyse syntaxique.
Pour les autres versions du client, consultez aliyun-odps-console.
-
Encodage des caractères
Le client utilise UTF-8 par défaut. Si l'encodage des caractères de votre environnement local n'est pas UTF-8, des caractères illisibles peuvent apparaître lorsque vous interrogez des données contenant des caractères chinois à partir d'une table MaxCompute ou que vous utilisez une commande Tunnel pour charger des fichiers locaux en contenant.
Facturation
L'utilisation du client MaxCompute pour se connecter à un projet est gratuite, mais les opérations effectuées via le client sont soumises à la facturation de MaxCompute. Par exemple, la soumission d'une requête SQL consomme des ressources de calcul et l'écriture de données utilise de l'espace de stockage. Cela engendre des coûts de calcul et de stockage. Pour plus d'informations sur la facturation de MaxCompute, consultez la section Éléments facturables et méthodes de facturation.
Installer et configurer odpscmd
odpscmd v0.27.0 et les versions ultérieures prennent en charge les types de données MaxCompute 2.0. Nous vous recommandons d'utiliser ces types de données. Pour obtenir la liste des types de données pris en charge, consultez la section Types de données (V2.0).
Procédure
-
Téléchargez le package d'installation d'odpscmd (GitHub).
RemarqueAccédez à la page de publication via le lien fourni et téléchargez la dernière version du package d'installation d'odpscmd (odpscmd_public.zip).
Si vous ne parvenez pas à télécharger le package depuis le lien GitHub, essayez de télécharger le package d'installation d'odpscmd (OSS). En cas de difficultés d'accès à GitHub, nous vous recommandons de rechercher des solutions en ligne.
Décompressez le package téléchargé. Le répertoire extrait contient les dossiers bin, conf, lib et plugins.
-
Accédez au dossier conf et configurez le fichier odps_config.ini.
Dans le fichier odps_config.ini, le dièse (#) indique un commentaire. Le tableau suivant décrit les paramètres.
Paramètre
Obligatoire
Description
Exemple
project_name
Oui
Nom du projet MaxCompute de destination.
Si vous avez créé un espace de travail en mode standard, faites la distinction entre les noms de projet pour l'environnement de production et l'environnement de développement (_dev) lors de la configuration du paramètre project_name. Pour plus d'informations, consultez la section Différences entre les modes d'espace de travail.
Connectez-vous à la console MaxCompute et sélectionnez une région dans le coin supérieur gauche.
Dans le volet de navigation de gauche, choisissez .
Sur la page Projects, affichez le nom de votre projet MaxCompute.
doc_test_dev
access_id
Oui
ID AccessKey de votre compte Alibaba Cloud ou utilisateur RAM. Obtenez l'ID AccessKey depuis la page AccessKey Management.
N/A
access_key
Oui
Secret AccessKey correspondant à l'ID AccessKey.
N/A
end_point
Oui
Endpoint du service MaxCompute.
Vous devez configurer l'endpoint en fonction de la région où se trouve votre projet MaxCompute et du type de connexion réseau. Pour obtenir la liste des endpoints pour différentes régions et types de réseau, consultez la section Endpoints.
ImportantUn endpoint permet de se connecter au service MaxCompute, tandis qu'un endpoint Tunnel permet de se connecter au service MaxCompute Tunnel. Spécifiez ici l'endpoint du service MaxCompute.
Une configuration incorrecte de l'endpoint entraîne une erreur d'accès.
http://service.cn-hangzhou.maxcompute.aliyun.com/api
log_view_host
Non
URL LogView. Nous vous recommandons de configurer ce paramètre. Si vous ne le configurez pas, vous ne pourrez pas identifier rapidement la cause d'un échec de tâche.
Utilisez cette URL pour afficher les informations détaillées sur l'exécution des tâches et résoudre les erreurs. La valeur fixe est http://logview.odps.aliyun.com.
http://logview.odps.aliyun.com
https_check
Non
Indique s'il faut activer HTTPS pour chiffrer les requêtes d'accès au projet MaxCompute. Valeurs possibles :
True : active HTTPS.
False : utilise HTTP.
La valeur par défaut est False.
True
data_size_confirm
Non
Taille maximale des données d'entrée en Go. Cette valeur n'a pas de limite supérieure. Valeur recommandée : 100.
100
update_url
Non
Ce paramètre est réservé pour une utilisation future.
N/A
use_instance_tunnel
Non
Indique s'il faut utiliser InstanceTunnel pour télécharger les résultats d'exécution SQL. Valeurs possibles :
True : utilise InstanceTunnel pour télécharger les résultats d'exécution SQL.
False : n'utilise pas InstanceTunnel pour télécharger les résultats d'exécution SQL.
La valeur par défaut est False.
True
instance_tunnel_max_record
Non
Nombre maximal d'enregistrements dans un résultat d'exécution SQL. Si use_instance_tunnel est défini sur True, vous devez configurer ce paramètre. La valeur maximale est 10 000.
10000
tunnel_endpoint
Non
Endpoint public du service Tunnel.
Si vous ne configurez pas ce paramètre, Tunnel achemine automatiquement les requêtes vers l'endpoint Tunnel correspondant au réseau du service MaxCompute.
Si vous configurez un endpoint Tunnel, Tunnel utilise cette valeur et n'effectue pas de routage automatique.
Pour obtenir la liste des endpoints Tunnel pour différentes régions et types de réseau, consultez la section Endpoints.
http://dt.cn-hangzhou.maxcompute.aliyun.com
set.<key>
Non
Définit une propriété pour le projet MaxCompute.
Pour plus d'informations sur les propriétés, consultez la liste des propriétés.
set.odps.sql.decimal.odps2=true
Assurez-vous que les informations précédentes sont correctement configurées. Des configurations incorrectes peuvent entraîner des échecs de connexion au projet.
Démarrer le client MaxCompute
Si vous utilisez le client MaxCompute en tant qu'utilisateur RAM, utilisez votre compte Alibaba Cloud pour ajouter l'utilisateur RAM au projet MaxCompute cible. Pour plus d'informations sur l'ajout d'utilisateurs, consultez la section Accorder des autorisations à d'autres utilisateurs.
-
Utilisez l'une des méthodes suivantes pour démarrer le client MaxCompute :
Fichier de script
Dans le répertoire bin de votre installation du client MaxCompute, double-cliquez sur
odpscmd.bat(sous Windows) ouodpscmd(sous macOS) pour lancer le client MaxCompute. La sortie suivante indique une connexion réussie au projet MaxCompute.--Windows command line: ...\odpscmd\bin>odpscmd -e "set odps.sql.select.output.format={""needHeader"":false,""fieldDelim"":"" ""};select * from noheader;" >D:\test.txt --The result is saved to D:\test.txt. --Shell: /Users/.../odpscmd/bin/odpscmd -e "set odps.sql.select.output.format={\"needHeader\":false,\"fieldDelim\":\"\"};select * from noheader;" >/Users/A/temp/test.txt --The result is saved to /Users/A/temp/test.txt. --Output: 1 2 3Fenêtre de ligne de commande
Dans une fenêtre de ligne de commande, accédez au répertoire bin de l'installation de votre client MaxCompute. Exécutez
odpscmdsous Windows oush odpscmdsous Linux ou macOS pour démarrer le client MaxCompute. Un message de succès indique que le client s'est connecté au projet MaxCompute.RemarqueSous Ubuntu,
sh odpscmdrenvoie une erreur. Utilisez plutôt./odpscmd.Lorsque vous démarrez le client MaxCompute depuis une fenêtre de ligne de commande, vous pouvez spécifier des paramètres de démarrage pour exécuter des commandes. Pour plus d'informations, consultez la section Paramètres de démarrage.
Opérations du client MaxCompute
Aide sur les commandes
Vous pouvez obtenir de l'aide sur les commandes du client MaxCompute de l'une des manières suivantes :
Dans le client MaxCompute
-
Consultez l'aide pour toutes les commandes.
--Windows command line: ...\odpscmd\bin>odpscmd -e "set odps.sql.select.output.format={""needHeader"":false,""fieldDelim"":"" ""};select * from noheader;" >D:\test.txt --The result is saved to D:\test.txt. --Shell: /Users/.../odpscmd/bin/odpscmd -e "set odps.sql.select.output.format={\"needHeader\":false,\"fieldDelim\":\"\"};select * from noheader;" >/Users/A/temp/test.txt --The result is saved to /Users/A/temp/test.txt. --Output: 1 2 3 -
Consultez l'aide pour les commandes liées à un mot-clé spécifique.
Par exemple, pour obtenir de l'aide sur les commandes liées aux tables, exécutez la commande suivante.
--Windows command line: ...\odpscmd\bin>odpscmd -e "set odps.sql.select.output.format={""needHeader"":false,""fieldDelim"":"" ""};select * from noheader;" >D:\test.txt --The result is saved to D:\test.txt. --Shell: /Users/.../odpscmd/bin/odpscmd -e "set odps.sql.select.output.format={\"needHeader\":false,\"fieldDelim\":\"\"};select * from noheader;" >/Users/A/temp/test.txt --The result is saved to /Users/A/temp/test.txt. --Output: 1 2 3ImportantLa commande
readutilise la syntaxe SQL et est soumise à la tarification SQL.
Informations sur l'utilisateur actuel
Exécutez la commande suivante pour obtenir des informations sur l'utilisateur actuel.
--Windows command line:
...\odpscmd\bin>odpscmd -e "set odps.sql.select.output.format={""needHeader"":false,""fieldDelim"":"" ""};select * from noheader;" >D:\test.txt
--The result is saved to D:\test.txt.
--Shell:
/Users/.../odpscmd/bin/odpscmd -e "set odps.sql.select.output.format={\"needHeader\":false,\"fieldDelim\":\"\"};select * from noheader;" >/Users/A/temp/test.txt
--The result is saved to /Users/A/temp/test.txt.
--Output:
1
2
3
La sortie contient les champs suivants :
Name : le compte actuel.
Source IP : l'adresse IP de l'appareil exécutant le client MaxCompute.
End_Point : l'endpoint du service MaxCompute.
Project : le nom du projet.
Schema : le schéma dans le projet.
Quitter le client MaxCompute
Exécutez la commande suivante pour quitter le client MaxCompute.
--Windows command line:
...\odpscmd\bin>odpscmd -e "set odps.sql.select.output.format={""needHeader"":false,""fieldDelim"":"" ""};select * from noheader;" >D:\test.txt
--The result is saved to D:\test.txt.
--Shell:
/Users/.../odpscmd/bin/odpscmd -e "set odps.sql.select.output.format={\"needHeader\":false,\"fieldDelim\":\"\"};select * from noheader;" >/Users/A/temp/test.txt
--The result is saved to /Users/A/temp/test.txt.
--Output:
1
2
3
La commande tunnel download
Lors de la première exécution de la commande
tunnel download, le client MaxCompute crée un dossier de session pour les journaux dans le répertoireplugins/dshipde son installation.-
Si plusieurs utilisateurs exécutent la commande
tunnel downloadsur le même appareil, utilisez les méthodes suivantes pour garantir la sécurité des données :Utilisez les paramètres d'autorisation de votre système d'exploitation pour contrôler l'accès au dossier de session.
Ajoutez le paramètre
-sd <new_session_folder_name>ou-session-dir <new_session_folder_name>à la commandetunnel downloadpour télécharger les données dans un autre dossier de session. Pour plus d'informations sur la commandetunnel download, consultez la section Téléchargement.
Documents connexes
Une fois connecté au client MaxCompute, vous pouvez exécuter des commandes SQL dans un projet MaxCompute. Pour plus d'informations, consultez la rubrique Utiliser le client MaxCompute.
Pour plus de détails sur la syntaxe des commandes du client MaxCompute, consultez la section Référence des commandes ou Commandes et fonctions SQL.
FAQ
Après avoir configuré le fichier odps_config.ini et démarré le client MaxCompute, vous pouvez rencontrer les erreurs courantes suivantes :
Erreur : no java found
-
Cause
Java n'est pas installé sur la machine exécutant le client MaxCompute.
-
Solution
Installez Java sur la machine et configurez la variable d'environnement. Le client MaxCompute v0.28.0 et versions ultérieures prend en charge JDK 1.9 ou supérieur. Les versions antérieures ne prennent en charge que JDK 1.8.
Erreur : Could not find or load main class com.aliyun.openservices.odps.console.ODPSConsole
-
Cause
Il se peut que vous ayez téléchargé le package client deux fois, ce qui a entraîné le renommage automatique du répertoire en
odpscmd_public (1). Un nom de répertoire contenant des caractères spéciaux, tels que des espaces, peut entraîner un échec de la résolution du chemin d'accès. -
Solution
Supprimez les espaces et autres caractères spéciaux du nom du répertoire.
Erreur : Accessing project '<projectname>' failed: ODPS-0420111: Project not found - '<projectname>'.
-
Cause
Le nom du projet dans le fichier odps_config.ini peut être incorrect.
-
Solution
Connectez-vous à la console MaxCompute et sélectionnez une région dans le coin supérieur gauche.
Dans le volet de navigation de gauche, accédez à .
Sur la page Projects, recherchez le nom correct de votre projet MaxCompute, puis modifiez le fichier odps_config.ini.
Erreur : Accessing project '<projectname>' failed: ODPS-0420095: Access Denied - Authorization Failed [4002], You don't exist in project <projectname>.
-
Cause
Le compte Alibaba Cloud ou l'utilisateur RAM associé à l'AccessKey actuel n'a pas été ajouté au projet cible, ou le nom du projet est incorrect.
-
Solution
Contactez le propriétaire du projet pour ajouter le compte Alibaba Cloud ou l'utilisateur RAM au projet cible. Pour plus d'informations, consultez les rubriques Ajouter un utilisateur de compte Alibaba Cloud (niveau projet) ou Ajouter un utilisateur RAM (niveau projet).
Erreur : Accessing project '<projectname>' failed: { "Code": "InvalidProjectTable", "Message": "The specified project or table name is not valid or missing."} ou Accessing project '<projectname>' failed: connect timed out
-
Cause
La valeur du paramètre
end_pointest incorrecte. Par exemple, vous essayez de vous connecter depuis votre ordinateur local mais avez configuré un endpoint pour un réseau interne (tel que le réseau classique) ou un endpoint Tunnel. -
Solution
Consultez la documentation sur les Endpoints et sélectionnez l'endpoint correct pour la région et l'environnement réseau de votre projet.
Assurez-vous d'utiliser l'endpoint du service MaxCompute, et non l'endpoint Tunnel, pour le paramètre
end_point. Les endpoints Tunnel sont destinés au service MaxCompute Tunnel.
Erreur : Accessing project '<projectname>' failed: <endpoint>
-
Cause
La valeur du paramètre
end_pointest incorrecte. Par exemple, vous avez peut-être saisihttp://service.ch-hangzhou.maxcompute.aliyun.com/api. L'endpoint public correct pour la région Chine (Hangzhou) esthttp://service.cn-hangzhou.maxcompute.aliyun.com/api. -
Solution
Consultez la documentation sur les Endpoints et copiez l'endpoint correct pour la région et l'environnement réseau de votre projet. Nous vous recommandons de copier l'endpoint plutôt que de le saisir manuellement.
Paramètres de démarrage
Vous pouvez exécuter rapidement des commandes depuis la ligne de commande du système en spécifiant des paramètres de démarrage.
--Windows command line:
...\odpscmd\bin>odpscmd -e "set odps.sql.select.output.format={""needHeader"":false,""fieldDelim"":"" ""};select * from noheader;" >D:\test.txt
--The result is saved to D:\test.txt.
--Shell:
/Users/.../odpscmd/bin/odpscmd -e "set odps.sql.select.output.format={\"needHeader\":false,\"fieldDelim\":\"\"};select * from noheader;" >/Users/A/temp/test.txt
--The result is saved to /Users/A/temp/test.txt.
--Output:
1
2
3
Le tableau suivant décrit les paramètres de démarrage.
Paramètre | Description | Exemple |
| Affiche les informations d'aide pour toutes les commandes du client MaxCompute. |
|
| Spécifie le chemin d'accès au fichier odps_config.ini. Le chemin par défaut est |
|
| Spécifie le nom du projet MaxCompute à accéder. |
|
| Spécifie l'endpoint pour la connexion au service MaxCompute. Pour plus d'informations, consultez la rubrique Endpoints. |
|
| Ignore les n-1 premières instructions et commence l'exécution à partir de la nième instruction. Si | Ignore les deux premières instructions et commence l'exécution à partir de la troisième instruction. |
| Définit le nombre de tentatives pour un job ayant échoué. |
|
| Spécifie un fichier contenant les commandes à exécuter. |
|
| Spécifie une commande à exécuter. |
|
Sur le shell ou la ligne de commande Windows, utilisez odpscmd -e <SQL_statement> pour capturer les valeurs de retour dynamiques dans une variable shell pour les jobs suivants. Dans ce scénario, la valeur de retour ne doit pas contenir d'informations supplémentaires, telles que des détails d'exécution ou un en-tête. Pour faciliter la création de scripts shell, définissez le paramètre use_instance_tunnel dans le fichier odps_config.ini sur false afin de désactiver Instance Tunnel. Ensuite, exécutez la commande set odps.sql.select.output.format={"needHeader":false,"fieldDelim":" "}; pour supprimer l'en-tête.
Par exemple, considérons une table nommée noheader avec une colonne et trois lignes de données : 1, 2 et 3. Exécutez la commande suivante pour rediriger la sortie standard vers un fichier. La sortie contient uniquement les données et aucune information supplémentaire :
--Windows command line:
...\odpscmd\bin>odpscmd -e "set odps.sql.select.output.format={""needHeader"":false,""fieldDelim"":"" ""};select * from noheader;" >D:\test.txt
--The result is saved to D:\test.txt.
--Shell:
/Users/.../odpscmd/bin/odpscmd -e "set odps.sql.select.output.format={\"needHeader\":false,\"fieldDelim\":\"\"};select * from noheader;" >/Users/A/temp/test.txt
--The result is saved to /Users/A/temp/test.txt.
--Output:
1
2
3
Historique des versions
Le tableau suivant décrit les mises à jour récentes d'odpscmd. Pour plus de détails, cliquez sur le lien correspondant à une version spécifique.
Pour obtenir la liste complète des versions d'odpscmd et des notes de publication, consultez la page GitHub.
Version | Type | Description |
nouvelle fonctionnalité | Ajout de la prise en charge de l'utilisation d'un jeton STS comme identifiants de sécurité temporaires. | |
correction de bogue | Mise à jour de la bibliothèque Apache Arrow pour résoudre les problèmes de compatibilité des dépendances. | |
nouvelle fonctionnalité | Ajout du paramètre | |
amélioration |
| |
correction de bogue | Mise à niveau des dépendances pour résoudre les vulnérabilités CVE. | |
nouvelle fonctionnalité | Ajout d'une option d'accélération pour le téléchargement d'un volume externe. | |
amélioration | Refonte des commandes | |
nouvelle fonctionnalité |
| |
amélioration |
| |
nouvelle fonctionnalité |
| |
nouvelle fonctionnalité |
| |
correction de bogue | Amélioration du mode MCQA pour détecter plus précisément le comportement de repli et éviter l'affichage en double de logview. | |
nouvelle fonctionnalité |
| |
amélioration |
| |
nouvelle fonctionnalité | Ajout de la prise en charge du type de données JSON dans les opérations Tunnel. | |
nouvelle fonctionnalité |
| |
amélioration | Extension de la commande | |
nouvelle fonctionnalité |
| |
nouvelle fonctionnalité |
| |
amélioration |
| |
nouvelle fonctionnalité |
| |
correction de bogue | Suppression de la dépendance Log4j. | |
nouvelle fonctionnalité | Ajout de la prise en charge de l'organisation des données basée sur le schéma au sein d'un projet. Pour plus d'informations, consultez la rubrique Opérations de schéma. | |
nouvelle fonctionnalité | Ajout de la prise en charge du téléchargement et du transfert de types de données complexes via Tunnel. | |
amélioration |
| |
nouvelle fonctionnalité | Ajout de la prise en charge de la création d'un projet externe pour se connecter à Data Lake Formation (DLF), ce qui permet d'activer les fonctionnalités de lakehouse. | |
correction de bogue | Correction d'un problème où la partie nanoseconde des données TIMESTAMP était gérée incorrectement lors des téléchargements. |