CN112817976B - 一种id生成方法、***、计算机及可读指令存储介质 - Google Patents
一种id生成方法、***、计算机及可读指令存储介质 Download PDFInfo
- Publication number
- CN112817976B CN112817976B CN202110101680.6A CN202110101680A CN112817976B CN 112817976 B CN112817976 B CN 112817976B CN 202110101680 A CN202110101680 A CN 202110101680A CN 112817976 B CN112817976 B CN 112817976B
- Authority
- CN
- China
- Prior art keywords
- factor
- record
- generation factor
- generated
- generation
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 44
- 238000004364 calculation method Methods 0.000 claims abstract description 23
- 238000005192 partition Methods 0.000 claims description 104
- 102000015097 RNA Splicing Factors Human genes 0.000 abstract 1
- 108010039259 RNA Splicing Factors Proteins 0.000 abstract 1
- 238000010586 diagram Methods 0.000 description 13
- 230000003287 optical effect Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 3
- 230000006872 improvement Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 238000003491 array Methods 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 238000004590 computer program Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2291—User-Defined Types; Storage management thereof
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明属于互联网技术领域,具体涉及一种ID生成方法、***、计算机及可读指令存储介质。包括:通过获取待生成ID的记录的第一ID生成因子;通过获取待生成ID的记录第二ID生成因子;根据第一ID生成因子和第二ID生成因子,得到第三ID生成因子,根据第一ID生成因子和所述第二ID生成因子,按照第一预设规则计算得到第四ID生成因子,将第一ID生成因子、第二ID生成因子、第三ID生成因子以及第四ID生成因子按照预设规则进行拼接得到拼接结果,将所生成的拼接结果确定为目标ID。具有简单易用,在大量数据计算当中支持分布式生成唯一ID,以方便后续计算。
Description
技术领域
本发明属于互联网技术领域,具体涉及一种ID生成方法、***、计算机及可读指令存储介质。
背景技术
在大数据场景中,计算引擎(Spark)是最常用的大数据开发框架,专用于进行大数据的处理。Spark提供了大量的库,包括Spark Core、Spark SQL、Spark Streaming、MLlib、GraphX。开发者可以在同一个应用程序中无缝组合使用这些库。在某些场景下,需要在数据处理的过程中需要给每条数据生成唯一的ID,在传统开发中,生成全局唯一ID是通过数据库或者其他第三方开源库的方式,而在spark中,自身带有一个基于OpenHashMap的ID生成器,但是只在单机的场景下有效,分布式场景下是没办法的,但是如果数据量极大,达到亿级或者也百亿级别,那单机就存在内存不足的情况,所以在大数据场景下,依赖数据库,第三方库,或者单机方式生成ID的方式都不太可取
发明内容
为了解决现有技术存在的问题,本发明实施例提供以下技术方案:
第一方面,一种ID生成方法,包括:
获取待生成ID的记录的第一ID生成因子;其中,所述第一ID生成因子为待生成ID的记录在Spark中所在分区编号的索引值;
获取待生成ID的记录第二ID生成因子;其中,所述第二ID生成因子为所述待生成ID的记录所在分区的总记录数;
根据所述第一ID生成因子和所述第二ID生成因子,得到第三ID生成因子,所述第三ID生成因子为所述待生成ID的记录在Spark中所在分区的位置;
根据所述第一ID生成因子和所述第二ID生成因子,按照第一预设规则计算得到第四ID生成因子,所述第四ID生成因子为所述待生成ID的记录所在分区的第一行在总记录中的位置;
将所述第一ID生成因子、所述第二ID生成因子、所述第三ID生成因子以及所述第四ID生成因子按照预设规则进行拼接得到拼接结果,将所生成的拼接结果确定为目标ID。
进一步地,所述获取待生成ID的记录的第一ID生成因子,包括:
获取待计算的任务的数据量信息以及预设分区数量的信息;
根据所述待计算的任务数量信息以及所述预设分区数量的信息,得到所述第一ID生成因子。
进一步地,所述获取待生成ID的记录第二ID生成因子,包括:
获取待计算的任务的数据量信息以及预设分区数量的信息;
根据所述待计算的任务数量信息以及所述预设分区数量的信息,得到所述第二ID生成因子。
进一步地,所述根据所述第一ID生成因子和所述第二ID生成因子,得到第三ID生成因子,包括:通过spark的mapPartition方法得到第三ID生成因子。
进一步地,所述根据所述第一ID生成因子和所述第二ID生成因子,按照第一预设规则计算得到第四ID生成因子,包括:
获取所述待生成ID的记录所在分区之前的索引值;
获取所述待生成ID的记录所在分区之前的索引值对应分区的总记录数;
将所述待生成ID的记录所在分区之前的索引值对应分区的总记录数依次相加后减1,得到所述第四ID生成因子。
第二方面,一种ID生成***,包括:
获取第一ID生成因子单元,用于获取待生成ID的记录的第一ID生成因子;其中,所述第一ID生成因子为待生成ID的记录在Spark中所在分区编号的索引值;
获取第二ID生成因子单元,用于获取待生成ID的记录第二ID生成因子;其中,所述第二ID生成因子为所述待生成ID的记录所在分区的总记录数;
第三ID生成因子计算模块,用于根据所述第一ID生成因子和所述第二ID生成因子,得到第三ID生成因子,所述第三ID生成因子为所述待生成ID的记录在Spark中所在分区的位置;
第四ID生成因子计算单元,用于根据所述第一ID生成因子和所述第二ID生成因子,按照第一预设规则计算得到第四ID生成因子,所述第四ID生成因子为所述待生成ID的记录所在分区的第一行在总记录中的位置;
目标ID生成单元,用于将所述第一ID生成因子、所述第二ID生成因子、所述第三ID生成因子以及所述第四ID生成因子按照预设规则进行拼接得到拼接结果,将所生成的拼接结果确定为目标ID。
进一步地,所述获取第一ID生成因子单元包括:
第一读取模块,用于获取待计算的任务的数据量信息以及预设分区数量的信息;
第一计算模块,用于根据所述待计算的任务数量信息以及所述预设分区数量的信息,得到所述第一ID生成因子。
进一步地,所述获取第二ID生成因子单元包括:
第二读取模块,用于获取待计算的任务的数据量信息以及预设分区数量的信息;
第二计算模块,用于根据所述待计算的任务数量信息以及所述预设分区数量的信息,得到所述第二ID生成因子。
第三方面,一种计算机,包括存储器和处理器,所述存储器中存储有计算机可读指令,所述计算机可读指令被所述处理器执行时,使得所述处理器执行如权利要求1至5中任一项所述方法的步骤。
第四方面,一种存储有计算机可读指令存储介质,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行如权利要求1至5中任一项所述方法的步骤。
本发明实施例提供的一种ID生成方法、***、计算机及可读指令存储介质,包括:通过获取待生成ID的记录的第一ID生成因子;其中,所述第一ID生成因子为待生成ID的记录在Spark中所在分区编号的索引值;通过获取待生成ID的记录第二ID生成因子;其中,所述第二ID生成因子为所述待生成ID的记录所在分区的总记录数;根据所述第一ID生成因子和所述第二ID生成因子,得到第三ID生成因子,所述第三ID生成因子为所述待生成ID的记录在Spark中所在分区的位置;根据所述第一ID生成因子和所述第二ID生成因子,按照第一预设规则计算得到第四ID生成因子,所述第四ID生成因子为所述待生成ID的记录所在分区的第一行在总记录中的位置;将所述第一ID生成因子、所述第二ID生成因子、所述第三ID生成因子以及所述第四ID生成因子按照预设规则进行拼接得到拼接结果,将所生成的拼接结果确定为目标ID。具有简单易用,在大量数据计算当中支持分布式生成唯一ID,以方便后续计算。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例中一种ID生成方法示意图。
图2是本发明另一个实施例中一种ID生成方法示意图。
图3是本发明另一个实施例中一种ID生成方法示意图。
图4是本发明一个实施例中第四ID生成因子步骤示意图。
图5是本发明一个实施例中一种ID生成***结构示意图。
图6是本发明一个实施例中获取第一ID生成因子单元结构示意图。
图7是本发明一个实施例中获取第二ID生成因子单元结构示意图。
附图标记:
1-获取第一ID生成因子单元;1-1-第一读取模块;1-2-第一计算模块;
2-获取第二ID生成因子单元;2-1-第二读取模块;2-2-第二计算模块;3-第三ID生成因子计算模块;4-第四ID生成因子计算单元;5-目标ID生成单元。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将对本发明的技术方案进行详细的描述。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所得到的所有其它实施方式,都属于本发明所保护的范围。
图1是本申请实施例提供的一种ID生成方法的示意图,本实施例可适用于分布式集群环境中ID生成的情况,该方法是基于在大数据场景中计算引擎(Spark)而开发的,该方法可以由本申请实施例提供的一种ID生成***来执行,该***可以由软件和/或硬件的方式来实现,并可以集成于分布式集群中的电子设备中。
如图1所示,包括:
步骤S101、获取待生成ID的记录的第一ID生成因子;其中,所述第一ID生成因子为待生成ID的记录在Spark中所在分区编号的索引值;
步骤S102、获取待生成ID的记录第二ID生成因子;其中,所述第二ID生成因子为所述待生成ID的记录所在分区的总记录数;
其中,第一ID生成因子和第二ID生成因子可以来源于一个现有的数据文件。Spark通过读取该数据文件获取第一ID生成因子和第二ID生成因子,其中,第一ID生成因子为待生成ID的记录在Spark中所在分区编号的索引值;第二ID生成因子为所述待生成ID的记录所在分区的总记录数。
步骤S103、根据所述第一ID生成因子和所述第二ID生成因子,得到第三ID生成因子,所述第三ID生成因子为所述待生成ID的记录在Spark中所在分区的位置;
步骤S104、根据所述第一ID生成因子和所述第二ID生成因子,按照第一预设规则计算得到第四ID生成因子,所述第四ID生成因子为所述待生成ID的记录所在分区的第一行在总记录中的位置;
步骤S105、将所述第一ID生成因子、所述第二ID生成因子、所述第三ID生成因子以及所述第四ID生成因子按照预设规则进行拼接得到拼接结果,将所生成的拼接结果确定为目标ID。
本发明实施例提供的一种ID生成方法包括:通过获取待生成ID的记录的第一ID生成因子;即待生成ID的记录在Spark中所在分区编号的索引值;通过获取待生成ID的记录第二ID生成因子;即待生成ID的记录所在分区的总记录数;根据第一ID生成因子和第二ID生成因子,得到第三ID生成因子,第三ID生成因子为所述待生成ID的记录在Spark中所在分区的位置;根据第一ID生成因子和所述第二ID生成因子,按照第一预设规则计算得到第四ID生成因子,第四ID生成因子为待生成ID的记录所在分区的第一行在总记录中的位置;将第一ID生成因子、第二ID生成因子、第三ID生成因子以及第四ID生成因子按照预设规则进行拼接得到拼接结果,将所生成的拼接结果确定为目标ID。具有简单易用,在大量数据计算当中支持分布式生成唯一ID,以方便后续计算。
作为上述实施例的进一步改进,本发明还提供了另一个实施例,如图2所示,为本发明另一个实施例中一种ID生成方法示意图,
步骤201、获取待计算的任务的数据量信息以及预设分区数量的信息;
步骤202、根据所述待计算的任务数量信息以及所述预设分区数量的信息,得到所述第一ID生成因子。
步骤S203、获取待生成ID的记录第二ID生成因子;其中,所述第二ID生成因子为所述待生成ID的记录所在分区的总记录数;
步骤S204、根据所述第一ID生成因子和所述第二ID生成因子,得到第三ID生成因子,所述第三ID生成因子为所述待生成ID的记录在Spark中所在分区的位置;
步骤S205、根据所述第一ID生成因子和所述第二ID生成因子,按照第一预设规则计算得到第四ID生成因子,所述第四ID生成因子为所述待生成ID的记录所在分区的第一行在总记录中的位置;
步骤S206、将所述第一ID生成因子、所述第二ID生成因子、所述第三ID生成因子以及所述第四ID生成因子按照预设规则进行拼接得到拼接结果,将所生成的拼接结果确定为目标ID。
作为上述方法的进一步改进,本发明还提供了另一个实施例,如图3所示,为本发明另一个实施例中一种ID生成方法示意图,
步骤S301、获取待生成ID的记录的第一ID生成因子;其中,所述第一ID生成因子为待生成ID的记录在Spark中所在分区编号的索引值;
步骤302、获取待计算的任务的数据量信息以及预设分区数量的信息;
步骤303、根据所述待计算的任务数量信息以及所述预设分区数量的信息,得到所述第二ID生成因子。
步骤S304、根据所述第一ID生成因子和所述第二ID生成因子,得到第三ID生成因子,所述第三ID生成因子为所述待生成ID的记录在Spark中所在分区的位置;
步骤S305、根据所述第一ID生成因子和所述第二ID生成因子,按照第一预设规则计算得到第四ID生成因子,所述第四ID生成因子为所述待生成ID的记录所在分区的第一行在总记录中的位置;
步骤S306、将所述第一ID生成因子、所述第二ID生成因子、所述第三ID生成因子以及所述第四ID生成因子按照预设规则进行拼接得到拼接结果,将所生成的拼接结果确定为目标ID。
一些实施例中,根据第一ID生成因子和所述第二ID生成因子,得到第三ID生成因子,包括:通过spark的mapPartition方法得到第三ID生成因子。
在本实施例中,可选的,如图4所示,为本发明另一个实施例中第四ID生成因子步骤示意图,
步骤401、获取所述待生成ID的记录所在分区之前的索引值;
步骤402、获取所述待生成ID的记录所在分区之前的索引值对应分区的总记录数;
步骤403、将所述待生成ID的记录所在分区之前的索引值对应分区的总记录数依次相加后减1,得到所述第四ID生成因子。
在一个实施例中,可选地,待生成ID的记录所在分区之前的索引值记为index,待生成ID的记录所在分区之前的索引值对应分区的总记录数记为size[index],那么,根据start[index]=size[1]+...+size[index-1]+1,比如,某条记录在分区1,分区1的总记录数是10,可以这样表示index=1,size[1]=10。那么,第四ID生成因子为start[1]=size[1-1]+1=1。
为了便于理解,比如:
假设分区1有3行,按顺序每行记录为A,B,C;分区2有4行,按顺序每行记录为D,E,F,G;则
分区1:index=1;size[1]=3;start[1]=1
分区2:index=2;size[2]=4;start[2]=size[2-1]=size[1]=3+1=4
经过计算得到唯一ID:
A=start[1]+1-1=1
B=start[1]+2-1=2
C=start[1]+3-1=3
D=start[2]+1-1=4
E=start[2]+2-1=5
F=start[2]+3-1=6
F=start[2]+4-1=7
本发明所提供的是实施例,通过获取待生成ID的记录的第一ID生成因子;即待生成ID的记录在Spark中所在分区编号的索引值;通过获取待生成ID的记录第二ID生成因子;即待生成ID的记录所在分区的总记录数;根据第一ID生成因子和第二ID生成因子,得到第三ID生成因子,第三ID生成因子为所述待生成ID的记录在Spark中所在分区的位置;根据第一ID生成因子和所述第二ID生成因子,按照第一预设规则计算得到第四ID生成因子,第四ID生成因子为待生成ID的记录所在分区的第一行在总记录中的位置;将第一ID生成因子、第二ID生成因子、第三ID生成因子以及第四ID生成因子按照预设规则进行拼接得到拼接结果,将所生成的拼接结果确定为目标ID。具有简单易用,在大量数据计算当中支持分布式生成唯一ID,以方便后续计算。
如图5所示,本发明实施例还提供一种ID生成***结构图示意图,包括:
获取第一ID生成因子单元1,用于获取待生成ID的记录的第一ID生成因子;其中,所述第一ID生成因子为待生成ID的记录在Spark中所在分区编号的索引值;
获取第二ID生成因子单元2,用于获取待生成ID的记录第二ID生成因子;其中,所述第二ID生成因子为所述待生成ID的记录所在分区的总记录数;
第三ID生成因子计算模块3,用于根据所述第一ID生成因子和所述第二ID生成因子,得到第三ID生成因子,所述第三ID生成因子为所述待生成ID的记录在Spark中所在分区的位置;
第四ID生成因子计算单元4,用于根据所述第一ID生成因子和所述第二ID生成因子,按照第一预设规则计算得到第四ID生成因子,所述第四ID生成因子为所述待生成ID的记录所在分区的第一行在总记录中的位置;
目标ID生成单元5,用于将所述第一ID生成因子、所述第二ID生成因子、所述第三ID生成因子以及所述第四ID生成因子按照预设规则进行拼接得到拼接结果,将所生成的拼接结果确定为目标ID。
作为上述***的进一步改进,一些实施例中,如图6所示为获取第一ID生成因子单元结构图;包括:
第一读取模块1-1,用于获取待计算的任务的数据量信息以及预设分区数量的信息;
第一计算模块1-2,用于根据所述待计算的任务数量信息以及所述预设分区数量的信息,得到所述第一ID生成因子。
一些实施例中,获取第二ID生成因子单元包括:
第二读取模块2-1,用于获取待计算的任务的数据量信息以及预设分区数量的信息;
第二计算模块2-2,用于根据所述待计算的任务数量信息以及所述预设分区数量的信息,得到所述第二ID生成因子。
本申请实施例还提供了一种存储有计算机可读指令存储介质,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行如上任一项所述方法的步骤。
该方法包括:
获取待生成ID的记录的第一ID生成因子;其中,所述第一ID生成因子为待生成ID的记录在Spark中所在分区编号的索引值;
获取待生成ID的记录第二ID生成因子;其中,所述第二ID生成因子为所述待生成ID的记录所在分区的总记录数;
根据所述第一ID生成因子和所述第二ID生成因子,得到第三ID生成因子,所述第三ID生成因子为所述待生成ID的记录在Spark中所在分区的位置;
根据所述第一ID生成因子和所述第二ID生成因子,按照第一预设规则计算得到第四ID生成因子,所述第四ID生成因子为所述待生成ID的记录所在分区的第一行在总记录中的位置;
将所述第一ID生成因子、所述第二ID生成因子、所述第三ID生成因子以及所述第四ID生成因子按照预设规则进行拼接得到拼接结果,将所生成的拼接结果确定为目标ID。
需要说明的是,本申请上述的计算机可读介质可以是计算机可读信号介质或者计算机可读介质或者是上述两者的任意组合。计算机可读介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。计算机可读介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行***、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、RF(射频)等等,或者上述的任意合适的组合。
上述计算机可读介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。
上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备执行。
本申请中,可以以一种或多种程序设计语言或其组合来编写用于执行本申请的操作的计算机程序代码,上述程序设计语言包括面向对象的程序设计语言-诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言-诸如“C”语言或类似的程序设计语言。程序代码可以完全地在乘客计算机上执行、部分地在乘客计算机上执行、作为一个独立的软件包执行、部分在乘客计算机上部分在远程计算机上执行、或者完全在远程计算机或电子设备上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)-连接到乘客计算机,或者,可以连接到外部计算机。
可以理解的是,上述各实施例中相同或相似部分可以相互参考,在一些实施例中未详细说明的内容可以参见其他实施例中相同或相似的内容。
需要说明的是,在本申请的描述中,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,在本申请的描述中,除非另有说明,“多个”的含义是指至少两个。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本申请的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本申请的实施例所属技术领域的技术人员所理解。
应当理解,本申请的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行***执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本申请各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
尽管上面已经示出和描述了本申请的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本申请的限制,本领域的普通技术人员在本申请的范围内可以对上述实施例进行变化、修改、替换和变型。
Claims (7)
1.一种ID生成方法,其特征在于,包括:
获取待生成ID的记录的第一ID生成因子;其中,所述第一ID生成因子为待生成ID的记录在Spark中所在分区编号的索引值;
获取待生成ID的记录第二ID生成因子;其中,所述第二ID生成因子为所述待生成ID的记录所在分区的总记录数;
根据所述第一ID生成因子和所述第二ID生成因子,得到第三ID生成因子,所述第三ID生成因子为所述待生成ID的记录在Spark中所在分区的位置;
根据所述第一ID生成因子和所述第二ID生成因子,按照第一预设规则计算得到第四ID生成因子,所述第四ID生成因子为所述待生成ID的记录所在分区的第一行在总记录中的位置;
将所述第一ID生成因子、所述第二ID生成因子、所述第三ID生成因子以及所述第四ID生成因子按照预设规则进行拼接得到拼接结果,将所生成的拼接结果确定为目标ID;
所述根据所述第一ID生成因子和所述第二ID生成因子,得到第三ID生成因子,包括:通过spark的mapPartition方法得到第三ID生成因子;
所述根据所述第一ID生成因子和所述第二ID生成因子,按照第一预设规则计算得到第四ID生成因子,包括:
获取所述待生成ID的记录所在分区之前的索引值;
获取所述待生成ID的记录所在分区之前的索引值对应分区的总记录数;
将所述待生成ID的记录所在分区之前的索引值对应分区的总记录数依次相加后减1,得到所述第四ID生成因子。
2.根据权利要求1所述的方法,其特征在于,所述获取待生成ID的记录的第一ID生成因子,包括:
获取待计算的任务的数据量信息以及预设分区数量的信息;
根据所述待计算的任务数量信息以及所述预设分区数量的信息,得到所述第一ID生成因子。
3.根据权利要求1所述的方法,其特征在于,所述获取待生成ID的记录第二ID生成因子,包括:
获取待计算的任务的数据量信息以及预设分区数量的信息;
根据所述待计算的任务数量信息以及所述预设分区数量的信息,得到所述第二ID生成因子。
4.一种ID生成***,其特征在于,包括:
获取第一ID生成因子单元,用于获取待生成ID的记录的第一ID生成因子;其中,所述第一ID生成因子为待生成ID的记录在Spark中所在分区编号的索引值;
获取第二ID生成因子单元,用于获取待生成ID的记录第二ID生成因子;其中,所述第二ID生成因子为所述待生成ID的记录所在分区的总记录数;
第三ID生成因子计算模块,用于根据所述第一ID生成因子和所述第二ID生成因子,得到第三ID生成因子,所述第三ID生成因子为所述待生成ID的记录在Spark中所在分区的位置;
所述根据所述第一ID生成因子和所述第二ID生成因子,得到第三ID生成因子,包括:通过spark的mapPartition方法得到第三ID生成因子;
第四ID生成因子计算单元,用于根据所述第一ID生成因子和所述第二ID生成因子,按照第一预设规则计算得到第四ID生成因子,所述第四ID生成因子为所述待生成ID的记录所在分区的第一行在总记录中的位置;
所述根据所述第一ID生成因子和所述第二ID生成因子,按照第一预设规则计算得到第四ID生成因子,包括:
获取所述待生成ID的记录所在分区之前的索引值;
获取所述待生成ID的记录所在分区之前的索引值对应分区的总记录数;
将所述待生成ID的记录所在分区之前的索引值对应分区的总记录数依次相加后减1,得到所述第四ID生成因子;
目标ID生成单元,用于将所述第一ID生成因子、所述第二ID生成因子、所述第三ID生成因子以及所述第四ID生成因子按照预设规则进行拼接得到拼接结果,将所生成的拼接结果确定为目标ID。
5.根据权利要求4所述的***,其特征在于,所述获取第一ID生成因子单元包括:
第一读取模块,用于获取待计算的任务的数据量信息以及预设分区数量的信息;
第一计算模块,用于根据所述待计算的任务数量信息以及所述预设分区数量的信息,得到所述第一ID生成因子。
6.根据权利要求4所述的***,其特征在于,所述获取第二ID生成因子单元包括:
第二读取模块,用于获取待计算的任务的数据量信息以及预设分区数量的信息;
第二计算模块,用于根据所述待计算的任务数量信息以及所述预设分区数量的信息,得到所述第二ID生成因子。
7.一种计算机,其特征在于,包括存储器和处理器,所述存储器中存储有计算机可读指令,所述计算机可读指令被所述处理器执行时,使得所述处理器执行如权利要求1至3中任一项所述方法的步骤;
一种存储有计算机可读指令存储介质,其特征在于,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行如权利要求1至3中任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110101680.6A CN112817976B (zh) | 2021-01-26 | 2021-01-26 | 一种id生成方法、***、计算机及可读指令存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110101680.6A CN112817976B (zh) | 2021-01-26 | 2021-01-26 | 一种id生成方法、***、计算机及可读指令存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112817976A CN112817976A (zh) | 2021-05-18 |
CN112817976B true CN112817976B (zh) | 2024-04-05 |
Family
ID=75859231
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110101680.6A Active CN112817976B (zh) | 2021-01-26 | 2021-01-26 | 一种id生成方法、***、计算机及可读指令存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112817976B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102968498A (zh) * | 2012-12-05 | 2013-03-13 | 华为技术有限公司 | 数据处理方法及装置 |
CN106331055A (zh) * | 2016-08-09 | 2017-01-11 | 努比亚技术有限公司 | 标识符生成装置及方法 |
CN109308305A (zh) * | 2018-09-30 | 2019-02-05 | 广州圣亚科技有限公司 | 监测数据的查询方法、装置和计算机设备 |
CN110096685A (zh) * | 2019-04-28 | 2019-08-06 | 新华三信息安全技术有限公司 | 一种设备标识生成方法及装置 |
CN111371918A (zh) * | 2020-02-28 | 2020-07-03 | 上海钧正网络科技有限公司 | 一种分布式集群环境中的id生成方法、装置、介质及设备 |
CN111737347A (zh) * | 2020-06-15 | 2020-10-02 | 中国工商银行股份有限公司 | 在Spark平台顺序切分数据的方法及装置 |
-
2021
- 2021-01-26 CN CN202110101680.6A patent/CN112817976B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102968498A (zh) * | 2012-12-05 | 2013-03-13 | 华为技术有限公司 | 数据处理方法及装置 |
CN106331055A (zh) * | 2016-08-09 | 2017-01-11 | 努比亚技术有限公司 | 标识符生成装置及方法 |
CN109308305A (zh) * | 2018-09-30 | 2019-02-05 | 广州圣亚科技有限公司 | 监测数据的查询方法、装置和计算机设备 |
CN110096685A (zh) * | 2019-04-28 | 2019-08-06 | 新华三信息安全技术有限公司 | 一种设备标识生成方法及装置 |
CN111371918A (zh) * | 2020-02-28 | 2020-07-03 | 上海钧正网络科技有限公司 | 一种分布式集群环境中的id生成方法、装置、介质及设备 |
CN111737347A (zh) * | 2020-06-15 | 2020-10-02 | 中国工商银行股份有限公司 | 在Spark平台顺序切分数据的方法及装置 |
Non-Patent Citations (1)
Title |
---|
基于Spark的矩阵分解推荐算法;郑凤飞;黄文培;贾明正;;计算机应用(10);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN112817976A (zh) | 2021-05-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11307049B2 (en) | Methods, apparatuses, systems, and storage media for storing and loading visual localization maps | |
US9633148B2 (en) | Static timing analysis in circuit design | |
US11507352B1 (en) | Reducing semantic errors in code generated by machine learning models | |
WO2022193872A1 (zh) | 空间关系的确定方法、装置、计算机设备及存储介质 | |
CN110688111A (zh) | 业务流程的配置方法、装置、服务器和存储介质 | |
EP3479214B1 (en) | Recovering free space in nonvolatile storage with a computer storage system supporting shared objects | |
CN109284108A (zh) | 数据存储方法、装置、电子设备及存储介质 | |
CN111475736A (zh) | 社区挖掘的方法、装置和服务器 | |
CN112817976B (zh) | 一种id生成方法、***、计算机及可读指令存储介质 | |
CN112685534B (zh) | 在创作过程中生成已创作内容的脉络信息的方法与设备 | |
US20170083637A1 (en) | Condition analysis | |
US20210263961A1 (en) | Coarse-to-fine multimodal gallery search system with attention-based neural network models | |
US10311361B1 (en) | Media theme propagation using decretization of continuous variables | |
JPWO2020157795A1 (ja) | 試験装置、試験方法および試験プログラム | |
CN112560267B (zh) | 一种斜坡单元的划分方法、装置、设备和存储介质 | |
CN113626650A (zh) | 业务处理方法、装置和电子设备 | |
CN110378037B (zh) | 基于Ceph的CFD仿真数据存储方法、装置及服务器 | |
CN114329978A (zh) | 斜坡单元的融合方法、装置、电子设备及存储介质 | |
CN109284350B (zh) | 检索内容的更新方法、装置、存储介质及电子设备 | |
CN113760754A (zh) | 基于图搜索的测试案例生成的方法、***及存储介质 | |
US10416975B2 (en) | Compiling a parallel loop with a complex access pattern for writing an array for GPU and CPU | |
CN113297498A (zh) | 基于互联网的食品属性挖掘方法及*** | |
CN112379846A (zh) | 一种用于磁盘文件的快速读取方法和*** | |
CN113835988B (zh) | 指标信息预测方法及*** | |
CN111475536B (zh) | 基于搜索引擎的数据分析方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |