本文向您介绍如何使用Alias命令读取资源数据和使用计量预估(Cost SQL)命令预估SQL计量信息。

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在两个作业里引用到不同的资源表,代码可以不做修改也能读取到不同的数据。

计量预估(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 = 20150715113033121xxxxxxx
Input:65727592 Bytes
UDF:0
Complexity:1.0