Tous les produits
Search
Centre de documentation

MaxCompute:CLI MaxCompute

Dernière mise à jour :Sep 14, 2026

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 -V pour 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)

    1. Téléchargez le package d'installation.

      • Télécharger la dernière version :

        Remarque

        Exécutez uname -m pour vérifier l'architecture de votre système Linux. Si la sortie du terminal est arm64 ou aarch64, 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> par amd64 ou arm64.

    2. Décompressez le package d'installation pour obtenir le fichier exécutable aliyun.

      tar xzvf aliyun-cli-linux-latest.tgz
    3. Déplacez le fichier exécutable vers le répertoire /usr/local/bin. Cela vous permet d'exécuter la commande aliyun depuis n'importe quel chemin d'accès.

      sudo mv ./aliyun /usr/local/bin/

    macOS

    Installer avec Homebrew (recommandé)

    Remarque

    Avant de continuer, assurez-vous d'avoir installé et configuré Homebrew.

    Installez la dernière version d'Alibaba Cloud CLI :

    brew install aliyun-cli

    Installer via l'interface graphique (PKG)

    Double-cliquez sur le package pour lancer l'installation ; aucun outil en ligne de commande n'est requis.

    1. 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.

    2. 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)

    1. 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.

    2. Décompressez le package d'installation pour obtenir le fichier exécutable aliyun.

      tar xzvf aliyun-cli-macosx-latest-universal.tgz
    3. Déplacez le fichier exécutable vers le répertoire /usr/local/bin. Cela vous permet d'exécuter la commande aliyun depuis n'importe quel chemin d'accès.

      sudo mv ./aliyun /usr/local/bin/

    Windows

    Important

    Alibaba 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

    1. 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.

    2. Extrayez aliyun.exe du package d'installation vers un répertoire tel que C:\AliyunCLI.

      Remarque
      • Ce 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

    1. Appuyez sur les touches Windows + S pour ouvrir l'interface de recherche, puis saisissez le mot-clé « variables d'environnement ».

    2. Dans les résultats de recherche, cliquez sur Edit the environment variables for your account pour ouvrir les paramètres Environment Variables.

    3. Dans la section User variables.

    4. 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.

    5. Cliquez sur New dans toutes les boîtes de dialogue ouvertes pour enregistrer les modifications.

    6. Redémarrez votre session de terminal pour que les modifications prennent effet.

    Installer à l'aide d'un script PowerShell

    1. Créez un nouveau fichier de script nommé Install-CLI-Windows.ps1. Vous pouvez exécuter New-Item Install-CLI-Windows.ps1 dans PowerShell pour créer le fichier, ou créer un nouveau document texte dans l'Explorateur de fichiers et le renommer.

    2. Copiez le code suivant et enregistrez-le dans le fichier de script.

      Exemple de script

      # Install-CLI-Windows.ps1
      # Purpose: Install Alibaba Cloud CLI on Windows AMD64 systems.
      # Supports custom version and install directory. Only modifies User-level and Process-level PATH.
      
      [CmdletBinding()]
      param (
          [string]$Version = "latest",
          [string]$InstallDir = "$env:LOCALAPPDATA",
          [switch]$Help
      )
      
      function Show-Usage {
          Write-Output @"
      
            Alibaba Cloud Command Line Interface Installer
      
          -Help                 Display this help and exit
      
          -Version VERSION      Custom CLI version. Default is 'latest'
      
          -InstallDir PATH      Custom installation directory. Default is:
                                $InstallDir\AliyunCLI
      
      "@
      }
      
      function Write-ErrorExit {
          param([string]$Message)
          Write-Error $Message
          exit 1
      }
      
      if ($PSBoundParameters['Help']) {
          Show-Usage
          exit 0
      }
      
      Write-Output @"
      ..............888888888888888888888 ........=8888888888888888888D=..............
      ...........88888888888888888888888 ..........D8888888888888888888888I...........
      .........,8888888888888ZI: ...........................=Z88D8888888888D..........
      .........+88888888 ..........................................88888888D..........
      .........+88888888 .......Welcome to use Alibaba Cloud.......O8888888D..........
      .........+88888888 ............. ************* ..............O8888888D..........
      .........+88888888 .... Command Line Interface(Reloaded) ....O8888888D..........
      .........+88888888...........................................88888888D..........
      ..........D888888888888DO+. ..........................?ND888888888888D..........
      ...........O8888888888888888888888...........D8888888888888888888888=...........
      ............ .:D8888888888888888888.........78888888888888888888O ..............
      "@
      
      $OSArchitecture = (Get-WmiObject -Class Win32_OperatingSystem).OSArchitecture
      
      $ProcessorArchitecture = [int](Get-WmiObject -Class Win32_Processor).Architecture
      
      if (-not ($OSArchitecture -match "64") -or $ProcessorArchitecture -ne 9) {
          Write-ErrorExit "Alibaba Cloud CLI only supports Windows AMD64 systems. Please run on a compatible system."
      }
      
      $DownloadUrl = "https://aliyuncli.alicdn.com/aliyun-cli-windows-$Version-amd64.zip"
      
      $tempPath = $env:TEMP
      $randomName = -join ((65..90) + (97..122) + (48..57) | Get-Random -Count 8)
      $DownloadDir = Join-Path -Path $tempPath -ChildPath $randomName
      New-Item -ItemType Directory -Path $DownloadDir | Out-Null
      
      try {
          $InstallDir = Join-Path $InstallDir "AliyunCLI"
          if (-not (Test-Path $InstallDir)) {
              New-Item -ItemType Directory -Path $InstallDir -Force | Out-Null
          }
      
          $ZipPath = Join-Path $DownloadDir "aliyun-cli.zip"
          Start-BitsTransfer -Source $DownloadUrl -Destination $ZipPath
      
          Expand-Archive -Path $ZipPath -DestinationPath $DownloadDir -Force
      
          Move-Item -Path "$DownloadDir\aliyun.exe" -Destination "$InstallDir\" -Force
      
          $Key = 'HKCU:\Environment'
          $CurrentPath = (Get-ItemProperty -Path $Key -Name PATH).PATH
      
          if ([string]::IsNullOrEmpty($CurrentPath)) {
              $NewPath = $InstallDir
          } else {
              if ($CurrentPath -notlike "*$InstallDir*") {
                  $NewPath = "$CurrentPath;$InstallDir"
              } else {
                  $NewPath = $CurrentPath
              }
          }
      
          if ($NewPath -ne $CurrentPath) {
              Set-ItemProperty -Path $Key -Name PATH -Value $NewPath
              $env:PATH += ";$InstallDir"
          }
      } catch {
          Write-ErrorExit "Failed to install Alibaba Cloud CLI: $_"
      } finally {
          Remove-Item -Path $DownloadDir -Recurse -Force | Out-Null
      }
    3. Exécutez le fichier de script pour installer Alibaba Cloud CLI comme indiqué dans les exemples suivants.

      Remarque

      Le 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 -Version et -InstallDir pour 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 --version

    Si 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 plan

    Le 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

Code d'erreur (voir le tableau ci-dessous)

message

Description de l'erreur

suggestion

Correction recommandée (facultative)

recoverable

Indique si l'opération peut être retentée

instance_id

ID de l'instance ODPS (uniquement pour les erreurs de requête, facultatif)

logview

Lien LogView (uniquement pour les erreurs de requête, facultatif)

context

Contexte structuré (facultatif)

Codes d'erreur

Code d'erreur

Description

Réessayable

EXECUTION_FAILED

Échec de l'exécution

Oui

PERMISSION_DENIED

Autorisation refusée

Non

QUOTA_EXCEEDED

Quota dépassé

Oui

SQL_ERROR

Erreur de syntaxe ou d'exécution SQL

Non

COST_LIMIT_EXCEEDED

Limite de coût dépassée

Non

NOT_FOUND

Ressource introuvable

Non

TABLE_NOT_FOUND

Table introuvable

Non

SCHEMA_NOT_FOUND

Schema introuvable

Non

COLUMN_NOT_FOUND

Colonne introuvable

Non

VALIDATION_ERROR

Échec de la validation des entrées

Non

BACKEND_CONNECTION_ERROR

Impossible de se connecter au backend

Oui

JOB_TIMEOUT

Délai d'attente du sondage de job dépassé

Oui

READ_ONLY_VIOLATION

Opération d'écriture bloquée par le mode lecture seule

Non

WRITE_OPERATION_REQUIRES_FORCE

L'opération d'écriture nécessite l'option --force

Oui

CSV_PARSE_ERROR

Échec de l'analyse CSV

Non

INTERNAL_ERROR

Erreur interne

Non

Autres formats

Format

Description

table

Tableau lisible (par défaut)

markdown

Format Markdown

brief

Résumé sur une seule ligne

csv

CSV (lignes de données uniquement)

ndjson

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 meta search pour trouver des tables aux noms similaires

Colonne introuvable

Suggère d'exécuter meta describe pour afficher le schéma de la table

Autorisations insuffisantes

Suggère de basculer vers le projet _dev ou de vérifier l'identité

Erreur de syntaxe SQL

Suggère d'exécuter query cost ou query explain pour la validation

Quota dépassé

Suggère d'exécuter query cost pour évaluer le coût de la requête

Délai d'attente du job dépassé

Suggère d'exécuter job wait ou job status pour poursuivre le suivi

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

claude-code

~/.claude/skills/maxc-cli/

cursor

~/.cursor/skills/maxc-cli/

windsurf

~/.codeium/windsurf/skills/maxc-cli/

codex

~/.codex/skills/maxc-cli/

qwen

~/.qwen/skills/maxc-cli/

qoder

~/.qoder/skills/maxc-cli/

qoderwork

~/.qoderwork/skills/maxc-cli/

openclaw

~/.openclaw/workspace/skills/maxc-cli/

hermes

~/.hermes/skills/maxc-cli/

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.