Hive表創建唯一值和唯一標識


需求:在某一張 hive 表中需要有一列值,作為唯一標識,有些類似於MySQL中的自增ID,(唯一標識取別名時,盡量不要表中現有字段重名)

方法一,唯一標識:

select regexp_replace(reflect("java.util.UUID", "randomUUID"), "-", "")   

 

 也可以正常的 不去掉中間的小“-”線

select reflect("java.util.UUID", "randomUUID")

 

 

方法二,自增值

select row_number() OVER(ORDER BY RAND()) AS sample_key

 

兩種方法對比:使用 row_number() 容易發生數據傾斜
使用UUID的方式可以解決數據傾斜,如果在hive表中null的值過多,也可以使用UUID的方法給null賦值,解決數據傾斜的問題


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM