CN113343042A - 数据分片存储方法、装置、电子设备及存储介质 - Google Patents
数据分片存储方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN113343042A CN113343042A CN202110725937.5A CN202110725937A CN113343042A CN 113343042 A CN113343042 A CN 113343042A CN 202110725937 A CN202110725937 A CN 202110725937A CN 113343042 A CN113343042 A CN 113343042A
- Authority
- CN
- China
- Prior art keywords
- code
- imei
- determining
- identification code
- index
- 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.)
- Pending
Links
Images
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/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
本申请公开了一种数据分片存储方法、装置、电子设备及存储介质,属于通信技术领域。其中方法包括:根据国际移动设备识别码IMEI的类型分配码和最终装配地代码确定所述IMEI对应的分片识别码;根据所述类型分配码、所述最终装配地代码和所述IMEI的序列号确定所述IMEI对应的索引识别码;存储所述分片识别码和所述索引识别码。
Description
技术领域
本申请属于通信技术领域,具体涉及一种数据分片存储方法、装置、电子设备及存储介质。
背景技术
为对用户提供个性化推荐、用户画像、广告等,需要对大量的用户数据进行存储和分析。移动设备的识别码是对用户行为数据进行分析的基础。实际的业务系统中以国际移动设备识别码(International Mobile Equipment Identity,IMEI)用于在移动网络中识别每一部独立的移动设备,相当于移动设备的身份证。
现有技术中,对用户行为数据进行存储和分析,使用到位图(Bitmap)或者位切片索引(Bit-sliced Index,BSI)结构对数据进行存储和计算操作,通过特征定位用户或者通过用户确定其具有的特征。同时存储系统对全量的IMEI进行分片(Shard)来提升系统的计算能力,一般是基于映射后的索引(Index)识别码(Indentity Document,ID)进行分片,获取分片信息只能通过映射后的Index ID而不能通过国际移动设备识别码直接来确定。
然而,系统需要生成和维护Index ID与IMEI之间的正逆向映射关系以进行后续的存储计算和IMEI定位,需要将Index ID还原成具体的IMEI来保证两者的数据一致性。
发明内容
本申请实施例的目的是提供一种数据分片存储方法、装置、电子设备及存储介质,能够解决对IMEI和Index ID之间的正逆向映射关系需要额外存储和维护的问题。
第一方面,本申请实施例提供了一种数据分片存储方法,该方法包括:
根据国际移动设备识别码IMEI的类型分配码和最终装配地代码确定所述IMEI对应的分片识别码;
根据所述类型分配码、所述最终装配地代码和所述IMEI的序列号确定所述IMEI对应的索引识别码;
存储所述分片识别码和所述索引识别码。
第二方面,本申请实施例提供了一种数据分片存储装置,该装置包括:
第一确定模块,用于根据国际移动设备识别码IMEI的类型分配码和最终装配地代码确定所述IMEI对应的分片识别码;
第二确定模块,用于根据所述类型分配码、所述最终装配地代码和所述IMEI的序列号确定所述IMEI对应的索引识别码;
存储模块,用于存储所述分片识别码和所述索引识别码。
第三方面,本申请实施例提供了一种电子设备,该电子设备包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的程序或指令,所述程序或指令被所述处理器执行时实现如第一方面所述的方法的步骤。
第四方面,本申请实施例提供了一种可读存储介质,所述可读存储介质上存储程序或指令,所述程序或指令被处理器执行时实现如第一方面所述的方法的步骤。
第五方面,本申请实施例提供了一种芯片,所述芯片包括处理器和通信接口,所述通信接口和所述处理器耦合,所述处理器用于运行程序或指令,实现如第一方面所述的方法。
在本申请实施例中,通过国际移动设备识别码的类型分配码和最终装配地代码得到分片识别码,通过国际移动设备识别码的类型分配码、最终装配地代码和序列号得到索引序列号,对IMEI本身的特性进行拆分,以分片序列号和用于分布式存储的索引序列号的形式进行存储,不需额外生成和维护IMEI和Index ID之间的正逆向映射关系,同时可以快速找到每一个IMEI对应的存储位置,从而减少存储资源和系统复杂度,提升系统性能。
附图说明
图1是现有技术提供的人群间并集运算的流程示意图;
图2是本申请实施例提供的数据分片存储方法的流程示意图之一;
图3是本申请实施例提供的数据分片存储方法的流程示意图之二;
图4是本申请实施例提供的数据分片存储装置的结构示意图;
图5是本申请实施例提供的电子设备的硬件结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员获得的所有其他实施例,都属于本申请保护的范围。
本申请的说明书和权利要求书中的术语“第一”、“第二”等是用于区别类似的对象,而不用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施,且“第一”、“第二”等所区分的对象通常为一类,并不限定对象的个数,例如第一对象可以是一个,也可以是多个。此外,说明书以及权利要求中“和/或”表示所连接对象的至少其中之一,字符“/”,一般表示前后关联对象是一种“或”的关系。
下面结合附图,通过具体的实施例及其应用场景对本申请实施例进行详细地说明。
本申请实施例提供的数据分片存储方法可以应用在对用户行为数据进行分析,通过特征定位人群或者通过用户确定其具有的特征,从而实现个性化推荐、用户画像、广告等业务。当前大数据分析处理的业务系统的数据分析和存储技术可能使用到Bitmap和BSI结构进行数据存储和计算。
图1是现有技术提供的人群间并集运算的流程示意图,如图1所示,以推荐系统为例,假设需要给某市年龄在20-30岁的女性用户进行某个活动的推荐,可以获得三个用户群,用户群A表示在该市,用户群B表示年龄在20-30岁,用户群C表示为女性。
全量用户共有10人,ID分别为1-10。每个用户群Bitmap中bit位为1代表该用户群中有该用户,bit位为0代表该用户群没有该用户。那么同时符合条件“某市年龄在20-30岁的女性用户”的ID显示3和4,最终对这两个ID对应的用户进行推荐。
实际的业务系统中以IMEI作为对用户行为数据进行分析的基础,IMEI用于在移动设备网络中识别每一部独立的移动设备,相当于移动设备的身份证。
下面以IMEI为869456039964691的例子对本申请实施例提供的数据分片存储方法进行说明。
对于该IMEI而言,第一部分类型分配码(Type Allocation Code,TAC)为“869456”,共6位,用于区分移动设备品牌和型号,该代码由全球移动通讯系统协会(GlobalSystem for Mobile Communications Association,GSMA)及其授权机构分配。其中前两位“86”又是分配机构标识(Reporting Body Identifier),是授权IMEI码分配机构的代码,也可以称之为国家码,中国为“86”。
第二部分最终装配地代码(Final Assembly Code,FAC)为“03”,共2位,用于生产商内部区分生产地代码。
第三部分序列号(Serial Number,SNR)为“996469”,共6位,用于区分每一部移动设备的生产序列号。
第四部分验证码(Check Digit,CD)为“1”,由前14数字通过模10(Luhn)算法计算得到,当前14位数字确定后CD也随之确定。
图2是本申请实施例提供的数据分片存储方法的流程示意图之一,如图2所示,本申请实施例提供一种数据分片存储方法,该方法包括:
步骤201、根据国际移动设备识别码IMEI的类型分配码和最终装配地代码确定所述IMEI对应的分片识别码。
具体来说,根据IMEI的TAC和FAC来确定该IMEI对应的分片识别码。
TAC共6位,前2位为分配机构标识,可以不作处理,作为分片识别码的一部分。这2位也可以不作为分片识别码的一部分,一般来讲,对于某一应用厂商、设备厂商或者互联网企业来说,所处理的IMEI的国家码基本是一致的,不对国家码进行区分不会影响对IMEI进行分片得到的片数,因此可以不将国家码作为分片识别码的一部分。
TAC后4位进行除法运算,确定商值,商值作为分片识别码的一部分,该部分的分片识别码一般以1位表示。
FAC共2位,表示生产地,对FAC进行除法运算,确定商值作为分片识别码的一部分。为兼容更多生产地的场景,该部分的分片识别码可以以2位表示,不足两位高位补0。
对于TAC进行除法运算确定的商值、国家码以及对FAC进行除法运算确定的商值在分片识别码中的位置,本申请实施例不作限制。
例如,对IMEI为869456039964691而言,以“86”作为分片识别码的前2位;对“9456”取1000的商值,商值为9,以“9”作为分片识别码的第3位;对“03”取4的商值,商值为0,以“00”作为分片识别码的后2位。最终确定分片识别码为“86900”。
例如,对IMEI为869456039964691而言,以“86”作为分片识别码的前2位;对“9456”取1005的商值,商值为9,以“9”作为分片识别码的第3位;对“03”取2的商值,商值为1,以“01”作为分片识别码的后2位。最终确定分片识别码为“86901”。
例如,对IMEI为869456039964691而言,对“9456”取1000的商值,商值为9,以“9”作为分片识别码的第1位;以“86”作为分片识别码的第2-3位;对“03”取4的商值,商值为0,以“00”作为分片识别码的后2位。最终确定分片识别码为“98600”。
例如,对IMEI为869456039964691而言,对“9456”取1000的商值,商值为9,以“9”作为分片识别码的第1位;对“03”取4的商值,商值为0,以“00”作为分片识别码的第2-3位;以“86”作为分片识别码的后2位。最终确定分片识别码为“90086”。
例如,对IMEI为869456039964691而言,对“9456”取1000的商值,商值为9,以“9”作为分片识别码的第1位;对“03”取4的商值,商值为0,以“00”作为分片识别码的第2-3位。最终确定分片识别码为“900”。
步骤202、根据所述类型分配码、所述最终装配地代码和所述IMEI的序列号确定所述IMEI对应的索引识别码。
具体来说,根据IMEI的TAC、FAC和SNR来确定该IMEI对应的索引识别码。
TAC的后四位进行除法运算后,其商值作为分片识别码的一部分,对应的其余数可以作为索引识别码的一部分。
FAC进行除法运算后,其商值作为分片识别码的一部分,对应的其余数可以作为索引识别码的一部分。
SNR共6位,可以使用20位的二进制完全表示,作为索引识别码的一部分。
其中,基于Bitmap存储的计算系统最多可存储32位的二进制识别码,6位十进制SNR转换成二进制可用20位完全表示,不足高位补0。
TAC后四位进行除法运算后余数转换成二进制可用10位表示,可用10位二进制表示的最大十进制数为1024,因此对TAC后四位进行除法运算时,除数最大可以为1025。优选地,本申请实施例中以1000为除数。
FAC进行除法运算后余数转换成二进制可用2位表示,可用2位二进制表示的最大十进制数为3,因此对FAC进行除法运算时,除数最大可以为4,优选地,本申请实施例中以4为除数。
例如,对IMEI为869456039964691而言,对“03”取4的余数,余数为3,转换成二进制“11”作为32位索引识别码的第31-32位;对“9456”取1000的余数,余数为456,转换成二进制“111001000”,则以“0111001000”作为32位索引识别码的第21-30位;“996469”转换成二进制“11110011010001110101”作为32位索引识别码的第1-20位。则最终的32位索引识别码为“11011100100011110011010001110101”。
例如,对IMEI为869456039964691而言,对“9456”取1000的余数,余数为456,转换成二进制“111001000”,则以“0111001000”作为32位索引识别码的第23-32位;“对03”取4的余数,余数为3,转换成二进制“11”作为32位索引识别码的第21-22位;“996469”转换成二进制“11110011010001110101”作为32位索引识别码的第1-20位。则最终的32位索引识别码为“01110010001111110011010001110101”。
例如,对IMEI为869456039964691而言,对“9456”取1000的余数,余数为456,转换成二进制“111001000”,则以“0111001000”作为32位索引识别码的第23-32位;“996469”转换成二进制“11110011010001110101”作为32位索引识别码的第3-22位;对“03”取4的余数,余数为3,转换成二进制“11”作为32位索引识别码的第1-2位。则最终的32位索引识别码为“01110010001111001101000111010111”。
例如,对IMEI为869456039964691而言,对“03”取4的余数,余数为3,转换成二进制“11”作为32位索引识别码的第31-32位;“996469”转换成二进制“11110011010001110101”作为32位索引识别码的第11-30位;对“9456”取1000的余数,余数为456,转换成二进制“111001000”,则以“0111001000”作为32位索引识别码的第1-10位。则最终的32位索引识别码为“11111100110100011101010111001000”。
可以想到的是,当TAC后四位进行除法运算后余数转换成二进制得到编码1,FAC除法运算后余数转换成二进制得到编码2,SNR转换成二进制后得到编码3,对于其中任意两个编码在索引识别码中的位数固定后,可以不对第三个编码在索引识别码中的位数进行限制。
例如,索引识别码的前2位为编码2,后10位为编码1,不足高位补0,则中间的位数表示编码3,编码3对应的位数小于等于20位。
例如,索引识别码的前2位为编码2,后20位为编码3,不足高位补0,则中间的位数表示编码1,编码1对应的位数小于等于10位。
此时得到的是一个二进制表示的索引识别码,还可以对其进行无符号整形,使能够表示的IMEI对应的数量范围更大。
步骤203、存储所述分片识别码和所述索引识别码。
具体来说,确定IMEI的分片识别码和索引识别码后,即得到该IMEI的分片信息和索引信息,存储分片识别码和索引识别码。
在基于Bitmap存储的计算系统中,可以根据每一个IMEI对应的分片识别码和索引识别码快速地找到对应的存储位置。
同时对于分片识别码一样的IMEI,可以从所在分片中不同的索引识别码来判断不同的IMEI。
本申请实施例提供的数据分片存储方法,通过国际移动设备识别码的类型分配码和最终装配地代码得到分片识别码,通过国际移动设备识别码的类型分配码、最终装配地代码和序列号得到索引序列号,对IMEI本身的特性进行拆分,以分片序列号和用于分布式存储的索引序列号的形式进行存储,不需额外生成和维护IMEI和Index ID之间的正逆向映射关系,同时可以快速找到每一个IMEI对应的存储位置,从而减少存储资源和系统复杂度,提升系统性能。
可选地,所述根据国际移动设备识别码IMEI的类型分配码和最终装配地代码确定所述IMEI对应的分片识别码,包括:
确定所述类型分配码的后四位除以第一数字的第一商值;
确定所述最终装配地代码除以第二数字的第二商值;
根据所述第一商值和所述第二商值确定所述分片识别码。
具体来说,通过IMEI对应的TAC和FAC确定分片识别码,是通过TAC和FAC分别进行除法运算,来得到分片识别码的不同组成部分,最终实现对全量IMEI的分片。
TAC的前两位为分配机构标识,也可以称之为国家码,实际业务操作中,同一国家对其授权分配的IMEI进行管理,因此对于国家码在分片序列号中的区分作用不大,在对同一国家的移动设备识别码进行分片时,可以对国家码不进行处理。
对TAC的后四位进行除法运算,确定第一商值。由于32位索引识别码位数的限制,对TAC后四位进行除法运算得到的余数转换成二进制后,最多可用10位表示。因此对TAC后四位进行除法运算时,第一数字最大可以为1025。当第一数字太小时对应的分片码会增加,分片数量过多会增加系统复杂度。
优选地,第一数字可以为1000,第一商值对应的取值为1-9,在分片识别码中以1位表示。
对FAC进行除法运算,确定第二商值。FAC代表生产地,假设某个厂商有4个生产地,则FAC为01-04,第二数字为4,余数为0-3,可以使用2位二进制完全表示。为兼容更多的生产地,对第二商值在分片识别码中以2位表示,高位不足时补0。由于32位索引识别码位数的限制,对FAC进行除法运算后得到的余数转换成二进制后,最多可用2位表示,故第二数字最大可以为4,对应的余数最大为3。第二数字可以为1、2、3、4。
第一商值、第二商值和国家码在分片识别码中的位置本申请并不作出限制。例如,对IMEI为869456039964691而言,对“03”取4的商值,第一商值为0,在分片识别码中以“00”表示;对“9456”取1000的商值,第一商值为9;国家码为“86”。则分片识别码可以为“90086”、“98600”、“00869”、“00986”、“86900”、“86009”、“009”和“900”。
本申请实施例提供的数据分片存储方法,通过IMEI的TAC的后四位和FAC确定对应的分片识别码,提供了分片方案,不需要生成和维护IMEI和Index ID之间的映射关系,节省了存储资源,通过分片识别码可以获取IMEI所在的分片从而通过类似远程字典服务(Remote Dictionary Server,Redis)集群的并发读能力快速获取特性或者标签数据信息,提升系统性能。
可选地,所述根据国际移动设备识别码IMEI的类型分配码和最终装配地代码确定所述IMEI对应的分片识别码,包括:
确定所述类型分配码的后四位除以第一数字的第一商值;
确定所述最终装配地代码除以第二数字的第二商值;
根据所述第一商值、所述第二商值和所述类型分配码的前两位确定所述分片识别码。
具体来说,通过IMEI对应的TAC和FAC确定分片识别码,是通过TAC的后四位和FAC分别进行除法运算确定商值,再加上TAC中的前两位来得到分片识别码的不同组成部分,最终实现对全量IMEI的分片。
TAC的前两位为分配机构标识,也可以称之为国家码,实际业务操作中,同一国家对其授权分配的IMEI进行管理,在数据库中的IMEI所对应的国家码不完全相同的情况下,将国家码作为分片识别码的一部分,也可以对IMEI进一步进行区分。在国家码相同的情况下,国家码作为分片识别码的一部分,并不会增加对全量IMEI进行分片的数量。
本申请实施例提供的数据分片存储方法,通过IMEI的TAC的后四位、TAC的前两位和FAC确定对应的分片识别码,提供了分片方案,不需要生成和维护IMEI和Index ID之间的映射关系,节省了存储资源,通过分片识别码可以获取IMEI所在的分片从而通过类似远程字典服务(Remote Dictionary Server,Redis)集群的并发读能力快速获取特性或者标签数据信息,提升系统性能。
可选地,所述根据所述类型分配码、所述最终装配地代码和所述IMEI的序列号确定所述IMEI对应的索引识别码,包括:
确定所述类型分配码的后四位除以所述第一数字的第一余数;
确定所述最终装配地代码除以所述第二数字的第二余数;
根据所述第一余数、所述第二余数和所述序列号确定所述索引识别码。
具体来说,根据IMEI对应的TAC、FAC和SNR来确定Index ID,是通过TAC的后四位和FAC进行除法运算确定余数,再加上SNR来获得Index ID的不同组成部分。
对于不同的IMEI,其对应的分片识别码可能是相同的,因此还需要对分片内的数据进行区分,来获取每一个IMEI在分布式系统中的对应的存储位置。以基于Bitmap存储的计算系统为例,每一个分片中不同的Bitmap对应着不同的IMEI。
对所述类型分配码的后四位进行除法运算确定第一余数。对TAC进行除法运算后,以其商值作为分片识别码的一部分,以其余数作为索引识别码的一部分,可以保证IMEI与索引识别码以及分片识别码之间的一致性。将第一余数转换成二进制表示,作为索引识别码的一部分。
对所述最终装配地代码进行除法运算确定第二余数。对FAC进行除法运算后,以其商值作为分片识别码的一部分,以其余数作为索引识别码的一部分,可以保证IMEI与索引识别码以及分片识别码之间的一致性。将第二余数转换成二进制表示,作为索引识别码的一部分。
对于不同的IMEI,其TAC和FAC可能相同,因此仅基于FAC和TAC来确定索引识别码是不准确的,还需要结合SNR来确保每一个IMEI都有其唯一对应的一组分片识别码和索引识别码。
对于第一余数、第二余数和SNR在索引识别码中对应的位置本申请实施例不作出限制。例如,对IMEI为869456039964691而言,对“9456”取1000的余数,第一余数为456,转换为二进制“111001000”,在32位索引识别码中以“0111001000”表示;对“03”取4的余数,第二余数为3,转换为二进制“11”;SNR为“996469”,转换为二进制“11110011010001110101”。则索引识别码可以为:“11111001000011110011010001110101”、“01110010001111110011010001110101”、“11110011010001110101110111001000”、“11110011010001110101011100100011”、“11110011010001110101011100100011”和“11011100100011110011010001110101”。
可以想到的是,对于第一余数、第二余数和SNR,其中任意两个编码在索引识别码中的位数固定后,可以不对第三个编码在索引识别码中的位数进行限制。
例如,当固定SNR为索引识别码的前20位,第二余数为索引识别码的后2位。对IMEI为869456039964691而言,对“9456”取1000的余数,第一余数为456,转换为二进制“111001000”;对“03”取4的余数,第二余数为3,转换为二进制“11”;SNR为“996469”,转换为二进制“11110011010001110101”。则索引识别码为“1111001101000111010111100100011”,共32位。
对IMEI为869003039964691而言,对“9003”取1000的余数,第一余数为3,转换为二进制“11”;对“03”取4的余数,第二余数为3,转换为二进制“11”;SNR为“996469”,转换为二进制“11110011010001110101”。则索引识别码为“111100110100011101011111”,共24位。
例如,当固定第二余数为索引识别码的前2位,第一余数为索引识别码的后10位。对IMEI为869456039964691而言,对“9456”取1000的余数,第一余数为456,转换为二进制“111001000”;对“03”取4的余数,第二余数为3,转换为二进制“11”;SNR为“996469”,转换为二进制“11110011010001110101”。则索引识别码为“11111100110100011101010111001000”,共32位。
对IMEI为8694560300321191而言,对“9456”取1000的余数,第一余数为456,转换为二进制“111001000”;对“03”取4的余数,第二余数为3,转换为二进制“11”;SNR为“003211”,转换为二进制“110010001011”。则索引识别码为“111100100010110111001000”,共24位。
本申请实施例提供的数据分片存储方法,通过IMEI的TAC的后四位、FAC以及SNR确定对应的索引识别码,在分片识别码相同的情况下通过索引识别码对不同的IMEI进行区分,可以实现对每一个IMEI在系统中的迅速定位,同时由于一组索引识别码和分片识别码和IMEI之间是一一对应的关系,不需要生成和维护IMEI和索引识别码之间的正逆向映射关系,也不需要考虑映射之间的一致性,节省了存储成本和映射开销,同时降低了系统的复杂度。
可选地,所述根据所述第一余数、所述第二余数和所述序列号确定所述索引识别码,包括:
根据所述第一余数确定所述索引识别码的第一部分;所述第一部分包括10位;
根据所述第二余数确定所述索引识别码的第二部分;所述第二部分包括2位;
根据所述序列号确定所述索引识别码的第三部分;所述第三部分包括20位。
具体来说,根据第一余数、第二余数和SNR确定索引识别码,在32位索引识别码中,第一余数占10位,第二余数占2位,SNR占20位。
对于基于Bitmap存储或者BSI结构存储的计算系统,其能进行存储和计算的数据,最多能够支撑32位二进制的数据运行,即索引识别码最多为32位。SNR共6位,能够用20位二进制完全表示。FAC共2位,限制对FAC进行除法运算时,最大除数为4,所以第二余数可以用2位二进制完全表示。
对于TAC的后四位,对其进行除法运算后,余数最多为4位。对于4位十进制转换为二进制,考虑到索引识别码位数的限制,将第一余数在索引识别码中占的位数限制为最多10位。10位二进制可表示的最大十进制数为1024,因此对TAC的后四位进行除法运算时,除数最大可以为1025。
对于第一余数、第二余数和SNR在32位索引识别码中所占的位置,本申请实施例不作限制。
例如,对IMEI为869456039964691而言,对“9456”取1000的余数,第一余数为456,转换为二进制“111001000”;对“03”取4的余数,第二余数为3,转换为二进制“11”;SNR为“996469”,转换为二进制“11110011010001110101”。则索引识别码可以为“01110010001111110011010001110101”、“11011100100011110011010001110101”、“11110011010001110101011100100011”、“11110011010001110101110111001000”、“01110010001111001101000111010111”或“11111100110100011101010111001000”,均为32位。
本申请实施例提供的数据分片存储方法,通过IMEI的TAC的后四位、FAC以及SNR确定对应的索引识别码,同时固定索引识别码的长度,在分片识别码相同的情况下通过索引识别码对不同的IMEI进行区分,可以实现对每一个IMEI在系统中的迅速定位,同时由于每一组索引识别码和分片识别码和IMEI之间是一一对应的关系,不需要生成和维护IMEI和索引识别码之间的正逆向映射关系,也不需要考虑映射之间的一致性,节省了存储成本和映射开销,同时降低了系统的复杂度。
可选地,所述存储所述分片识别码和所述索引识别码之后,还包括:
根据所述分片识别码和所述索引识别码还原所述IMEI。
具体来说,每一个IMEI对应唯一的一组分片识别码和索引识别码,因此对于任意一组分片识别码和索引识别码,都可以还原成对应的IMEI。
在固定分片识别码和索引识别码的生成规则后,每组分片识别码和索引识别码与IMEI之间是一一对应的关系。
下面以一个具体的实施例对其进行说明,图3是本申请实施例提供的数据分片存储方法的流程示意图之二,如图3所示,本申请实施例提供一种数据分片存储方法,以IMEI为869456039964691例进行说明。
TAC部分共6位,前两位国家码“86”不做处理,作为分片识别码的最后两位。后四位“9456”除以1000,得到商值9作为分片识别码的第一位,得到余数456,转换为二进制“111001000”,作为索引识别码的第21-30位,不足高位补0。
FAC部分共2位,为“03”,除以4,得到商值0作为分片识别码的第2-3位,不足高位补0,得到余数03,转换为二进制“11”,作为索引识别码的第31-32位。
SNR部分共6位,使用20位二进制“11110011010001110101”表示,作为索引识别码的第1-20位。
CD部分共1位,由前14位数字通过模10算法得到,不需要在分片识别码和索引识别码中体现。
确定IMEI:869456039964691对应的分片识别码为“90086”,索引识别码为“11011100100011110011010001110101”,索引识别码通过无符号整形得到“3700372597”。
通过上述分片识别码和索引识别码还原对应的IMEI。
其中,5位分片识别码的第一位表示TAC后四位除以1000的商值,第2-3位表示FAC除以4的商值,后两位为国家码。因此TAC的第3位为“9”,第1-2位为“86”。
32位索引识别码的第31-32位为FAC除以4的余数,第21-30位为TAC后四位除以1000的余数,第1-20位为SNR。因此,FAC为“03”,TAC的第4-6位为“456”,SNR为“996469”。CD由前14位通过模10算法校验得到。
可以还原IMEI为869456039964691。
具体还原算法伪代码如下:
int facCardinal=Integer.parseInt(shardId.substring(0,1));
int tacCardinal=Integer.parseInt(shardId.substring(1,3));
String nation=shardId.substring(3,5);
long fac=(id>>30)+4*tacCardinal;
long tac=(id>>20&0b1111111111)+(1000*facCardinal)。
本申请实施例提供的数据分片存储方法,通过对IMEI本身的特性进行拆分,确定其对应的分片识别码和索引识别码,每一个IMEI和对应的分片识别码和索引识别码都是唯一对应的,可以通过一组分片识别码和索引识别码还原对应的IMEI,实现在存储和计算系统中对IMEI的准确快速定位,而不需要生成和维护IMEI和Index ID之间的正逆向映射关系,节省存储成本,增强系统性能。
可选地,所述根据所述分片识别码和所述索引识别码还原所述IMEI,包括:
根据所述分片识别码确定所述类型分配码的第一部分和所述最终装配地代码的第一部分;
根据所述索引识别码确定所述类型分配码的第二部分和所述最终装配地代码的第二部分;
根据所述索引识别码确定所述序列号;
根据所述类型分配码的第一部分和第二部分、所述最终装配地代码的第一部分和第二部分以及所述序列号生成所述IMEI。
具体来说,每一个IMEI对应唯一的一组分片识别码和索引识别码,因此对于任意一组分片识别码和索引识别码,都可以还原成对应的IMEI。
在固定分片识别码和索引识别码的生成规则后,每组分片识别码和索引识别码与IMEI之间是一一对应的关系。还原IMEI的过程就是生成分片识别码和索引识别码的逆过程。
本申请实施例提供的数据分片存储方法,可以通过一组分片识别码和索引识别码还原对应的IMEI,实现在存储和计算系统中对IMEI的准确快速定位,而不需要生成和维护IMEI和Index ID之间的正逆向映射关系,节省存储成本,增强系统性能。
需要说明的是,本申请实施例提供的数据分片存储方法,执行主体可以为数据分片存储装置,或者,或者该数据分片存储装置中的用于执行数据分片存储方法的控制模块。本申请实施例中以数据分片存储装置执行数据分片存储方法为例,说明本申请实施例提供的数据分片存储方法。
图4是本申请实施例提供的数据分片存储装置的结构示意图,如图4所示,本申请实施例提供的数据分片存储装置,包括第一确定模块401、第二确定模块402和存储模块403,其中:
第一确定模块401,用于根据国际移动设备识别码IMEI的类型分配码和最终装配地代码确定所述IMEI对应的分片识别码;
第二确定模块402,用于根据所述类型分配码、所述最终装配地代码和所述IMEI的序列号确定所述IMEI对应的索引识别码;
存储模块403,用于存储所述分片识别码和所述索引识别码。
可选地,所述第一确定模块包括第一确定子模块、第二确定子模块和第三确定子模块;
所述第一确定子模块用于确定所述类型分配码的后四位除以第一数字的第一商值;
所述第二确定子模块用于确定所述最终装配地代码除以第二数字的第二商值;
所述第三确定子模块用于根据所述第一商值和所述第二商值确定所述分片识别码。
可选地,所述第一确定模块包括第四确定子模块、第五确定子模块和第六确定子模块;
所述第四确定子模块用于确定所述类型分配码的后四位除以第一数字的第一商值;
所述第五确定子模块用于确定所述最终装配地代码除以第二数字的第二商值;
所述第六确定子模块用于根据所述第一商值、所述第二商值和所述类型分配码的前两位确定所述分片识别码。
可选地,所述第二确定模块包括第七确定子模块、第八确定子模块和第九确定子模块;
所述第七确定子模块用于确定所述类型分配码的后四位除以所述第一数字的第一余数;
所述第八确定子模块用于确定所述最终装配地代码除以所述第二数字的第二余数;
所述第九确定子模块用于根据所述第一余数、所述第二余数和所述序列号确定所述索引识别码。
可选地,所述第九确定子模块包括第一确定单元、第二确定单元和第三确定单元;
所述第一确定单元用于根据所述第一余数确定所述索引识别码的第一部分;所述第一部分包括10位;
所述第二确定单元用于根据所述第二余数确定所述索引识别码的第二部分;所述第二部分包括2位;
所述第三确定单元用于根据所述序列号确定所述索引识别码的第三部分;所述第三部分包括20位。
可选地,所述装置还包括还原模块;
所述还原模块用于根据所述分片识别码和所述索引识别码还原所述IMEI。
可选地,所述还原模块包括第十确定子模块、第十一确定子模块、第十二确定子模块和生成子模块;
所述第十确定子模块用于根据所述分片识别码确定所述类型分配码的第一部分和所述最终装配地代码的第一部分;
所述第十一确定子模块用于根据所述索引识别码确定所述类型分配码的第二部分和所述最终装配地代码的第二部分;
所述第十二确定子模块用于根据所述索引识别码确定所述序列号;
所述生成子模块用于根据所述类型分配码的第一部分和第二部分、所述最终装配地代码的第一部分和第二部分以及所述序列号生成所述IMEI。
具体来说,本申请实施例提供的上述数据分片存储装置,能够实现上述方法实施例所实现的所有方法步骤,且能够达到相同的技术效果,在此不再对本实施例中与方法实施例相同的部分及有益效果进行具体赘述。
本申请实施例中的数据分片存储装置可以是装置,也可以是终端中的部件、集成电路、或芯片。该装置可以是移动电子设备,也可以为非移动电子设备。示例性的,移动电子设备可以为手机、平板电脑、笔记本电脑、掌上电脑、车载电子设备、可穿戴设备、超级移动个人计算机(ultra-mobile personal computer,UMPC)、上网本或者个人数字助理(personal digital assistant,PDA)等,非移动电子设备可以为服务器、网络附属存储器(Network Attached Storage,NAS)、个人计算机(personal computer,PC)、电视机(television,TV)、柜员机或者自助机等,本申请实施例不作具体限定。
本申请实施例中的数据分片存储装置可以为具有操作系统的装置。该操作系统可以为安卓(Android)操作系统,可以为ios操作系统,还可以为其他可能的操作系统,本申请实施例不作具体限定。
本申请实施例提供的数据分片存储装置能够实现图2至图3的方法实施例实现的各个过程,为避免重复,这里不再赘述。
可选地,本申请实施例还提供一种电子设备,包括处理器,存储器,存储在存储器上并可在所述处理器上运行的程序或指令,该程序或指令被处理器执行时实现上述消息屏蔽方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
需要说明的是,本申请实施例中的电子设备包括上述所述的移动电子设备和非移动电子设备。
图5是本申请实施例提供的电子设备的硬件结构示意图,如图5所示,该电子设备500包括但不限于:射频单元501、网络模块502、音频输出单元503、输入单元504、传感器505、显示单元506、用户输入单元507、接口单元508、存储器509、以及处理器510等部件。
本领域技术人员可以理解,电子设备500还可以包括给各个部件供电的电源(比如电池),电源可以通过电源管理系统与处理器510逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。图5中示出的电子设备结构并不构成对电子设备的限定,电子设备可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置,在此不再赘述。
应理解的是,本申请实施例中,输入单元504可以包括图形处理器(GraphicsProcessing Unit,GPU)5041和麦克风5042,图形处理器5041对在视频捕获模式或图像捕获模式中由图像捕获装置(如摄像头)获得的静态图片或视频的图像数据进行处理。显示单元506可包括显示面板5061,可以采用液晶显示器、有机发光二极管等形式来配置显示面板5061。用户输入单元507包括触控面板5071以及其他输入设备5072。触控面板5071,也称为触摸屏。触控面板5071可包括触摸检测装置和触摸控制器两个部分。其他输入设备5072可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆,在此不再赘述。存储器509可用于存储软件程序以及各种数据,包括但不限于应用程序和操作系统。处理器510可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器510中。
其中,处理器510用于根据国际移动设备识别码IMEI的类型分配码和最终装配地代码确定所述IMEI对应的分片识别码;
处理器510用于根据所述类型分配码、所述最终装配地代码和所述IMEI的序列号确定所述IMEI对应的索引识别码;
存储器509存储所述分片识别码和所述索引识别码。
可选地,处理器510还用于确定所述类型分配码的后四位除以第一数字的第一商值;确定所述最终装配地代码除以第二数字的第二商值;根据所述第一商值和所述第二商值确定所述分片识别码。
可选地,处理器510还用于确定所述类型分配码的后四位除以第一数字的第一商值;确定所述最终装配地代码除以第二数字的第二商值;根据所述第一商值、所述第二商值和所述类型分配码的前两位确定所述分片识别码。
可选地,处理器510还用于确定所述类型分配码的后四位除以所述第一数字的第一余数;确定所述最终装配地代码除以所述第二数字的第二余数;根据所述第一余数、所述第二余数和所述序列号确定所述索引识别码。
可选地,处理器510还用于根据所述第一余数确定所述索引识别码的第一部分;所述第一部分包括10位;根据所述第二余数确定所述索引识别码的第二部分;所述第二部分包括2位;根据所述序列号确定所述索引识别码的第三部分;所述第三部分包括20位。
可选地,处理器510还用于根据所述分片识别码和所述索引识别码还原所述IMEI。
可选地,处理器510还用于根据所述分片识别码确定所述类型分配码的第一部分和所述最终装配地代码的第一部分;根据所述索引识别码确定所述类型分配码的第二部分和所述最终装配地代码的第二部分;根据所述索引识别码确定所述序列号;根据所述类型分配码的第一部分和第二部分、所述最终装配地代码的第一部分和第二部分以及所述序列号生成所述IMEI。
本申请实施例还提供一种可读存储介质,所述可读存储介质上存储有程序或指令,该程序或指令被处理器执行时实现上述数据分片存储方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
其中,所述处理器为上述实施例中所述的电子设备中的处理器。所述可读存储介质,包括计算机可读存储介质,如计算机只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等。
本申请实施例另提供了一种芯片,所述芯片包括处理器和通信接口,所述通信接口和所述处理器耦合,所述处理器用于运行程序或指令,实现上述数据分片存储方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
应理解,本申请实施例提到的芯片还可以称为系统级芯片、系统芯片、芯片系统或片上系统芯片等。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。此外,需要指出的是,本申请实施方式中的方法和装置的范围不限按示出或讨论的顺序来执行功能,还可包括根据所涉及的功能按基本同时的方式或按相反的顺序来执行功能,例如,可以按不同于所描述的次序来执行所描述的方法,并且还可以添加、省去、或组合各种步骤。另外,参照某些示例所描述的特征可在其他示例中被组合。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以计算机软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,或者网络设备等)执行本申请各个实施例所述的方法。
上面结合附图对本申请的实施例进行了描述,但是本申请并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本申请的启示下,在不脱离本申请宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本申请的保护之内。
Claims (10)
1.一种数据分片存储方法,其特征在于,包括:
根据国际移动设备识别码IMEI的类型分配码和最终装配地代码确定所述IMEI对应的分片识别码;
根据所述类型分配码、所述最终装配地代码和所述IMEI的序列号确定所述IMEI对应的索引识别码;
存储所述分片识别码和所述索引识别码。
2.根据权利要求1所述的数据分片存储方法,其特征在于,所述根据国际移动设备识别码IMEI的类型分配码和最终装配地代码确定所述IMEI对应的分片识别码,包括:
确定所述类型分配码的后四位除以第一数字的第一商值;
确定所述最终装配地代码除以第二数字的第二商值;
根据所述第一商值和所述第二商值确定所述分片识别码。
3.根据权利要求1所述的数据分片存储方法,其特征在于,所述根据国际移动设备识别码IMEI的类型分配码和最终装配地代码确定所述IMEI对应的分片识别码,包括:
确定所述类型分配码的后四位除以第一数字的第一商值;
确定所述最终装配地代码除以第二数字的第二商值;
根据所述第一商值、所述第二商值和所述类型分配码的前两位确定所述分片识别码。
4.根据权利要求2-3任一项所述的数据分片存储方法,其特征在于,所述根据所述类型分配码、所述最终装配地代码和所述IMEI的序列号确定所述IMEI对应的索引识别码,包括:
确定所述类型分配码的后四位除以所述第一数字的第一余数;
确定所述最终装配地代码除以所述第二数字的第二余数;
根据所述第一余数、所述第二余数和所述序列号确定所述索引识别码。
5.根据权利要求4所述的数据分片存储方法,其特征在于,所述根据所述第一余数、所述第二余数和所述序列号确定所述索引识别码,包括:
根据所述第一余数确定所述索引识别码的第一部分;所述第一部分包括10位;
根据所述第二余数确定所述索引识别码的第二部分;所述第二部分包括2位;
根据所述序列号确定所述索引识别码的第三部分;所述第三部分包括20位。
6.根据权利要求1所述的数据分片存储方法,其特征在于,所述存储所述分片识别码和所述索引识别码之后,还包括:
根据所述分片识别码和所述索引识别码还原所述IMEI。
7.根据权利要求6所述的数据分片存储方法,其特征在于,所述根据所述分片识别码和所述索引识别码还原所述IMEI,包括:
根据所述分片识别码确定所述类型分配码的第一部分和所述最终装配地代码的第一部分;
根据所述索引识别码确定所述类型分配码的第二部分和所述最终装配地代码的第二部分;
根据所述索引识别码确定所述序列号;
根据所述类型分配码的第一部分和第二部分、所述最终装配地代码的第一部分和第二部分以及所述序列号生成所述IMEI。
8.一种数据分片存储装置,其特征在于,包括:
第一确定模块,用于根据国际移动设备识别码IMEI的类型分配码和最终装配地代码确定所述IMEI对应的分片识别码;
第二确定模块,用于根据所述类型分配码、所述最终装配地代码和所述IMEI的序列号确定所述IMEI对应的索引识别码;
存储模块,用于存储所述分片识别码和所述索引识别码。
9.一种电子设备,其特征在于,包括处理器,存储器及存储在所述存储器上并可在所述处理器上运行的程序或指令,所述程序或指令被所述处理器执行时实现如权利要求1-7任一项所述的数据分片存储方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述可读存储介质上存储程序或指令,所述程序或指令被处理器执行时实现如权利要求1-7任一项所述的数据分片存储方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110725937.5A CN113343042A (zh) | 2021-06-29 | 2021-06-29 | 数据分片存储方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110725937.5A CN113343042A (zh) | 2021-06-29 | 2021-06-29 | 数据分片存储方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113343042A true CN113343042A (zh) | 2021-09-03 |
Family
ID=77481358
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110725937.5A Pending CN113343042A (zh) | 2021-06-29 | 2021-06-29 | 数据分片存储方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113343042A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113821514A (zh) * | 2021-09-26 | 2021-12-21 | 维沃移动通信有限公司 | 数据拆分方法、装置、电子设备和可读存储介质 |
CN114091624A (zh) * | 2022-01-18 | 2022-02-25 | 蓝象智联(杭州)科技有限公司 | 一种无第三方的联邦梯度提升决策树模型训练方法 |
-
2021
- 2021-06-29 CN CN202110725937.5A patent/CN113343042A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113821514A (zh) * | 2021-09-26 | 2021-12-21 | 维沃移动通信有限公司 | 数据拆分方法、装置、电子设备和可读存储介质 |
CN114091624A (zh) * | 2022-01-18 | 2022-02-25 | 蓝象智联(杭州)科技有限公司 | 一种无第三方的联邦梯度提升决策树模型训练方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113343042A (zh) | 数据分片存储方法、装置、电子设备及存储介质 | |
CN111090628A (zh) | 一种数据处理方法、装置、存储介质及电子设备 | |
CN108108436B (zh) | 数据存储方法、装置、存储介质及电子设备 | |
CN111629081A (zh) | 互联网协议ip地址数据处理方法、装置及电子设备 | |
CN111290779A (zh) | 灰度发布方法、装置、存储介质和电子设备 | |
CN112380238A (zh) | 数据库数据查询方法、装置、电子设备及存储介质 | |
CN112487253A (zh) | 用户邀请码生成方法、验证方法、装置、设备及存储介质 | |
CN115408350A (zh) | 日志压缩、日志还原方法、装置、计算机设备和存储介质 | |
CN104657481A (zh) | 一种存储、查询数据的方法及装置 | |
CN111368697A (zh) | 一种信息识别方法和装置 | |
CN112995199B (zh) | 数据编解码方法、装置、传输系统、终端设备及存储介质 | |
CN112464619A (zh) | 大数据处理方法、装置、设备及计算机可读存储介质 | |
CN113626512A (zh) | 数据处理方法、装置、设备及可读存储介质 | |
CN111198882A (zh) | 数据的处理方法、装置、存储介质和电子设备 | |
CN116468062A (zh) | 基于图形码的页面展示方法及装置 | |
CN113094624B (zh) | 页面生成方法、装置及电子设备 | |
CN114490547A (zh) | 数据压缩方法、装置、设备及介质 | |
CN113342283A (zh) | 用户位置信息存储方法、装置、电子设备及可读存储介质 | |
CN111836051B (zh) | 一种桌面图像编码、解码方法及相关装置 | |
CN111737572A (zh) | 搜索语句生成方法、装置和电子设备 | |
CN113094415A (zh) | 数据抽取方法、装置、计算机可读介质及电子设备 | |
CN112527753B (zh) | Dns解析记录无损压缩方法、装置、电子设备及存储介质 | |
CN113590856B (zh) | 标签查询方法、装置、电子设备及可读存储介质 | |
CN114710352B (zh) | 一种php系统的密码调用方法、装置、电子设备及存储介质 | |
CN109788160A (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 |