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为允许。
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= -- 默认为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属性。
例如,以下示例是设置允许全表扫描的方法。
setproject odps.sql.allow.fullscan = true;
- 当不指定<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:例如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