Hive中生成隨機唯一標識ID的方法


HIVE中處理的數據往往比較多,在處理數據的時候希望給處理得到的數據一個ID標識,這時候可以用到UUID。

UUID的算法的核心思想是結合機器的網卡、當地時間、一個隨即數來生成UUID。從理論上講,如果一台機器每秒產生10000000個UUID,則可以保證(概率意義上)3240年不重復。UUID 的目的,是讓分布式系統中的所有元素,都能有唯一的標識,而不需要透過中央控制端來做標識。如此一來,每個人都可以建立不與其它人沖突的UUID。在這樣的情況下,就不需考慮數據標識建立時的名稱重復問題。

產生形如下數據: 
690044a7-1400-4f2e-8003-4df850f21ac2 
0eea4f29-6e80-4d8e-a7ce-5d4ea5f0e882 
869d23f8-fe44-4d71-9c5b-3d94b1892f48

在HQL中可以這么寫:

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

將其中的‘-’清除掉,得到所要的唯一ID。缺點就是比較長。


免責聲明!

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



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