Hive中生成随机唯一标识ID的方法
2019獨(dú)角獸企業(yè)重金招聘Python工程師標(biāo)準(zhǔn)>>>
HIVE中處理的數(shù)據(jù)往往比較多,在處理數(shù)據(jù)的時(shí)候希望給處理得到的數(shù)據(jù)一個(gè)ID標(biāo)識(shí),這時(shí)候可以用到UUID。
UUID的算法的核心思想是結(jié)合機(jī)器的網(wǎng)卡、當(dāng)?shù)貢r(shí)間、一個(gè)隨即數(shù)來(lái)生成UUID。從理論上講,如果一臺(tái)機(jī)器每秒產(chǎn)生10000000個(gè)UUID,則可以保證(概率意義上)3240年不重復(fù)。UUID 的目的,是讓分布式系統(tǒng)中的所有元素,都能有唯一的標(biāo)識(shí),而不需要透過(guò)中央控制端來(lái)做標(biāo)識(shí)。如此一來(lái),每個(gè)人都可以建立不與其它人沖突的UUID。在這樣的情況下,就不需考慮數(shù)據(jù)標(biāo)識(shí)建立時(shí)的名稱(chēng)重復(fù)問(wèn)題。
產(chǎn)生形如下數(shù)據(jù):
690044a7-1400-4f2e-8003-4df850f21ac2
0eea4f29-6e80-4d8e-a7ce-5d4ea5f0e882
869d23f8-fe44-4d71-9c5b-3d94b1892f48
在HQL中可以這么寫(xiě):
regexp_replace(reflect("java.util.UUID", "randomUUID"), "-", "")- 1
- 1
將其中的‘-’清除掉,得到所要的唯一ID。缺點(diǎn)就是比較長(zhǎng)。
轉(zhuǎn)載于:https://my.oschina.net/sniperLi/blog/751920
總結(jié)
以上是生活随笔為你收集整理的Hive中生成随机唯一标识ID的方法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 以己为壑
- 下一篇: 可视化数据包分析工具-CapAnalys