2019獨角獸企業重金招聘Python工程師標準>>>
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
- 1
將其中的‘-’清除掉,得到所要的唯一ID。缺點就是比較長。