ALIAS 命令

ALIAS功能主要为了满足在不修改代码的前提下,在MapReduce自定义函数(UDF) 代码中,通过某个固定的资源名读取不同资源(数据)的需求。

命令格式如下:
ALIAS <alias>=<real>;

行为说明如下:

为资源创建别名。

示例如下:
ADD TABLE src_part PARTITION (ds='20121208') AS res_20121208;
ADD TABLE src_part PARTITION (ds='20121209') AS res_20121209;
ALIAS resName=res_20121208;
jar -resources resName -libjars work.jar  -classpath ./work.jar com.company.MainClass args ...;  // 作业一
ALIAS resName=res_20121209;
jar -resources resName -libjars work.jar  -classpath ./work.jar com.company.MainClass args ...; // 作业二
上面的资源别名 resName在两个作业里引用到不同的资源表,代码可以不做修改也能读取到不同的数据。

Set

命令格式如下:
set [<KEY>=<VALUE>]

行为说明如下:

您可以使用set命令设置MaxCompute或用户自定义的系统变量影响MaxCompute的行为。

目前,MaxCompute支持的系统变量,如下所示:
--MaxCompute  SQL及新版本Mapreduce支持的Set命令
set odps.sql.allow.fullscan=false/true  --设置是否允许对分区表进行全表扫描,false不允许,true为允许。
set odps.stage.mapper.mem=    --设置每个map worker的内存大小,单位是M,默认值1024M
set odps.stage.reducer.mem=   --设置每个reduce worker的内存大小,单位是M,默认值1024M
set odps.stage.joiner.mem=    --设置每个join worker的内存大小,单位是M,默认值1024M
set odps.stage.mem =
    --设置MaxCompute 指定任务下所有worker的内存大小。优先级低于以上三个set key,单位M,无默认值
set odps.stage.mapper.split.size=
    -- 修改每个map worker的输入数据量,即输入文件的分片大小,
    -- 从而间接控制每个map阶段下worker的数量,单位M,默认值256M
set odps.stage.reducer.num=    --修改每个reduce阶段worker数量,无默认值。
set odps.stage.joiner.num=    --修改每个join阶段worker数量,无默认值。
set odps.stage.num=           --修改MaxCompute 指定任务的所有阶段的worker的并发度,优先级低于以上三者,无默认值。
set odps.sql.type.system.odps2=true/false;   -- 默认为false,SQL(Create、select、insert等操作)中涉及到新数据类型(TINYINT、SMALLINT、 INT、 FLOAT、VARCHAR、TIMESTAMP BINARY)时需要设置为true。

Show Flags

命令格式如下:
show flags; --显示Set设置的参数

行为说明如下:

运行Use Project命令会清除掉Set命令设置的配置。

SetProject

命令格式如下:
setproject [<KEY>=<VALUE>];

行为说明如下:

  • 您可以使用setproject命令设置Project属性。
  • 当不指定<KEY>=<VALUE>时,显示当前Project的属性配置。命令格式如下:
    setproject; --显示setproject设置的参数
Project属性的详细说明如下:
属性名称 设置权限 属性描述 取值范围
odps.sql.allow.fullscan ProjectOwner 项目是否允许全表扫描 true(允许)/false(禁止)
odps.table.drop.ignorenonexistent 所有用户 当删除不存在的表时,是否报错。true时不报错 true(不报错)/false
odps.security.ip.whitelist ProjectOwner 指定访问Project的IP白名单 ip列表,逗号分隔
odps.table.lifecycle ProjectOwner optional:创建表时,lifecycle子句为可选,如果用户不设置 生命周期,则此表永久有效;mandatory:lifecycle子句为必 选;inherit:如果用户不指定生命周期,该表的生命周期为 odps.table.lifecycle.value的值; optional /mandatory/inherit
odps.table.lifecycle.value ProjectOwner 默认的生命周期值 1 ~ 37231(默认)
odps.instance.remain.days ProjectOwner Instance信息保留时间 3 ~ 30
READ_TABLE_MAX_ROW ProjectOwner Select语句返回给客户端的数据条数 1~10000

odps.security.ip.whitelist示例

MaxCompute支持Project级别的IP白名单。
说明
  • 设置IP白名单后,只有白名单列表中的IP(console或者SDK所在的出口IP)能够访问这个Project。
  • 设置IP白名单后,您需要等待五分钟后才会生效。
白名单中IP列表的表示格式有三种:
  • 单纯IP:例如101.132.236.134。
  • 子网掩码:100.116.0.0/16。
  • 网段:101.132.236.134-101.132.236.144。

这三种格式可以写在同一个命令中,用逗号分割。

例如命令行工具设置IP白名单的方法:
setproject odps.security.ip.whitelist=101.132.236.134,100.116.0.0/16,101.132.236.134-101.132.236.144;
IP白名单清空后MaxCompute就认为Project关闭了白名单功能。
setproject odps.security.ip.whitelist=;

计量预估(Cost SQL命令)

命令格式如下:
cost sql <SQL Sentence>;

行为说明如下

预估出一条SQL的计量信息,包含输入数据的大小、UDF个数以及SQL复杂等级。
说明
该信息不能够作为实际计费标准,仅具有参考意义。
示例如下:
odps@ $odps_project >cost sql select distinct project_name, user_name from meta.m_security_users distribute by project_name sort by project_name;  
ID = 20150715113033121gmsbjxl1
Input:65727592 Bytes
UDF:0
Complexity:1.0