O cliente MaxCompute (odpscmd) é uma interface de linha de comando que permite executar comandos e gerenciar projetos a partir da sua máquina local. Este tópico explica como baixar, instalar, configurar e utilizar o odpscmd.
Pré-requisitos
O cliente MaxCompute requer Java 8 ou superior.
-
Compatibilidade de versões
O cliente MaxCompute v0.28.0 e posteriores suportam JDK 1.9 ou superior. Versões anteriores à v0.28.0 suportam apenas JDK 1.8. Após start the MaxCompute client, você pode visualizar 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 (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 ocorrer caracteres ilegíveis ao consultar dados contendo 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. Isso gera custos de computação e armazenamento. Para mais informações sobre o faturamento do MaxCompute, consulte Billable items and billing methods.
Instalar e configurar o odpscmd
O odpscmd v0.27.0 e posteriores suportam os tipos de dados do MaxCompute 2.0. Recomendamos o uso desses tipos de dados. Para obter uma lista dos tipos de dados suportados, consulte Data Types (V2.0).
Procedimento
-
Baixe o pacote de instalação do odpscmd (GitHub).
NotaAcesse o link da 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 de acesso ao GitHub, recomendamos buscar soluções online.
Descompacte o pacote baixado. O diretório extraído contém as pastas bin, conf, lib e plugins.
-
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, distinga 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 Differences between workspace modes.
Faça login no MaxCompute console e selecione uma região no canto superior esquerdo.
No painel de navegação à esquerda, escolha .
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 service 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.
ImportanteUm endpoint conecta-se ao service MaxCompute, enquanto um tunnel endpoint conecta-se ao service MaxCompute Tunnel. Especifique aqui o endpoint para o service 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 é 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 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 InstanceTunnel para baixar resultados de execução SQL.
False: Não usa 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 service Tunnel.
Se este parâmetro não for configurado, o Tunnel roteará automaticamente as requisições para o tunnel endpoint correspondente à rede do service MaxCompute.
Se você 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 property list.
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.
Iniciar o cliente MaxCompute
Se você 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 Grant permissions to other users.
-
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) ouodpscmd(no macOS) para iniciar o cliente MaxCompute. A saída a seguir indica uma conexão bem-sucedida com o projeto MaxCompute.--Windows command line: ...\odpscmd\bin>odpscmd -e "set odps.sql.select.output.format={""needHeader"":false,""fieldDelim"":"" ""};select * from noheader;" >D:\test.txt --The result is saved to D:\test.txt. --Shell: /Users/.../odpscmd/bin/odpscmd -e "set odps.sql.select.output.format={\"needHeader\":false,\"fieldDelim\":\"\"};select * from noheader;" >/Users/A/temp/test.txt --The result is saved to /Users/A/temp/test.txt. --Output: 1 2 3Command-line window
Em uma janela de linha de comando, acesse o diretório bin da instalação do seu cliente MaxCompute. Execute
odpscmdno Windows oush odpscmdno Linux ou macOS para iniciar o cliente MaxCompute. Uma mensagem de sucesso indica que o cliente se conectou ao projeto MaxCompute.NotaNo Ubuntu,
sh odpscmdretorna um erro. Use./odpscmdem 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 Startup parameters.
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.
--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 -
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.
--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 3ImportanteO comando
readutiliza sintaxe SQL e está sujeito a SQL pricing.
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. Especifique 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 Parameters.
--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
Informações do usuário atual
Execute o comando a seguir para obter informações sobre o usuário atual.
--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
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 service MaxCompute.
Project: O nome do projeto.
Schema: O schema no projeto.
Sair do cliente MaxCompute
Execute o comando a seguir para sair do cliente MaxCompute.
--Windows command line:
...\odpscmd\bin>odpscmd -e "set odps.sql.select.output.format={""needHeader"":false,""fieldDelim"":"" ""};select * from noheader;" >D:\test.txt
--The result is saved to D:\test.txt.
--Shell:
/Users/.../odpscmd/bin/odpscmd -e "set odps.sql.select.output.format={\"needHeader\":false,\"fieldDelim\":\"\"};select * from noheader;" >/Users/A/temp/test.txt
--The result is saved to /Users/A/temp/test.txt.
--Output:
1
2
3
Comando tunnel download**
Na primeira execução do comando
tunnel download, o cliente MaxCompute cria uma pasta de sessão para logs no diretórioplugins/dshipde sua instalação.-
Se vários usuários executarem o comando
tunnel downloadno 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 comandotunnel downloadpara baixar dados em uma pasta de sessão diferente. Para mais informações sobre o comandotunnel download, consulte Download.
Documentos relacionados
Após fazer login no cliente MaxCompute, execute comandos SQL em um projeto MaxCompute. Para mais informações, consulte Use the MaxCompute client.
Para detalhes sobre a sintaxe de comandos do cliente MaxCompute, consulte Command reference ou SQL commands and functions.
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
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 posteriores 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
Faça login no MaxCompute console e selecione uma região no canto superior esquerdo.
No painel de navegação à esquerda, escolha .
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>.
-
Causa
A conta Alibaba Cloud ou usuário RAM associado ao AccessKey atual não foi adicionado ao projeto de destino, ou o nome do projeto está incorreto.
-
Solução
Entre em contato com o proprietário do projeto para adicionar a conta Alibaba Cloud ou usuário RAM ao projeto de destino. Para mais informações, consulte Add an Alibaba Cloud account user (project-level) ou Add a RAM user (project-level).
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_pointestá incorreto. Por exemplo, você está tentando conectar-se do seu computador local, mas configurou um endpoint para uma rede interna (como a classic network) ou um tunnel endpoint. -
Solução
Consulte a documentação 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 service MaxCompute, e não o tunnel endpoint, para o parâmetro
end_point. Tunnel endpoints destinam-se ao service MaxCompute Tunnel.
Erro: Accessing project '<projectname>' failed: <endpoint>
-
Causa
O valor do parâmetro
end_pointestá incorreto. Por exemplo, você pode ter inseridohttp://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 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.
--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
A tabela a seguir descreve os parâmetros de inicialização.
Parâmetro | Descrição | Exemplo |
| Exibe informações de ajuda para todos os comandos do cliente MaxCompute. |
|
| Especifica o caminho para o arquivo odps_config.ini. O caminho padrão é |
|
| Especifica o nome do projeto MaxCompute a ser acessado. |
|
| Especifica o endpoint para conexão com o service MaxCompute. Para mais informações, consulte Endpoints. |
|
| Ignora as primeiras n-1 instruções e inicia a execução a partir da enésima instrução. Se | Ignora as duas primeiras instruções e inicia a execução a partir da terceira instrução. |
| Define o número de tentativas para repetir um job com falha. |
|
| Especifica um arquivo contendo comandos a serem executados. |
|
| Especifica um comando a ser executado. |
|
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 scripts 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 em no link de uma versão específica.
Para obter uma lista completa de versões do odpscmd e notas de lançamento, consulte GitHub.
Versão | Tipo | Descrição |
new feature | Adicionado suporte para uso de token STS como credenciais de segurança temporárias. | |
bug fix | Biblioteca Apache Arrow atualizada para resolver problemas de compatibilidade de dependências. | |
new feature | Adicionado o parâmetro | |
enhancement |
| |
bug fix | Dependências atualizadas para resolver vulnerabilidades CVE. | |
new feature | Adicionada opção de aceleração para download de external volume. | |
enhancement | Refatorados os comandos | |
new feature |
| |
enhancement |
| |
new feature |
| |
new feature |
| |
bug fix | Modo MCQA aprimorado para detectar com maior precisão o comportamento de fallback e evitar exibições duplicadas de logview. | |
new feature |
| |
enhancement |
| |
new feature | Adicionado suporte para o tipo de dados JSON em operações Tunnel. | |
new feature |
| |
enhancement | Estendido o | |
new feature |
| |
new feature |
| |
enhancement |
| |
new feature |
| |
bug fix | Removida a dependência Log4j. | |
new feature | Adicionado suporte para organização de dados baseada em schema dentro de um projeto. Para mais informações, consulte Schema operations. | |
new feature | Adicionado suporte para upload e download de tipos de dados complexos através do Tunnel. | |
enhancement |
| |
new feature | Adicionado suporte para criação de external project para conexão com Data Lake Formation (DLF), habilitando capacidades de lakehouse. | |
bug fix | Corrigido um problema onde a parte de nanosegundos dos dados TIMESTAMP era tratada incorretamente durante downloads. |