【技术实现步骤摘要】
数据行号分配方法和装置、存储介质、电子设备
本公开涉及数据处理技术,尤其是一种数据行号分配方法和装置、存储介质、电子设备。
技术介绍
Hadoop生态中,数据是存储在HDFS上的。hive数据仓库工具将数据以数据表的形式组织起来。HiveSQL中包含了对数据生成行号的函数ROW_NUMBEROVER()。但是受到集群节点单机内存大小的限制,这个函数只有在针对百万级别行(小于千万级别)以内的数据量时才具有较高的效果。对于亿级别行及以上的数据使用该函数生成全局连续唯一数字ID时,会发生严重的数据倾斜,效率极低或根本无法得到结果。
技术实现思路
为了解决上述技术问题,提出了本公开。本公开的实施例提供了一种数据行号分配方法和装置、存储介质、电子设备。根据本公开实施例的一个方面,提供了一种数据行号分配方法,包括:将待分配行号的数据集分解为n个子数据集,并确定所述n个子数据集之间的关联数据;其中,n为大于1的整数,所述数据集包括多行数据,每个所述子数据集包括所述数据集中的部分数据;分别为每个所 ...
【技术保护点】
1.一种数据行号分配方法,其特征在于,包括:/n将待分配行号的数据集分解为n个子数据集,并确定所述n个子数据集之间的关联数据;其中,n为大于1的整数,所述数据集包括多行数据,每个所述子数据集包括所述数据集中的部分数据;/n分别为每个所述子数据集中包括的多行数据分配第一行号,得到n组第一行号;其中,所述每行数据对应一个第一行号;/n根据所述关联数据和所述n组第一行号,得到所述数据集中所有数据中每行数据对应的第二行号,实现对所述数据集的数据行号分配。/n
【技术特征摘要】
1.一种数据行号分配方法,其特征在于,包括:
将待分配行号的数据集分解为n个子数据集,并确定所述n个子数据集之间的关联数据;其中,n为大于1的整数,所述数据集包括多行数据,每个所述子数据集包括所述数据集中的部分数据;
分别为每个所述子数据集中包括的多行数据分配第一行号,得到n组第一行号;其中,所述每行数据对应一个第一行号;
根据所述关联数据和所述n组第一行号,得到所述数据集中所有数据中每行数据对应的第二行号,实现对所述数据集的数据行号分配。
2.根据权利要求1所述的方法,其特征在于,所述将待分配行号的数据集分解为n个子数据集,并确定所述n个子数据集之间的关联数据,包括:
基于所述每行数据中的标识列,将所述数据集分解为n个子数据集;
基于所述每个子数据集中的数据行数确定每两个所述子数据集之间的关联数据,得到n-1个关联数据。
3.根据权利要求2所述的方法,其特征在于,所述基于所述每个子数据集中的数据行数确定每两个所述子数据集之间的关联数据,得到n-1个关联数据,包括:
利用行号生成函数分别对每个所述子数据集中的数据进行处理,得到每个所述子数据集对应的正序列和反序列;其中,所述反序列是正序列的倒置;
基于每个所述子数据集中的正序列和反序列,确定多个所述子数据集之间的排序关系;
基于多个所述子数据集之间的排序关系,确定每两个相邻的所述子数据集之间的关联数据。
4.根据权利要求3所述的方法,其特征在于,所述基于每个所述子数据集中的正序列和反序列,确定多个所述子数据集之间的排序关系,包括:
获取每个所述子数据集中按照所述正序列排列在首位的第一数据,得到n个所述第一数据;
基于n个所述第一数据对应所述反序列的值的大小,对所述n个第一数据对应的n个所述子数据集进行排序。
5.根据权利要求4所述的方法,其特征在于,所述基于多个所述子数据集之间的排序关系,确定每两个相邻的所述子数据集之间的关联数据,包括:
基于每个所述子数据集对应的反序列的首位数值,确定每个所述子数据集中包括的数据行数;
基于每个所述子数据集中包括的数据行数,确定每两个相邻的所述子数据集之间的关联数据。
6.根据权利要求5所述的方法,其特...
【专利技术属性】
技术研发人员:侯学博,张京一,周潮潮,
申请(专利权)人:贝壳技术有限公司,
类型:发明
国别省市:天津;12
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。