Todos os produtos
Search
Central de documentação

MaxCompute:Conecte-se ao MaxCompute com o odpscmd

Última atualização: Jun 26, 2026

O cliente MaxCompute (odpscmd) é uma interface de linha de comando que permite executar comandos e gerenciar projetos na sua máquina local. Este tópico explica como baixar, instalar, configurar e usar o odpscmd.

Pré-requisitos

  • O cliente MaxCompute requer Java 8 ou superior.

  • Compatibilidade de versões

    • O cliente MaxCompute v0.28.0 e posterior oferece suporte ao JDK 1.9 e versões mais recentes. As versões anteriores à v0.28.0 suportam apenas o JDK 1.8. Após iniciar o cliente MaxCompute, visualize a versão do cliente na interface de linha de comando.

    • O formato de saída do cliente MaxCompute não possui compatibilidade retroativa. Os formatos de comando e o comportamento podem variar entre as versões do cliente. Não utilize o formato de saída do cliente para análise sintática (parsing).

    • Para outras versões do cliente, consulte aliyun-odps-console.

  • Codificação de caracteres

    O cliente utiliza UTF-8 por padrão. Caso a codificação de caracteres do seu ambiente local não seja UTF-8, poderão surgir caracteres ilegíveis ao consultar dados com caracteres chineses em uma tabela do MaxCompute ou ao usar um comando Tunnel para fazer upload de arquivos locais que os contenham.

Faturamento

A utilização do cliente MaxCompute para conectar-se a um projeto é gratuita, mas as operações realizadas por meio do cliente estão sujeitas ao faturamento do MaxCompute. Por exemplo, enviar uma consulta SQL consome recursos de computação, e a gravação de dados utiliza espaço de armazenamento, resultando em custos de computação e armazenamento. Para obter mais informações sobre o faturamento do MaxCompute, consulte Itens faturáveis e métodos de faturamento.

Instale e configure o odpscmd

O odpscmd v0.27.0 e versões posteriores oferecem suporte aos tipos de dados do MaxCompute 2.0. Recomendamos o uso desses tipos de dados. Para obter uma lista dos tipos de dados suportados, consulte Tipos de dados (V2.0).

Procedimento

  1. Baixe o pacote de instalação do odpscmd (GitHub).

    Nota
    • Acesse a página de lançamento e baixe a versão mais recente do pacote de instalação do odpscmd (odpscmd_public.zip).

    • Caso não consiga baixar o pacote pelo link do GitHub, tente baixar o pacote de instalação do odpscmd (OSS). Se tiver problemas para acessar o GitHub, recomendamos buscar soluções online.

  2. Descompacte o pacote baixado. O diretório extraído contém as pastas bin, conf, lib e plugins.

  3. Acesse a pasta conf e configure o arquivo odps_config.ini.

    No arquivo odps_config.ini, o sinal de cerquilha (#) indica um comentário. A tabela a seguir descreve os parâmetros.

    Parâmetro

    Obrigatório

    Descrição

    Exemplo

    project_name

    Sim

    Nome do projeto MaxCompute de destino.

    Se você criou um workspace no modo padrão, diferencie os nomes dos projetos para o ambiente de produção e o ambiente de desenvolvimento (_dev) ao configurar o parâmetro project_name. Para mais informações, consulte Diferenças entre modos de workspace.

    1. Faça login no MaxCompute console e selecione uma região no canto superior esquerdo.

    2. No painel de navegação à esquerda, escolha Manage Configurations > Projects.

    3. Na página Projects, visualize o nome do seu projeto MaxCompute.

    doc_test_dev

    access_id

    Sim

    AccessKey ID da sua conta Alibaba Cloud ou usuário RAM. Obtenha o AccessKey ID na página AccessKey Management.

    N/A

    access_key

    Sim

    AccessKey Secret correspondente ao AccessKey ID.

    N/A

    end_point

    Sim

    Endpoint do serviço MaxCompute.

    Configure o endpoint com base na região onde seu projeto MaxCompute está localizado e no tipo de conexão de rede. Para obter uma lista de endpoints para diferentes regiões e tipos de rede, consulte Endpoints.

    Importante
    • Um endpoint conecta-se ao serviço MaxCompute, enquanto um tunnel endpoint conecta-se ao serviço MaxCompute Tunnel. Especifique aqui o endpoint para o serviço MaxCompute.

    • Uma configuração incorreta de endpoint causa erro de acesso.

    http://service.cn-hangzhou.maxcompute.aliyun.com/api

    log_view_host

    Não

    URL do LogView. Recomendamos configurar este parâmetro. Sem essa configuração, não será possível identificar rapidamente a causa de uma falha de job.

    Use esta URL para visualizar informações detalhadas sobre a execução do job e solucionar erros. O valor fixo é http://logview.odps.aliyun.com.

    http://logview.odps.aliyun.com

    https_check

    Não

    Define se o HTTPS deve ser ativado para criptografar requisições de acesso ao projeto MaxCompute. Valores válidos:

    • True: Ativa o HTTPS.

    • False: Utiliza HTTP.

    O valor padrão é False.

    True

    data_size_confirm

    Não

    Tamanho máximo dos dados de entrada em GB. Este valor não possui limite superior. Valor recomendado: 100.

    100

    update_url

    Não

    Parâmetro reservado para uso futuro.

    N/A

    use_instance_tunnel

    Não

    Define se o InstanceTunnel deve ser usado para baixar resultados de execução SQL. Valores válidos:

    • True: Usa o InstanceTunnel para baixar resultados de execução SQL.

    • False: Não usa o InstanceTunnel para baixar resultados de execução SQL.

    O valor padrão é False.

    True

    instance_tunnel_max_record

    Não

    Número máximo de registros em um resultado de execução SQL. Se use_instance_tunnel estiver definido como True, configure este parâmetro. O valor máximo é 10.000.

    10.000

    tunnel_endpoint

    Não

    Endpoint público para o serviço Tunnel.

    • Se você não configurar este parâmetro, o Tunnel roteará automaticamente as requisições para o tunnel endpoint correspondente à rede do serviço MaxCompute.

    • Se configurar um tunnel endpoint, o Tunnel usará esse valor e não realizará o roteamento automático.

    Para obter uma lista de tunnel endpoints para diferentes regiões e tipos de rede, consulte Endpoints.

    http://dt.cn-hangzhou.maxcompute.aliyun.com

    set.<key>

    Não

    Define uma propriedade para o projeto MaxCompute.

    Para mais informações sobre propriedades, consulte a lista de propriedades.

    set.odps.sql.decimal.odps2=true

    Certifique-se de que as informações acima estejam configuradas corretamente. Configurações incorretas podem causar falhas na conexão com o projeto.

Inicie o cliente MaxCompute

  1. Crie um projeto MaxCompute.

  2. Se utilizar o cliente MaxCompute como um usuário RAM, use sua conta Alibaba Cloud para adicionar o usuário RAM ao projeto MaxCompute de destino. Para mais informações sobre como adicionar usuários, consulte Conceder permissões a outros usuários.

  3. Utilize um dos métodos a seguir para iniciar o cliente MaxCompute:

    Script file

    No diretório bin da instalação do seu cliente MaxCompute, clique duas vezes em odpscmd.bat (no Windows) ou odpscmd (no macOS) para iniciar o cliente MaxCompute. A saída a seguir indica uma conexão bem-sucedida com o projeto 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!

    Command-line window

    Em uma janela de linha de comando, acesse o diretório bin da instalação do seu cliente MaxCompute. Execute odpscmd no Windows ou sh odpscmd no Linux ou macOS para iniciar o cliente MaxCompute. Uma mensagem de sucesso indica que o cliente se conectou ao projeto MaxCompute.

    Nota

    No Ubuntu, sh odpscmd retorna um erro. Use ./odpscmd em vez disso.

    Ao iniciar o cliente MaxCompute a partir de uma janela de linha de comando, especifique parâmetros de inicialização para executar comandos. Para mais informações, consulte Parâmetros de inicialização.

Operações do cliente MaxCompute

Ajuda de comandos

Obtenha ajuda sobre os comandos do cliente MaxCompute de uma das seguintes formas:

In the MaxCompute client

  • Visualize a ajuda para todos os comandos.

    odps@project_name>help;
    -- The following command is equivalent.
    odps@project_name>h;
  • Visualize a ajuda para comandos relacionados a uma palavra-chave específica.

    Por exemplo, para obter ajuda sobre comandos relacionados a tabelas, execute o seguinte comando.

    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]
    Importante

    O comando read utiliza sintaxe SQL e está sujeito à precificação de SQL.

From the system CLI

Na janela de linha de comando do seu sistema, acesse o diretório bin da instalação do seu cliente MaxCompute. Em seguida, execute o comando a seguir para visualizar a ajuda de todos os comandos. É possível especificar uma série de parâmetros ao iniciar o cliente MaxCompute a partir de uma janela de linha de comando. Para mais informações sobre os parâmetros, consulte Parâmetros.

...\odpscmd\bin>odpscmd -h

Informações do usuário atual

Execute o comando a seguir para obter informações sobre o usuário atual.

odps@project_name>whoami;

A saída contém os seguintes campos:

  • Name: A conta atual.

  • Source IP: O endereço IP do dispositivo que executa o cliente MaxCompute.

  • End_Point: O endpoint do serviço MaxCompute.

  • Project: O nome do projeto.

  • Schema: O schema no projeto.

Saindo do cliente MaxCompute

Execute o comando a seguir para sair do cliente MaxCompute.

odps@project_name>quit;
-- The following command is equivalent.
odps@project_name>q;

O comando tunnel download**

  • Na primeira execução do comando tunnel download, o cliente MaxCompute cria uma pasta de sessão para logs no diretório plugins/dship de sua instalação.

  • Se vários usuários executarem o comando tunnel download no mesmo dispositivo, utilize os métodos a seguir para garantir a segurança dos dados:

    • Use as configurações de permissão do seu sistema operacional para controlar o acesso à pasta de sessão.

    • Adicione o parâmetro -sd <new_session_folder_name> ou -session-dir <new_session_folder_name> ao comando tunnel download para baixar dados em uma pasta de sessão diferente. Para mais informações sobre o comando tunnel download, consulte Download.

Documentos relacionados

Após fazer login no cliente MaxCompute, execute comandos SQL em um projeto MaxCompute. Para mais informações, consulte Usar o cliente MaxCompute.

Para detalhes sobre a sintaxe de comandos do cliente MaxCompute, consulte Referência de comandos ou Comandos e funções SQL.

FAQ

Após configurar o arquivo odps_config.ini e iniciar o cliente MaxCompute, você poderá encontrar os seguintes erros comuns:

Erro: no java found

  • Causa

    O Java não está instalado na máquina que executa o cliente MaxCompute.

  • Solução

    Instale o Java na máquina e configure a variável de ambiente. O cliente MaxCompute v0.28.0 e posterior suporta JDK 1.9 ou superior. Versões anteriores suportam apenas JDK 1.8.

Erro: Could not find or load main class com.aliyun.openservices.odps.console.ODPSConsole

  • Causa

    Você pode ter baixado o pacote do cliente duas vezes, fazendo com que o diretório fosse renomeado automaticamente para odpscmd_public (1). Um nome de diretório que contenha caracteres especiais, como espaços, pode causar falha na resolução do caminho.

  • Solução

    Remova espaços e outros caracteres especiais do nome do diretório.

Erro: Accessing project '<projectname>' failed: ODPS-0420111: Project not found - '<projectname>'.

  • Causa

    O nome do projeto no arquivo odps_config.ini pode estar incorreto.

  • Solução

    1. Faça login no MaxCompute console e selecione uma região no canto superior esquerdo.

    2. No painel de navegação à esquerda, escolha Manage Configurations > Projects.

    3. Na página Projects, localize o nome correto do seu projeto MaxCompute e modifique o arquivo odps_config.ini.

Erro: Accessing project '<projectname>' failed: ODPS-0420095: Access Denied - Authorization Failed [4002], You don't exist in project <projectname>.

Erro: 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

  • Causa

    O valor do parâmetro end_point está incorreto. Por exemplo, você está tentando conectar-se a partir do seu computador local, mas configurou um endpoint para uma rede interna (como a rede clássica) ou um tunnel endpoint.

  • Solução

    Consulte a documentação de Endpoints e selecione o endpoint correto para a região e o ambiente de rede do seu projeto.

    Certifique-se de usar o endpoint do serviço MaxCompute, e não o tunnel endpoint, para o parâmetro end_point. Os tunnel endpoints destinam-se ao serviço MaxCompute Tunnel.

Erro: Accessing project '<projectname>' failed: <endpoint>

  • Causa

    O valor do parâmetro end_point está incorreto. Por exemplo, você pode ter inserido http://service.ch-hangzhou.maxcompute.aliyun.com/api. O endpoint de rede pública correto para a região China (Hangzhou) é http://service.cn-hangzhou.maxcompute.aliyun.com/api.

  • Solução

    Consulte a documentação de Endpoints e copie o endpoint correto para a região e o ambiente de rede do seu projeto. Recomendamos copiar o endpoint em vez de digitá-lo manualmente.

Parâmetros de inicialização

Execute comandos rapidamente a partir da linha de comando do sistema especificando parâmetros de inicialização.

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

A tabela a seguir descreve os parâmetros de inicialização.

Parâmetro

Descrição

Exemplo

--help ou -h

Exibe informações de ajuda para todos os comandos do cliente MaxCompute.

odpscmd --help

--config

Especifica o caminho para o arquivo odps_config.ini. O caminho padrão é odpscmd_public/conf/odps_config.ini.

odpscmd --config=D:/odpscmd/conf/odps_config.ini

--project

Especifica o nome do projeto MaxCompute a ser acessado.

odpscmd --project=doc_test

--endpoint

Especifica o endpoint para conexão com o serviço MaxCompute. Para mais informações, consulte Endpoints.

odpscmd --endpoint=http://service.cn-shanghai.maxcompute.aliyun.com/api

-k

Ignora as primeiras n-1 instruções e inicia a execução a partir da enésima instrução. Se n≤0, a execução começa na primeira instrução. As instruções são separadas por ponto e vírgula (;).

Ignora as duas primeiras instruções e inicia a execução a partir da terceira. odpscmd -k 3 -e "drop table table_name;create table table_name (dummy string);insert overwrite table table_name select count(*) from table_name;"

-r

Define o número de tentativas para repetir um job com falha.

odpscmd -r 2 -e "select from sale_detail;select from table_test;"

-f

Especifica um arquivo contendo comandos a serem executados.

  1. Crie um arquivo de script local chamado script.txt. Por exemplo, salve-o na unidade D: com o seguinte conteúdo:

    drop table if exists test_table_mj;
    create table test_table_mj (id string, name string);
    drop table test_table_mj;
  2. Na linha de comando, acesse o diretório bin do cliente MaxCompute e execute o seguinte comando.

    ..\odpscmd\bin>odpscmd -f D:/script.txt;

-e

Especifica um comando a ser executado.

odpscmd -e "select * from sale_detail;"

Na linha de comando shell ou Windows, use odpscmd -e <SQL_statement> para capturar valores de retorno dinâmicos em uma variável shell para jobs subsequentes. Nesse cenário, o valor de retorno não deve conter informações extras, como detalhes de tempo de execução ou cabeçalho. Para facilitar o scripting em shell, defina o parâmetro use_instance_tunnel no arquivo odps_config.ini como false para desativar o Instance Tunnel. Em seguida, execute o comando set odps.sql.select.output.format={"needHeader":false,"fieldDelim":" "}; para suprimir o cabeçalho.

Por exemplo, considere uma tabela chamada noheader com uma coluna e três linhas de dados: 1, 2 e 3. Execute o comando a seguir para redirecionar a saída padrão para um arquivo. A saída conterá apenas os dados, sem informações extras:

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

Histórico de versões

A tabela a seguir descreve atualizações recentes do odpscmd. Para mais detalhes, clique no link de uma versão específica.

Para obter uma lista completa de versões do odpscmd e notas de lançamento, consulte o GitHub.

Versão

Tipo

Descrição

v0.52.3-public

novo recurso

Adicionado suporte para uso de token STS como credencial de segurança temporária.

correção de bug

Atualizada a biblioteca Apache Arrow para resolver problemas de compatibilidade de dependências.

v0.52.2-public

novo recurso

Adicionado o parâmetro skip_progress para desativar o relatório de progresso em jobs do MaxCompute Query Acceleration (MCQA) 2.0.

melhoria

  • Comandos aprimorados para melhor suporte ao modo MCQA V2.

  • Aprimorado o comando compact para aceitar IDs específicos de compactação.

v0.51.2-public

correção de bug

Dependências atualizadas para resolver vulnerabilidades CVE.

v0.51.1-public

novo recurso

Adicionada opção de aceleração para download de volume externo.

melhoria

Refatorados os comandos DescribeTableCommand, ShowPartitionsCommand e ShowTablesCommand para melhorar o suporte ao projeto externo V2.

v0.51.0-public

novo recurso

  • Implementado cache de sistema de arquivos local para informações de cota visando melhorar o desempenho.

  • Aprimorado o comando compact com opção de limiar local, modo forçado e validação de parâmetros melhorada.

  • Introduzido o comando TUNE para analisar e otimizar planos de consulta SQL. Este comando avalia múltiplos planos de execução candidatos e fornece histórico e relatórios de ajuste.

melhoria

  • Gerenciamento de sessões e carregamento de cotas aprimorados para MCQA 2.0.

  • Reimplementados os parâmetros de timeout de rede (network_read_timeout e network_connect_timeout) e integrados à configuração do cliente REST.

v0.50.0-public

novo recurso

  • Adicionado suporte para envio de jobs MCQA 2.0.

  • Adicionado o UseQuotaCommand para especificar um grupo de cota interativo.

v0.48.0-public

novo recurso

  • Atualizado o odps-sdk de 0.47.0-public para 0.48.6-public. Para obter uma lista de melhorias e correções, consulte o changelog do odps-sdk.

  • Aprimorado o comando DESC EXTENDED para exibir informações de mascaramento de dados.

correção de bug

Melhorado o modo MCQA para detectar com maior precisão o comportamento de fallback e evitar exibições duplicadas de logview.

v0.47.0-public

novo recurso

  • Adicionado o comando http, que permite enviar requisições HTTP com suas credenciais atuais.

  • Adicionado o parâmetro de inicialização --keep-session-variables. Quando ativado, o comando use [project] não limpa mais as variáveis de sessão existentes (como aquelas definidas com SET a=b), permitindo que persistam ao alternar entre projetos.

melhoria

  • O comando read suporta os tipos de dados TIMESTAMP_NTZ e JSON.

  • Atualizações nos comandos Tunnel:

    • Os comandos TUNNEL UPLOAD/DOWNLOAD suportam a flag -qn para especificar um Tunnel QuotaName.

    • O comando TUNNEL UPLOAD suporta a flag -dfp para definir o formato de valores DATETIME em arquivos de texto.

  • Adicionado suporte a grep no HistoryCommand para melhorar os recursos de busca.

  • Adicionado suporte à sintaxe DROP project para alinhar com o console. A sintaxe DELETE project permanece disponível.

  • Aprimorado o comando setproject para suportar strings de valor mais longas e tipos de dados complexos, como JSON.

v0.46.5-public

novo recurso

Adicionado suporte para o tipo de dados JSON em operações Tunnel.

v0.46.4-public

novo recurso

  • Funcionalidade UPSERT para operações de dados: Este recurso permite realizar operações UPSERT através do Tunnel. Adiciona a classe DshipUpdate e a constante RESUME_UPSERT_ID para suportar atualizações de dados e recuperação de operações.

  • Gerenciamento de fuso horário aprimorado para execução SQL. Use SET odps.sql.timezone=UTC; para definir um fuso horário no nível da sessão.

  • Melhorado o tratamento de configurações de segurança.

  • Refatorado o SetCommand para melhores capacidades de parsing e correspondência de comandos.

melhoria

Estendido o DescribeTableCommand para exibir informações mais detalhadas sobre a camada de armazenamento.

v0.45.1-public

novo recurso

  • Aprimorado o DescribeTableCommand para exibir informações da camada de armazenamento tanto para tabelas particionadas quanto não particionadas.

  • O comando exibe o nome da camada de armazenamento, a última hora de modificação das partições e o tamanho de armazenamento para cada camada dentro de uma tabela particionada.

v0.45.0-public

novo recurso

  • Adicionado o parâmetro attach_session_timeout para controlar o timeout ao anexar a uma sessão MCQA.

    Nota

    Este parâmetro aplica-se ao MCQA (Query Acceleration 1.0). Para configuração do MaxQA (Query Acceleration 2.0), consulte Query Acceleration MaxQA.

  • Validação de schema aprimorada para o SetCommand. Ao definir um schema padrão, o cliente valida a existência do schema com maior precisão e lida com nomes de schema inválidos de forma mais eficaz.

melhoria

  • Gerenciamento de sessões aprimorado adicionando o parâmetro attachTimeout à configuração do construtor de sessões.

  • Aprimorado o comando dship para melhorar o parsing e o tratamento de valores datetime.

  • Parsing e tratamento de opções aprimorados para o TopInstanceCommand.

v0.43.2-public

novo recurso

  • Adicionado suporte para criação de volume externo.

  • Aprimorado o comando show para consultar todas as funções integradas no projeto MaxCompute atual ou filtrá-las por um padrão específico.

v0.40.10-public

correção de bug

Removida a dependência Log4j.

v0.40.8-public

novo recurso

Adicionado suporte para organização de dados baseada em schema dentro de um projeto. Para mais informações, consulte Operações de schema.

v0.37.5-public

novo recurso

Adicionado suporte para upload e download de tipos de dados complexos através do Tunnel.

v0.37.4-public

melhoria

  • Melhoradas as mensagens de ajuda para comandos.

  • Aprimorado o comando desc extended partition para retornar mais propriedades de partição.

v0.36.0-public

novo recurso

Adicionado suporte para criação de projeto externo para conexão com Data Lake Formation (DLF), habilitando capacidades de lakehouse.

correção de bug

Corrigido um problema onde a parte de nanossegundos dos dados TIMESTAMP era tratada incorretamente durante downloads.