閱讀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  中國-世界上最大的物聯網市場