项目空间操作

进入项目空间

  1. use <project_name>

查询项目空间

list projects;

SetProject

setproject <key>=<value>;

Project属性的详细说明表见
https://help.aliyun.com/document_detail/27828.html?spm=a2c4g.11186623.6.637.42df2d74VSl82N
其中还包含了公网和VPC的白名单设置

表操作

Create Table

create table [if not exists] table_name
 [(col_name data_type [comment col_comment], ...)]
 [comment table_comment]
 [partitioned by (col_name data_type [comment col_comment], ...)]
 [lifecycle days]
 [as select_statement]
 create table [if not exists] table_name
 like existing_table_name

ChangeOwner

alter table <table_name> changeowner to <new_owner>;

Drop Table

drop table [if exists] <table_name>;

查看表信息

desc <table_name>; --查看表信息
desc extended <table_name>; --查看外部表信息

查看分区信息

查看指定表的某个指定分区信息。

desc <table_name> partition(<pt_spec>);

Show Tables和Show Tables like

查看项目空间下的表。

show tables;  --查看项目空间下所有的表
show table like 'chart'; --模糊查询与匹配规则能匹配上的表

Show Partitions

查看指定表的所有分区。

show partitions <table_name>;

实例操作

查看实例信息(Show Instances/Show P)

show instances [from startdate to enddate] [number];
show p [from startdate to enddate] [number];
show instances [-all];
show p [-all];
show p -p <project name>;

返回由当前用户创建的实例信息。查询结果输出项包括:StartTime(时间精确到秒)、RunTime(s)、Status(实例状态)。Instance有以下6种状态:

  • Running:正在运行。
  • Success:成功结束。
  • Waiting:等待中。
  • Failed:作业失败,但是尚未改写目标表数据。
  • Suspended:挂起。
  • Cancelled:被中止。

参数说明

  • startdateenddate:返回从起始时间startdate到结束时间enddate的实例信息,需满足格式:yyyy-mm-dd,精度到天。可选参数,如果不指定,则返回在三天内提交的实例。
  • number:指定返回实例的数量。依照时间排序,返回距离当前时间最近的number个实例信息。如果不指定number,则返回满足要求的所有实例信息。
  • -all:返回当前项目下所有执行过的实例,默认最大返回50条。注意执行该命令的用户需要有Project的List权限。如需返回更多条记录,请使用-limit number参数,即可限制返回number条记录。
  • project name:项目名称,您使用的账号必须已经是项目成员。


查看实例状态(Status Instance)

status instance_id;
  • 返回指定实例的状态,状态包括Success、Failed、Running和Cancelled。
  • 如果此实例并非当前用户创建,则报异常返回。

Top Instance

查看正在执行的作业信息。

top instance; --返回当前项目中当前账号所提交的正在执行的作业信息
top instance -all; --返回当前项目下所有正在执行的作业,默认最大返回50条。如需返回更多条记录可使用-limit

Kill Instance

停止指定实例(只能停止Running状态的)。

kill <instance_id>;

该命令是一个异步的过程,在系统接受此请求并返回后,并不意味着分布式的作业已经停止,而只代表系统已接收到请求,因此还要用status命令确定

Desc Instance

根据具体的实例ID获得作业信息。

desc instance instance_id ;

Wait Instance

根据具体的实例ID获得任务运行日志信息,包含Logview链接。再通过查看Logview可以获得任务的详细日志。

wait instance_id;

注意:获取最近3天Instance的Logview可正常打开。超过3天的Instance对应Logview可获取,但会因为过期被清除而打不开。

资源操作

添加资源

add file <local_file> [as alias] [comment 'cmt'][-f];
add archive <local_file> [as alias] [comment 'cmt'][-f];
add table <table_name> [partition (spec)] [as alias] [comment 'cmt'][-f];
add <PY | JAR> <localfile[.py |.jar]> [COMMENT 'cmt'][-f];

参数说明

  • file/archive/table/jar/py:表示资源类型。资源类型的介绍请参见资源(Resource)。
  • local_file:表示本地文件所在路径。并以此文件名作为该资源名,资源名是资源的唯一标识。
  • table_name:表示MaxCompute中的表名。目前不支持添加外部表为资源。
  • [PARTITION (spec)]:当添加的资源为分区表时,MaxCompute仅支持将某个分区作为资源,不支持将整张分区表作为资源。
  • alias:指定资源名,不加该参数时默认文件名为资源名。Jar及Python类型资源不支持此功能。
  • [comment’cmt’]:给资源添加注释。
  • [-f]:当存在同名的资源时,此操作会覆盖原有资源。如果不指定此选项,存在同名资源时,操作将失败。

注意:单个资源文件的大小不能超过500M。

查看资源列表

查看当前项目空间下所有的资源。

list resources;

下载资源

get resource <resource_name> <path>;

删除资源

drop resource <resource_name>;

函数操作

注册函数

create function <function_name> as <package_to_class> using <resource_list>;

参数说明

  • function_name:新建的UDF函数名称。函数名称需要唯一,同名函数只能注册一次。注意:通常情况下自建函数无法覆盖系统内建函数,只有项目空间的Owner才有权利覆盖内建函数,但极其不建议这么做。
  • package_to_class:包名,此名称须用引号引起。
    • Java UDF:参数值为从顶层包名一直到实现UDF类的类名。
    • Python UDF:参数值为Python脚本名.类名。
  • resource_list:UDF所用到的资源列表。
    • 资源必须先上传至MaxCompute。
    • 如果您的代码通过Distributed Cache接口读取资源文件,此列表中还要包括UDF所读取的资源文件列表。
    • 资源列表由多个资源名组成,资源名之间由逗号分隔,且资源列表必须用引号引起。
    • 如果需要指定资源所在的Project,写法为/resources/

注销函数

drop function <function_name>;

查看函数清单

list functions; --查看当前项目空间下所有函数
list functions -p project_name; --查看指定项目空间下所有函数

SET操作

用于设置MaxCompute或用户自定义的系统变量,key和value都应使用小写。

set <KEY>=<VALUE>

MaxCompute系统变量参考:
https://help.aliyun.com/document_detail/96004.html?spm=a2c4g.11186623.2.11.6450482b13yGj1

此外,还可以通过如下命令查看当前项目空间下的系统变量:

show flags;

时区配置操作

时区配置的方式

MaxCompute Project时区默认是中国的东八区。可以通过以下两种方式进行时区的配置:

  • Session级别

    set odps.sql.timezone=<timezoneid>;
    

    将以上语句与计算语句一同提交即可。

  • Project级别

    setProject odps.sql.timezone=<timezoneid>;
    

    该命令需要由项目空间Owner执行,建议只对新增的Project进行设置,不建议对已有数据的Project进行设置。

使用限制及注意事项

参考https://help.aliyun.com/document_detail/123278.html?spm=a2c4g.11186623.2.13.5736740dpluPOn

ps:这玩意一般都用不上。

其它操作

Alias命令

为资源创建别名。

alias <alias>=<real>;

计量预估(Cost SQL命令)

预估出一条SQL的计量信息,包含输入数据的大小、UDF个数以及SQL复杂等级。

cost sql <SQL Sentence>;