hive创建唯一标识列(自增id)

这篇具有很好参考价值的文章主要介绍了hive创建唯一标识列(自增id)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一、需求

二、方法

1.row_number()

2.UUID

3.row_sequence()

三、对比


一、需求

在某一张 hive 表中需要有一列去唯一标识某一行,有些类似于MySQL中的自增ID

二、方法

1.row_number()

select row_number() OVER(ORDER BY RAND()) from table;

2.UUID

SELECT regexp_replace(reflect("java.util.UUID", "randomUUID"), "-", "") AS uniqe_id
from table;

3.row_sequence()

使用UDF函数row_sequence(),必须在Hive环境要有hive-contrib相关jar包

create temporary function row_sequence as 'org.apache.hadoop.hive.contrib.udf.UDFRowSequence';

执行查询语句

select row_sequence() from table;

三、对比

row_number函数是对整个数据集做处理,自增序列在当次排序中是连续的唯一的,使用 row_number() 容易发生数据倾斜;

使用UUID的方式可以解决数据倾斜,如果在hive表中null的值过多,也可以使用UUID的方法给null赋值,解决数据倾斜的问题;

UDF函数row_sequence()是按照任务排序,但是一个SQL可能并发执行的job不止一个,而每个job都会从1开始各自排序,不能保证序号全局唯一。文章来源地址https://www.toymoban.com/news/detail-619891.html

到了这里,关于hive创建唯一标识列(自增id)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Vue中使用uuid生成唯一ID(脚手架创建自带的)

    说明:一般封装工具函数。 说明: 本人使用的是detail组件中的仓库。

    2024年02月13日
    浏览(36)
  • Android设备的各种唯一标识符 ID

    只有Android手机才有, IMEI号是一串15位的号码,比如像这样 359881030314356 需要权限 android.permission.READ_PHONE_STATE 通常用户会因为你向他们要了这个权限而给你一个差评,因为他们觉得你就是在窃取他们的隐私,很明显,你就是在收集一些数据 这个是不靠谱的,因为有时候它是

    2024年02月11日
    浏览(39)
  • 安卓唯一标识:IMEI,MEID,MAC地址,Android_id,UUID,OAID

    目录 IMEI: MEID: MAC地址: Android_id: UUID: OAID: 安卓设备的唯一标识,获取的目的在于数据统计,广告归因分析等用途。常用作唯一标识的有IMEI,MEID,MAC地址,Android_id,UUID,OAID等。 国际移动设备识别码 (International Mobile Equipment Identity,IMEI),即通常所说的手机序列号

    2024年02月16日
    浏览(39)
  • pgsql 创建自增ID , 指定自增ID起始值

    1. 创建序列: 2. 将序列与表的列关联: 3. 设置序列的起始值、递增步长和最大值 其他 用以下命令查看当前序列的值: 使用nextval函数可以返回下一个最新的序列值,并使序列递增。

    2024年02月02日
    浏览(23)
  • 【数据库】自增ID有什么坏处?什么样的场景下不使用自增ID?

    在MySQL中,数据表的主键一般采用id字段自增的形式。使用自增ID给我们带来不少便捷,但也有不少坏处,在一些场景下是不推荐使用自增ID的。 自增ID是在设计表时将id字段的值设置为自增的形式,这样当插入一行数据时无需指定id会自动根据前一字段的ID值+1进行填充。在My

    2024年02月07日
    浏览(29)
  • 微信小程序中使用UUID创建唯一标识

    1,在小程序根目录下的utils文件夹创建一个名为uuid.js文件,将下列代码粘贴上去: const uuid = function () {   var s = [];   var hexDigits = \\\"0123456789abcdef\\\";   for (var i = 0; i  36; i++) {     s[i] = hexDigits.substr(Math.floor(Math.random() * 0x10), 1);   }   s[14] = \\\"4\\\";    s[19] 

    2024年02月04日
    浏览(32)
  • Navicat Premium创建表设置id自增

    我们在使用Navicat Premium的时候创建表时左下角没有id自增选项的 那怎么才能实现id自增呢    nextval(\\\'tooksto\\\'::regclass)

    2024年02月15日
    浏览(25)
  • 使用序列(Sequence)在 Oracle 数据库中管理唯一标识符

    目录 1. 创建序列 2. 使用序列生成唯一值 3. 序列的常见应用场景 结论 简介: 在 Oracle 数据库中,序列(Sequence)是一种强大的工具,用于生成唯一的数值标识符。序列提供了一种简单而高效的方式来管理表的主键或其他需要唯一值的列。本文将介绍 Oracle 中序列的用法,包括

    2024年02月05日
    浏览(34)
  • SQL PRIMARY KEY 约束- 唯一标识表中记录的关键约束

    SQL NOT NULL 约束用于强制确保列不接受 NULL 值。这意味着该字段始终包含一个值,而不允许插入新记录或更新记录时不提供此字段的值。 以下 SQL 确保在创建 \\\"Persons\\\" 表时,“ID”、“LastName” 和 “FirstName” 列将不接受 NULL 值: 要在已创建的 \\\"Persons\\\" 表上的 \\\"Age\\\" 列上创建 NOT

    2024年02月05日
    浏览(40)
  • C# 生成唯一ID

    1.首先通过nuget安装yitter.idgenerator     下面的三行代码搞定  

    2024年02月11日
    浏览(24)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包