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。缺点就是比较长。

转载于:https://www.cnblogs.com/fujian-code/p/8795585.html

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值