阅读480 返回首页    go 阿里云 go 技术社区[云栖]


MaxCompute SQL Row_Sequence 实现列自增长

效果如下:

select  row_sequence() from user_info;

3a61de5598e5a1458859c65fc5b2eb301ee9373f

实现思路:数仓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();
    }
}


2、导出为Row_Sequence.JAR


4b8df735c1b1c80d52fda8230b39c18a5f9beea2

通过大数据开发套件注册函数


1、通过大数据开发数据开发->资源管理,上传Row_Sequence.JAR资源。

2、通过大数据开发数据开发->函数管理,注册row_sequence函数。


通过大数据开发套件验证


1、通过SQL查询结果


select row_sequence()  from user_info;

3a61de5598e5a1458859c65fc5b2eb301ee9373f

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

  上一篇:go  最完整网狐棋牌源码编译、搭建教程
  下一篇:go  中国-世界上最大的物联网市场