MaxCompute CLI (maxc) est un outil en ligne de commande invoqué via Alibaba Cloud CLI sous la forme aliyun maxc. Toutes les commandes génèrent une sortie JSON structurée, adaptée à l'automatisation par script et à l'intégration d'agents IA.
Installation et vérification
maxc est distribué via Alibaba Cloud CLI. Pour utiliser maxc, vous devez installer ou mettre à jour Alibaba Cloud CLI.
-
Systèmes d'exploitation pris en charge
Système d'exploitation
Versions prises en charge
Architectures prises en charge
Linux
CentOS 8+, RHEL 8+, Ubuntu 16.04+, Debian 9+ et autres distributions majeures. CentOS 7 a atteint sa fin de vie (EOL) et n'est pas recommandé.
x86_64 (64 bits), ARM64
macOS
macOS 11 (Big Sur) ou version ultérieure
Intel et puces Apple (binaire universel)
Windows
Windows 10 et versions ultérieures (64 bits)
x86_64 uniquement. Les architectures 32 bits et ARM64 ne sont pas prises en charge.
-
Sélectionnez l'onglet correspondant à votre système d'exploitation et suivez les étapes d'installation. Plusieurs méthodes sont disponibles : choisissez celle qui vous convient.
Linux
Installer à l'aide d'un script Bash (recommandé)
Les options suivantes sont prises en charge :
-
Installer la dernière version
Si vous ne spécifiez pas de version, le script installe automatiquement la dernière version disponible.
/bin/bash -c "$(curl -fsSL https://aliyuncli.alicdn.com/install.sh)" -
Installer une version antérieure
Utilisez l'option
-Vpour spécifier la version à installer. Pour consulter les versions antérieures disponibles, accédez à la page GitHub Releases./bin/bash -c "$(curl -fsSL https://aliyuncli.alicdn.com/install.sh)" -- -V 3.3.18
Installer à partir d'un package TGZ (.tar.gz)
-
Téléchargez le package d'installation.
-
Télécharger la dernière version :
RemarqueExécutez
uname -mpour vérifier l'architecture de votre système Linux. Si la sortie du terminal estarm64ouaarch64, votre système utilise une architecture ARM64. Toute autre sortie indique une architecture AMD64.-
Pour les systèmes AMD64 :
curl https://aliyuncli.alicdn.com/aliyun-cli-linux-latest-amd64.tgz -o aliyun-cli-linux-latest.tgz -
Pour les systèmes ARM64 :
curl https://aliyuncli.alicdn.com/aliyun-cli-linux-latest-arm64.tgz -o aliyun-cli-linux-latest.tgz
-
-
Télécharger une version antérieure : accédez à la page GitHub Releases pour télécharger les packages d'installation des versions précédentes.
Le format de nom de fichier pour les packages d'installation Linux est
aliyun-cli-linux-<version>-<architecture>.tgz. Remplacez<version>par le numéro de version cible, par exemple 3.3.18, et<architecture>paramd64ouarm64.
-
-
Décompressez le package d'installation pour obtenir le fichier exécutable
aliyun.tar xzvf aliyun-cli-linux-latest.tgz -
Déplacez le fichier exécutable vers le répertoire
/usr/local/bin. Cela vous permet d'exécuter la commandealiyundepuis n'importe quel chemin d'accès.sudo mv ./aliyun /usr/local/bin/
macOS
Installer avec Homebrew (recommandé)
RemarqueAvant de continuer, assurez-vous d'avoir installé et configuré Homebrew.
Installez la dernière version d'Alibaba Cloud CLI :
brew install aliyun-cliInstaller via l'interface graphique (PKG)
Double-cliquez sur le package pour lancer l'installation ; aucun outil en ligne de commande n'est requis.
-
Téléchargez le package d'installation.
Télécharger la dernière version : ouvrez le lien de téléchargement https://aliyuncli.alicdn.com/aliyun-cli-latest.pkg dans votre navigateur pour télécharger le dernier package d'installation.
-
Télécharger une version antérieure : accédez à la page GitHub Releases pour afficher et télécharger les packages d'installation des versions précédentes.
Le format de nom de fichier pour les packages d'installation macOS PKG (macOS Installer Package, .pkg) est
aliyun-cli-<version>.pkg.
Double-cliquez sur le package d'installation téléchargé et suivez les instructions pour terminer l'installation.
Installer à l'aide d'un script Bash
Les commandes d'installation sont identiques à celles utilisées pour Linux. Pour plus d'informations sur les paramètres, consultez la section « Installer à l'aide d'un script Bash » pour Linux.
-
Installer la dernière version
/bin/bash -c "$(curl -fsSL https://aliyuncli.alicdn.com/install.sh)" -
Installer des versions antérieures
/bin/bash -c "$(curl -fsSL https://aliyuncli.alicdn.com/install.sh)" -- -V 3.3.5
Installer à partir d'un package TGZ (.tar.gz)
-
Téléchargez le package d'installation.
-
Télécharger la dernière version :
curl https://aliyuncli.alicdn.com/aliyun-cli-macosx-latest-universal.tgz -o aliyun-cli-macosx-latest-universal.tgz -
Télécharger une version antérieure : accédez à la page GitHub Releases pour télécharger les packages d'installation des versions précédentes.
Le format de nom de fichier pour les packages d'installation macOS est
aliyun-cli-macosx-<version>-universal.tgz.
-
-
Décompressez le package d'installation pour obtenir le fichier exécutable
aliyun.tar xzvf aliyun-cli-macosx-latest-universal.tgz -
Déplacez le fichier exécutable vers le répertoire
/usr/local/bin. Cela vous permet d'exécuter la commandealiyundepuis n'importe quel chemin d'accès.sudo mv ./aliyun /usr/local/bin/
Windows
ImportantAlibaba Cloud CLI est disponible uniquement pour les systèmes Windows AMD64. Il ne prend pas en charge les architectures 32 bits ni ARM64.
Installer via l'interface utilisateur graphique (GUI)
Télécharger et décompresser le package d'installation
-
Téléchargez le package d'installation.
Télécharger la dernière version : ouvrez le lien de téléchargement https://aliyuncli.alicdn.com/aliyun-cli-windows-latest-amd64.zip dans votre navigateur pour télécharger le dernier package d'installation.
-
Télécharger une version antérieure : accédez à la page GitHub Releases pour télécharger les packages d'installation des versions précédentes.
Le format de nom de fichier pour les packages d'installation Windows est
aliyun-cli-windows-<version>-amd64.zip.
-
Extrayez
aliyun.exedu package d'installation vers un répertoire tel queC:\AliyunCLI.RemarqueCe fichier doit être exécuté depuis un terminal en ligne de commande. Un double-clic sur le fichier ne fonctionnera pas.
Mémorisez ce chemin d'installation. Vous en aurez besoin lors de la configuration de la variable d'environnement PATH.
Configurer la variable d'environnement PATH
Appuyez sur les touches
Windows+Spour ouvrir l'interface de recherche, puis saisissez le mot-clé « variables d'environnement ».Dans les résultats de recherche, cliquez sur Edit the environment variables for your account pour ouvrir les paramètres Environment Variables.
Dans la section User variables.
Dans la fenêtre d'édition, cliquez sur Edit et saisissez le chemin du répertoire d'installation d'Alibaba Cloud CLI. Par exemple,
C:\ExampleDir. Remplacez cette valeur par le chemin réel de votre répertoire d'installation.Cliquez sur New dans toutes les boîtes de dialogue ouvertes pour enregistrer les modifications.
Redémarrez votre session de terminal pour que les modifications prennent effet.
Installer à l'aide d'un script PowerShell
Créez un nouveau fichier de script nommé
Install-CLI-Windows.ps1. Vous pouvez exécuterNew-Item Install-CLI-Windows.ps1dans PowerShell pour créer le fichier, ou créer un nouveau document texte dans l'Explorateur de fichiers et le renommer.-
Copiez le code suivant et enregistrez-le dans le fichier de script.
-
Exécutez le fichier de script pour installer Alibaba Cloud CLI comme indiqué dans les exemples suivants.
RemarqueLe chemin d'exemple du script est
C:\Example\Install-CLI-Windows.ps1. Avant d'exécuter la commande, remplacez le chemin du script par l'emplacement réel.-
Si vous ne spécifiez pas de version, le script installe automatiquement la dernière version. Le chemin d'installation par défaut est
C:\Users\<USERNAME>\AppData\Local\AliyunCLI.powershell.exe -ExecutionPolicy Bypass -File C:\Example\Install-CLI-Windows.ps1 -
Utilisez les options
-Versionet-InstallDirpour spécifier la version d'installation et le répertoire. Pour consulter les versions antérieures disponibles, accédez à la page GitHub Releases.powershell.exe -ExecutionPolicy Bypass -File C:\Example\Install-CLI-Windows.ps1 -Version 3.3.15 -InstallDir "C:\ExampleDir\AliyunCLI"
-
-
-
Vérifier l'installation
Exécutez la commande suivante pour vérifier l'installation.
aliyun maxc --versionSi le numéro de version s'affiche, l'installation a réussi. En cas d'erreur, vérifiez la version de la CLI. Pour plus d'informations, consultez Installer ou mettre à jour Alibaba Cloud CLI.
Authentification
aliyun maxc réutilise le système d'identification d'Alibaba Cloud CLI. Toutes les méthodes d'authentification configurées avec aliyun configure (à l'exception d'OAuth) fonctionnent directement : maxc hérite des identifiants du profil actuel.
# Configure authentication using the Alibaba Cloud CLI (if you have not already done so)
aliyun configure --mode AK
# Verify that maxc can access MaxCompute
aliyun maxc auth whoami --json
Pour plus d'informations sur les méthodes d'authentification, consultez Configurer et gérer les identifiants d'identité.
Configurer un projet MaxCompute
Lors de la première utilisation de maxc, vous devez spécifier le projet MaxCompute et l'endpoint :
aliyun maxc auth login \
--endpoint http://service.cn-hangzhou.maxcompute.aliyun.com/api
Si vous omettez --project, un sélecteur de projet interactif s'affiche. Pour les scénarios d'intégration continue (CI), vous devez spécifier explicitement le projet :
aliyun maxc auth login \
--project my_project_dev \
--endpoint http://service.cn-hangzhou.maxcompute.aliyun.com/api \
--no-picker
La configuration du projet MaxCompute est enregistrée dans ~/.maxc/config.yaml.
Consultation et vérification
# View the current identity and project
aliyun maxc auth whoami --json
# Check permissions for a specific table
aliyun maxc auth can-i --table my_table --operation SELECT --json
Démarrage rapide
# 1. Configure the project (authentication is already completed with aliyun configure)
aliyun maxc auth login \
--endpoint http://service.cn-hangzhou.maxcompute.aliyun.com/api
# 2. Browse tables
aliyun maxc meta list-tables --json
aliyun maxc meta describe my_table --json
# 3. Run a query
aliyun maxc query "SELECT * FROM my_table LIMIT 10" --json
# 4. Estimate the cost
aliyun maxc query cost "SELECT * FROM my_table" --json
# 5. Sample data
aliyun maxc data sample my_table --rows 5 --json
Options globales
Les options suivantes peuvent être placées n'importe où dans la ligne de commande et s'appliquent à toutes les commandes :
|
Option |
Description |
|
--json |
Affiche la sortie au format JSON Envelope (équivalent à --format json) |
|
--format |
Format de sortie : json, table, csv, ndjson, markdown ou brief |
|
--config |
Spécifie le chemin du fichier de configuration |
|
--project |
Projet MaxCompute cible (remplace temporairement les paramètres de session) |
|
--schema |
Schema cible (remplace temporairement les paramètres de session) |
Utilisez --project et --schema pour accéder temporairement à d'autres projets ou schemas sans modifier la configuration de session. Les noms de table prennent également en charge le format schema.table.
Référence des commandes
Requête SQL (Query)
-
Modes de requête
Trois modes sont disponibles, sélectionnés par le premier mot-clé :
aliyun maxc query <sql> # Run a query (default) aliyun maxc query cost <sql> # Estimate the cost aliyun maxc query explain <sql> # View the execution planLe mode par défaut est en lecture seule : les instructions DDL et DML sont bloquées côté client. Utilisez --force pour contourner cette restriction.
aliyun maxc query "SELECT * FROM my_table LIMIT 10" --json -
Description des paramètres
Paramètre
Description
Valeur par défaut
<sql>
Texte SQL
—
--file
Lit le code SQL depuis un fichier
—
--stdin
Lit le code SQL depuis l'entrée standard
—
--max-rows
Nombre maximal de lignes à renvoyer
100
--page-size
Taille de la page
—
--cursor
Curseur de pagination (valeur de retour du dernier appel)
—
--wait
Délai d'attente en secondes pour la synchronisation. En cas de dépassement du délai, le job_id est renvoyé.
10
--dry-run
Affiche uniquement le plan de requête sans l'exécuter
—
--cost-check
Interrompt la requête si le coût estimé dépasse le seuil (en CUs)
—
--output
Écrit le résultat dans un fichier
—
--output-format
Format du fichier de sortie : table, json, csv ou ndjson
—
--idempotency-key
Clé de déduplication, utilisée pour les nouvelles tentatives idempotentes
—
--retry-on
Liste séparée par des virgules des codes d'erreur pouvant faire l'objet d'une nouvelle tentative
—
--max-retries
Nombre maximal de nouvelles tentatives
0
--retry-backoff
Politique de temporisation : fixed ou exponential
fixed
--force
Contourne le mode lecture seule et autorise les instructions DDL/DML
—
-
Comportement de --wait
--wait 10 (par défaut) : Interroge de manière synchrone pendant 10 secondes. Si la tâche est terminée, le résultat est renvoyé. En cas de dépassement du délai, le job_id est renvoyé.
--wait 0 : Soumet la tâche et renvoie immédiatement le job_id.
--wait 300 : Attend un maximum de 5 minutes.
Après un dépassement de délai, vous pouvez utiliser job wait <job_id> pour continuer à attendre.
-
Exemples
# Run from a file aliyun maxc query --file my_query.sql --json # Cost protection: Automatically aborts if the estimated cost exceeds 100 CUs aliyun maxc query "SELECT * FROM orders" --cost-check 100 --json # Paging aliyun maxc query "SELECT * FROM orders" --page-size 50 --json aliyun maxc query "SELECT * FROM orders" --page-size 50 --cursor <next_cursor> --json # Write the result to a CSV file aliyun maxc query "SELECT * FROM orders LIMIT 1000" --output result.csv --output-format csv --json # Idempotent retry aliyun maxc query "INSERT INTO target SELECT * FROM source WHERE ds='20260601'" \ --force --idempotency-key "daily-etl-20260601" \ --retry-on "QUOTA_EXCEEDED" --max-retries 3 --retry-backoff exponential --json
Gestion des tâches (Job)
Gère le cycle de vie des tâches SQL asynchrones.
job submit
Soumet une tâche SQL et renvoie immédiatement le job_id.
aliyun maxc job submit "SELECT * FROM large_table" --json
|
Paramètre |
Description |
Valeur par défaut |
|
<sql> |
Texte SQL |
— |
|
--file |
Lit le code SQL depuis un fichier |
— |
|
--stdin |
Lit le code SQL depuis l'entrée standard |
— |
|
--max-rows |
Nombre maximal de lignes à renvoyer |
100 |
|
--cost-check |
Seuil de coût (en CUs) |
— |
|
--idempotency-key |
Clé de déduplication |
— |
|
--force |
Autorise les instructions DDL/DML |
— |
job status / wait / result / cancel / diagnose
aliyun maxc job status <job_id> --json # Query the status
aliyun maxc job wait <job_id> --json # Wait for completion and return the result
aliyun maxc job result <job_id> --json # Get the result of a completed job
aliyun maxc job cancel <job_id> --json # Cancel a running job
aliyun maxc job diagnose <job_id> --json # Diagnose the cause of a failure
-
Paramètres supplémentaires pour job wait
Paramètre
Description
Valeur par défaut
--timeout
Délai d'expiration en secondes
300
--stream
Diffuse la progression de la sortie au format NDJSON
—
-
Paramètres supplémentaires pour job result
Paramètre
Description
Valeur par défaut
--max-rows
Nombre maximal de lignes à renvoyer
100
--cursor
Curseur de pagination
—
job list
aliyun maxc job list --json # Lists recent jobs (20 by default)
aliyun maxc job list --limit 50 --json # Specify the number of jobs
Flux complet pour une requête asynchrone
# 1. Submit
JOB_ID=$(aliyun maxc query "SELECT * FROM large_table" --wait 0 --json \
| jq -r '.metadata.job_id')
# 2. Wait
aliyun maxc job wait "$JOB_ID" --timeout 600 --json
# 3. Get the result (supports paging)
aliyun maxc job result "$JOB_ID" --max-rows 1000 --json
Navigation dans les métadonnées (Meta)
Opérations sur les tables
# List tables
aliyun maxc meta list-tables --json
# View the table schema (--full displays the complete column list; summary mode is the default)
aliyun maxc meta describe my_table --json
aliyun maxc meta describe my_table --full --json
# Search for tables
aliyun maxc meta search "order" --json
# Search for columns
aliyun maxc meta search-columns "user_id" --json
list-tables et search prennent en charge la pagination avec --limit et --cursor. Par défaut, search renvoie 20 éléments.
Opérations sur les partitions
# List partitions (up to 100 by default)
aliyun maxc meta partitions my_table --json
aliyun maxc meta partitions my_table --limit 500 --json
# View the latest partition
aliyun maxc meta latest-partition my_table --json
# View data freshness
aliyun maxc meta freshness my_table --json
Projets et schemas
# List accessible projects
aliyun maxc meta list-projects --json
# List schemas in a project
aliyun maxc meta list-schemas --json
Métadonnées sémantiques
Fournit des informations sémantiques métier sur les tables pour les AI Agents. Pour plus d'informations, consultez Intégration des AI Agents.
# Set semantic information
aliyun maxc meta semantic set my_table \
--desc "Order details table" \
--use-cases "Analyze daily order volume" "Calculate user repurchase rate" \
--json
# Get semantic information
aliyun maxc meta semantic get my_table --json
# List tables that are missing semantic information
aliyun maxc meta semantic list-missing --json
semantic set prend également en charge --sample-questions, --column-semantics (JSON), --relations (JSON) et --stats (JSON).
Opérations sur les données (Data)
Échantillonnage des données
Prélève un échantillon de données d'une table. Pour les tables partitionnées, la dernière partition est sélectionnée par défaut. Les vues ne sont pas prises en charge.
aliyun maxc data sample my_table --json
aliyun maxc data sample my_table --rows 20 --partition "ds=20260601" --columns "user_id,amount" --json
|
Paramètre |
Description |
Valeur par défaut |
|
<table_name> |
Nom de la table |
— |
|
--rows |
Nombre de lignes à échantillonner |
5 |
|
--partition |
Spécification de la partition |
Dernière sélectionnée automatiquement |
|
--columns |
Colonnes à inclure (séparées par des virgules) |
Toutes |
Profil des données
Analyse les statistiques des colonnes, telles que les pourcentages de valeurs nulles, le nombre de valeurs uniques et les valeurs minimales/maximales. Les résultats sont heuristiques, basés sur un échantillon de 20 lignes.
aliyun maxc data profile my_table --json
aliyun maxc data profile my_table --partition "ds=20260601" --json
aliyun maxc data profile <table_name> --json
Chargement des données
Charge un fichier CSV ou TSV local vers une table. Pour les tables partitionnées, --partition est obligatoire. Les vues et les types complexes (array, map, struct) ne sont pas pris en charge.
aliyun maxc data upload my_table --file data.csv --json
aliyun maxc data upload my_table --file data.csv --partition "ds=20260601" --overwrite --json
|
Paramètre |
Description |
Valeur par défaut |
|
<table_name> |
Nom de la table de destination |
— |
|
--file |
Chemin du fichier local (obligatoire) |
— |
|
--partition |
Spécification de la partition (obligatoire pour les tables partitionnées) |
— |
|
--overwrite |
Utilise la sémantique INSERT OVERWRITE |
— |
|
--delimiter |
Séparateur de champs |
, |
|
--no-header |
Indique que la première ligne contient des données et non un en-tête |
— |
|
--null-marker |
Marqueur NULL |
\N |
|
--block-size |
Nombre de lignes à charger par lot |
10000 |
Téléchargement des données
Télécharge les données d'une table vers un fichier CSV ou TSV local. Pour les tables partitionnées, --partition est obligatoire. Les vues ne sont pas prises en charge.
aliyun maxc data download my_table --output data.csv --json
aliyun maxc data download my_table --output data.csv --partition "ds=20260601" --limit 100000 --json
|
Paramètre |
Description |
Valeur par défaut |
|
<table_name> |
Nom de la table source |
— |
|
--output |
Chemin du fichier de sortie (obligatoire) |
— |
|
--partition |
Spécification de la partition (obligatoire pour les tables partitionnées) |
— |
|
--columns |
Colonnes à inclure (séparées par des virgules) |
Toutes |
|
--limit |
Nombre maximal de lignes à télécharger |
Illimité |
|
--delimiter |
Séparateur de champs |
, |
|
--no-header |
N'écrit pas de ligne d'en-tête |
— |
|
--null-marker |
Marqueur de sortie NULL |
Chaîne vide |
Gestion de session (Session)
Gère le projet et le schema par défaut pour la session actuelle. Il s'agit d'opérations locales qui ne nécessitent pas de connexion au backend.
# Set the default project (specify at least --project or --schema)
aliyun maxc session set --project my_project_dev --json
# Set the default schema
aliyun maxc session set --schema my_schema --json
# View the current session
aliyun maxc session show --json
# Clear session settings
aliyun maxc session unset --json
Pour changer temporairement de projet sans modifier la configuration de session, utilisez le paramètre global --project :
aliyun maxc meta list-tables --project other_project --json
aliyun maxc query "SELECT * FROM t LIMIT 5" --project other_project --json
Format de sortie
Enveloppe JSON
L'ajout de l'option --json à n'importe quelle commande génère une enveloppe JSON unifiée (v2.0) :
{
"version": "2.0",
"command": "query",
"status": "success",
"data": { ... },
"metadata": { ... },
"error": null,
"agent_hints": null
}
|
Champ |
Type |
Description |
|
version |
string |
Valeur fixe « 2,0 » |
|
command |
string |
La commande exécutée, par exemple « query » ou « meta describe » |
|
status |
string |
« success » ou « failure » |
|
data |
object |
Les données métier renvoyées par la commande |
|
metadata |
object |
Métadonnées d'exécution (nom du projet, temps consommé, job_id, etc.) |
|
error |
object/null |
Détails de l'erreur en cas d'échec de la commande |
|
agent_hints |
object/null |
Actions suivantes recommandées pour l'Agent IA |
Champ data
La structure du champ data varie selon la commande utilisée :
|
Commande |
Clés de premier niveau dans data |
|
query / job wait / job result |
result (contient rows, schema, row_count, returned_rows), pagination |
|
query cost / query explain |
analysis |
|
meta list-tables |
tables, pagination |
|
meta describe |
table |
|
meta search / meta search-columns |
search (contient keyword, matches), pagination |
|
meta partitions |
table, partitions |
|
meta latest-partition |
partition |
|
meta freshness |
freshness |
|
data sample |
sample |
|
data profile |
profile |
|
job list |
jobs, pagination |
|
job status / job cancel |
job |
|
job diagnose |
diagnosis |
|
auth whoami |
identity |
|
auth login |
identity, persistence |
|
auth can-i |
authorization |
Champ error
En cas d'échec d'une commande, le champ error contient les champs suivants :
{
"code": "TABLE_NOT_FOUND",
"message": "Table 'orders' does not exist in project 'my_project'",
"suggestion": "Use 'aliyun maxc meta search orders --json' to find similar tables",
"recoverable": false
}
|
Champ |
Description |
|
|
Code d'erreur (voir le tableau ci-dessous) |
|
|
Description de l'erreur |
|
|
Correction recommandée (facultative) |
|
|
Indique si l'opération peut être retentée |
|
|
ID de l'instance ODPS (uniquement pour les erreurs de requête, facultatif) |
|
|
Lien LogView (uniquement pour les erreurs de requête, facultatif) |
|
|
Contexte structuré (facultatif) |
Codes d'erreur
|
Code d'erreur |
Description |
Réessayable |
|
|
Échec de l'exécution |
Oui |
|
|
Autorisation refusée |
Non |
|
|
Quota dépassé |
Oui |
|
|
Erreur de syntaxe ou d'exécution SQL |
Non |
|
|
Limite de coût dépassée |
Non |
|
|
Ressource introuvable |
Non |
|
|
Table introuvable |
Non |
|
|
Schema introuvable |
Non |
|
|
Colonne introuvable |
Non |
|
|
Échec de la validation des entrées |
Non |
|
|
Impossible de se connecter au backend |
Oui |
|
|
Délai d'attente du sondage de job dépassé |
Oui |
|
|
Opération d'écriture bloquée par le mode lecture seule |
Non |
|
|
L'opération d'écriture nécessite l'option |
Oui |
|
|
Échec de l'analyse CSV |
Non |
|
|
Erreur interne |
Non |
Autres formats
|
Format |
Description |
|
|
Tableau lisible (par défaut) |
|
|
Format Markdown |
|
|
Résumé sur une seule ligne |
|
|
CSV (lignes de données uniquement) |
|
|
JSON délimité par des sauts de ligne, avec un enregistrement par ligne |
Intégration avec les Agents IA
maxc est conçu spécifiquement pour s'intégrer aux Agents IA. Les sections suivantes détaillent sa conception fondamentale et ses modèles d'utilisation.
Protocole JSON unifié
La sortie --json de chaque commande suit un protocole d'enveloppe fixe. Les Agents analysent les champs structurés pour obtenir un retour fiable et prévisible.
status : Indique le succès ou l'échec.
data : Les données métier. La structure est fixe selon le type de commande.
error.code + error.suggestion : Le code d'erreur et une suggestion exécutable pour corriger le problème.
agent_hints.next_actions : La commande suivante recommandée par la CLI. Il s'agit d'une ligne de commande complète et exécutable.
agent_hints.warnings : Risques à prendre en compte, tels que des coûts élevés ou la sélection automatique de partitions.
Auto-réparation des erreurs
Chaque réponse d'erreur inclut un champ suggestion et agent_hints.next_actions qui indiquent à l'Agent quelle commande exécuter ensuite :
|
Scénario d'erreur |
Conseils reçus par l'Agent |
|
Table introuvable |
Suggère d'exécuter |
|
Colonne introuvable |
Suggère d'exécuter |
|
Autorisations insuffisantes |
Suggère de basculer vers le projet |
|
Erreur de syntaxe SQL |
Suggère d'exécuter |
|
Quota dépassé |
Suggère d'exécuter |
|
Délai d'attente du job dépassé |
Suggère d'exécuter |
L'Agent lit error.suggestion et réexécute la commande suggérée pour récupérer automatiquement, sans nécessiter de gestion d'erreurs codée en dur.
Sécurité en lecture seule
maxc bloque toutes les instructions DDL et DML (CREATE, DROP, INSERT, UPDATE, DELETE) côté client, empêchant ainsi les modifications accidentelles des données. Cette vérification locale s'exécute avant que le SQL ne soit soumis au serveur, avec une latence nulle et aucun coût.
Les opérations d'écriture exigent que l'utilisateur transmette explicitement l'option --force ; l'Agent ne doit jamais l'ajouter de lui-même. Les chargements de données via data upload utilisent un canal API Tunnel distinct et ne sont pas soumis à cette restriction.
Conscience des coûts
Avant qu'un Agent n'exécute une requête, il peut estimer le coût à l'aide de query cost ou définir une limite de coût avec --cost-check :
# Estimate the cost
aliyun maxc query cost "SELECT * FROM large_table" --json
# Set a cost threshold
aliyun maxc query "SELECT * FROM large_table" --cost-check 100 --json
L'interrogation d'une table partitionnée sans filtre de partition peut déclencher une analyse complète de la table, entraînant des coûts élevés. L'Agent doit déterminer la plage de partitions avec meta partitions ou meta latest-partition avant d'exécuter la requête.
Architecture de connaissances en couches SKILL
SKILL est un ensemble de documents d'orientation structurés installés sur la plateforme de l'Agent, qui enseignent à ce dernier comment utiliser maxc pour les tâches de données MaxCompute.
# One-click installation to Claude Code
aliyun maxc agent skill install --json
# Install on other platforms
aliyun maxc agent skill install cursor --json
aliyun maxc agent skill install windsurf --json
SKILL utilise un chargement en couches pour optimiser l'efficacité de la fenêtre de contexte des LLM :
|
Couche |
Contenu |
Moment du chargement |
|
Fichier principal SKILL.md |
Tableau de correspondance intention-commande, principes fondamentaux, flux de travail, tableaux de décision |
Chargé automatiquement lorsqu'une tâche est déclenchée |
|
Documents de référence |
Guide du dialecte SQL, modèles de requêtes, stratégies de partitionnement, manuel de récupération d'erreurs, etc. |
Chargé à la demande (uniquement lorsque l'Agent en a besoin) |
Les requêtes de métadonnées simples ne nécessitent que le fichier principal de 270 lignes. La génération complexe de SQL ou la récupération d'erreurs déclenche le chargement à la demande des documents de référence.
Plateformes d'Agents prises en charge :
|
Plateforme |
Chemin d'installation |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Autres Agents |
Spécifiez --dir pour installer dans n'importe quel répertoire |
Gestion de SKILL
# View the installation status on all platforms
aliyun maxc agent skill list --json
# Update installed SKILLs (after a new version is released)
aliyun maxc agent skill update --all --json
# View the differences between the installed version and the latest version
aliyun maxc agent skill diff claude-code --json
# Uninstall
aliyun maxc agent skill uninstall cursor --json
Flux de travail NL2SQL
SKILL guide l'Agent pour convertir les questions en langage naturel en requêtes SQL selon le flux suivant :
User question
↓
1. meta search / meta list-tables → Find relevant tables
↓
2. meta describe → Understand table schema and column meanings
↓
3. data sample → View actual data to confirm column value formats
↓
4. meta partitions / latest-partition → Determine the partition range
↓
5. query cost → Estimate the cost
↓
6. query → Run the query and return the result
Les documents de référence SKILL incluent un guide du dialecte MaxCompute SQL de plus de 700 lignes, couvrant les différences de fonctions, les pièges liés aux types, les modèles de requêtes et les corrections d'erreurs courantes.
Métadonnées sémantiques
La commande meta semantic attache une sémantique métier à une table : descriptions, cas d'utilisation, exemples de questions et sémantique des colonnes. Lorsque meta describe révèle une absence de sémantique, l'Agent peut la générer et l'enregistrer :
aliyun maxc meta semantic set my_table \
--description "User behavior log table, recording click and view events within the app" \
--usage-scenario "User behavior analysis, funnel conversion statistics" \
--sample-questions '["What was the DAU for the last 7 days?", "What is the registration conversion rate trend?"]' \
--json
Les sessions ultérieures de l'Agent lisent ces informations, créant ainsi un cycle d'utilisation, d'accumulation et de réutilisation.
Contexte de l'Agent
L'Agent peut récupérer l'intégralité du contexte actuel en une seule fois à l'aide de agent context :
aliyun maxc agent context --json
Cette commande renvoie l'état actuel de l'authentification, le projet, le schéma et le chemin de configuration, aidant ainsi l'Agent à décider s'il doit guider l'utilisateur lors de l'authentification ou du changement de projet.