本文将为您介绍如何借助客户端命令行工具使用 MaxCompute 服务的基础功能。在使用 MaxCompute 客户端前,请首先安装并配置客户端

说明
  • 请不要依赖客户端的输出格式来做任何的解析工作。客户端的输出格式不承诺向前兼容,不同版本间的客户端命令格式及行为有差异。
  • 关于客户端的基本命令介绍,请参见 基本命令
  • 新版客户端:点击此处 即可下载新版客户端。关于不同环境下客户端的安装配置信息请参见安装并配置客户端
  • 客户端从0.28.0版开始支持JDK 1.9,这之前的版本只能用JDK 1.8。

安装并配置好客户端后,您可借助命令行工具进行以下操作:

获取帮助

若想显示客户端的帮助信息,命令格式如下所示:

odps@ >./bin/odpscmd -h;

您也可以在交互模式下键入h;help;(不区分大小写)。

客户端还提供了 help [keyword]; 命令,可获取到与关键字有关的命令提示。例如:输入 help table; 可以得到与 table 操作相关的命令提示,如下所示:


odps@ odps> help table;
Usage: alter table  merge smallfiles
Usage: show tables [in ]
      list|ls tables [-p,-project ]
Usage: describe|desc [.] [partition()]
Usage: read [.] [([,..])] [PARTITION ()] [line_num]

启动参数

在启动时,您可指定一系列参数,如下所示:


Usage: odpscmd [OPTION]...
where options include:
    --help (-h)for help
    --project= use project
    --endpoint= set endpoint
    -u  -p  user name and password
    -k  will skip begining queries and start from specified position
    -r  set retry times
    -f <"file_path;"> execute command in file
    -e <"command;[command;]..."> execute command, include sql command
    -C will display job counters

以 -f 参数为例,操作如下:

  1. 准备本地脚本文件 script.txt,假设存放在 D 盘,文件内容如下所示:

    
    DROP TABLE IF EXISTS test_table_mj;
    CREATE TABLE test_table_mj (id string, name string);
    DROP TABLE test_table_mj;
  2. 运行如下命令:

    odpscmd\bin>odpscmd -f ./script.sql;

交互模式

直接运行客户端即可进入到交互模式,如下所示:


[admin: ~]$odpscmd
Aliyun ODPS Command Line Tool
Version 1.0
@Copyright 2012 Alibaba Cloud Computing Co., Ltd. All rights reserved.
odps@ odps> INSERT OVERWRITE TABLE DUAL SELECT * FROM DUAL;

在光标位置输入命令(以分号作为语句的结束标志),回车即可运行。

续跑

  • 在用 -e 或 -f 模式运行时,如果有多条语句,想从中间某条语句开始运行,可以指定参数 -k, 表示忽略前面的语句,从指定位置的语句开始运行。当指定参数 <= 0 时,从第一条语句开始执行。
  • 每个以分号分隔的语句被视为一条有效语句,在运行时会打印出当前运行成功或者失败的是第几条语句。

示例如下:

假设文件/tmp/dual.sql 中有三条 SQL 语句,如下所示:


drop table dual;
create table dual (dummy string);
insert overwrite table dual select count(*) from dual;

若想忽略前两条语句,直接从第三条语句开始执行,命令格式如下所示:

odpscmd–k 3 –f dual.sql

获取当前登录用户

若想获取当前登录用户,命令格式如下所示:

whoami;

示例如下:


odps@ hiveut>whoami;
Name: odpstest@aliyun.com
End_Point: http://service.odps.aliyun.com/api
Project: lijunsecuritytest

通过以上命令,即可获取当前登录用户的云账号、使用的 End_Point 配置和项目名。

退出

若想退出客户端,命令格式如下所示:

odps@ > quit;

您也可输入如下命令退出客户端:

odps@ > q;