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 prennent en charge que JDK 1.8. Après avoir démarré le client MaxCompute, vous pouvez afficher 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 leur comportement 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 lorsque vous utilisez une commande Tunnel pour télé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 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 entraîne des coûts de calcul et de stockage. Pour plus d'informations sur la facturation MaxCompute, consultez la rubrique É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 rubrique Types de données (V2.0).
Procédure
-
Téléchargez le package d'installation odpscmd (GitHub).
RemarqueAccédez à la page de publication via le lien et téléchargez la dernière version du package d'installation 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 odpscmd (OSS). Si vous rencontrez des problèmes 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 signe 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 rubrique 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.
S/O
access_key
Oui
Secret AccessKey correspondant à l'ID AccessKey.
S/O
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 rubrique Endpoints.
Important-
Un 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 des 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 valides :
-
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.
S/O
use_instance_tunnel
Non
Indique s'il faut utiliser InstanceTunnel pour télécharger les résultats d'exécution SQL. Valeurs valides :
-
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 d'acheminement automatique.
Pour obtenir la liste des endpoints tunnel pour différentes régions et types de réseau, consultez la rubrique 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 rubrique 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 démarrer le client MaxCompute. La sortie suivante indique une connexion réussie au projet MaxCompute.odpscmd Aliyun ODPS Command Line Tool Version 0.4xxx @Copyright 2020 Alibaba Cloud Computing Co., Ltd. All rights reserved. Connecting to http://service.xxx.maxcompute.aliyun.com/api, project: xxx Executing predefined SET command: SET odps.sql.hive.compatible=true OK Endpoint: http://service.xxx.maxcompute.aliyun.com/api Project: xxx Schema: default Quota: default in region N/A Timezone: Asia/Shanghai Connected!Fenêtre de ligne de commande
Dans une fenêtre de ligne de commande, accédez au répertoire bin de votre installation du 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
-
Affichez l'aide pour toutes les commandes.
odps@project_name>help; -- The following command is equivalent. odps@project_name>h; -
Affichez 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.
odps@project_name>help table; -- The following output is returned. Usage: alter table <tablename> merge smallfiles Usage: export table <tablename> Usage: show tables [in <project_name>] [like '<prefix>'] list|ls tables [-p,-project <project_name>] Usage: describe|desc [<projectname>.]<tablename> [partition(<spec>)] Usage: read [<project_name>.]<table_name> [(<col_name>[,..])] [PARTITION (<partition_spec>)] [line_num]ImportantLa commande
readutilise la syntaxe SQL et est soumise à la tarification SQL.
Depuis l'interface CLI du système
Dans la fenêtre de ligne de commande de votre système, accédez au répertoire bin de votre installation du client MaxCompute. Ensuite, exécutez la commande suivante pour afficher l'aide pour toutes les commandes. Vous pouvez spécifier une série de paramètres lors du démarrage du client MaxCompute depuis une fenêtre de ligne de commande. Pour plus d'informations sur les paramètres, consultez la section Paramètres.
...\odpscmd\bin>odpscmd -h
Informations sur l'utilisateur actuel
Exécutez la commande suivante pour obtenir des informations sur l'utilisateur actuel.
odps@project_name>whoami;
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.
odps@project_name>quit;
-- The following command is equivalent.
odps@project_name>q;
La commande tunnel download
La première fois que vous exécutez 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 rubrique Téléchargement.
Documents connexes
Après vous être 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 obtenir des détails sur la syntaxe des commandes du client MaxCompute, consultez la rubrique 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 les versions ultérieures prennent 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
Vous avez peut-être 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 empêcher la résolution correcte du chemin. -
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 est 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, choisissez .
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é à la clé AccessKey actuelle 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
Reportez-vous à la documentation 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 de réseau public correct pour la région Chine (Hangzhou) esthttp://service.cn-hangzhou.maxcompute.aliyun.com/api. -
Solution
Reportez-vous à la documentation 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.
Usage: odpscmd [OPTION]...
where options include:
--help (-h)for help
--config=<config_file> specify another config file
--project=<prj_name> use project
--endpoint=<http://host:port> set endpoint
-k <n> will skip begining queries and start from specified position
-r <n> set retry times
-f <"file_path;"> execute command in file
-e <"command;[command;]..."> execute command, include sql command
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 auquel 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 une tâche 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 tâches suivantes. 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 pour 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 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 bug |
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 bug |
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 bug |
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 |
|
|
nouvelle fonctionnalité |
|
|
|
nouvelle fonctionnalité |
|
|
|
amélioration |
|
|
|
nouvelle fonctionnalité |
|
|
|
correction de bug |
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 active les fonctionnalités de lakehouse. |
|
|
correction de bug |
Correction d'un problème où la partie nanoseconde des données TIMESTAMP était traitée incorrectement lors des téléchargements. |