MaxCompute SQL Row_Sequence 实现列自增长
效果如下:
select row_sequence() from user_info;
实现思路:数仓SQL不支持这种auto-increment id,但可以通过UDF来给海量数据的每一行产生唯一的id。
准备工作:
1、开通大数据开发套件、MaxCompute服务。
2、配置Eclipse环境。
通过Eclipse创建UDF:
1、新建Row_Sequence.java,代码如下
package com.aliyun.odps.examples.udf;
import com.aliyun.odps.io.LongWritable;
import com.aliyun.odps.udf.UDF;
public class Row_Sequence extends UDF {
private LongWritable result = new LongWritable();
public Row_Sequence () {
result.set(0);
}
public String evaluate() {
result.set(result.get() + 1);
return result.toString();
}
}
通过大数据开发套件注册函数
1、通过大数据开发数据开发->资源管理,上传Row_Sequence.JAR资源。
2、通过大数据开发数据开发->函数管理,注册row_sequence函数。
通过大数据开发套件验证
1、通过SQL查询结果
select row_sequence() from user_info;

最后更新:2017-07-07 11:32:11