CN104486777B - 一种实现数据处理的方法及装置 - Google Patents
一种实现数据处理的方法及装置 Download PDFInfo
- Publication number
- CN104486777B CN104486777B CN201410720319.1A CN201410720319A CN104486777B CN 104486777 B CN104486777 B CN 104486777B CN 201410720319 A CN201410720319 A CN 201410720319A CN 104486777 B CN104486777 B CN 104486777B
- Authority
- CN
- China
- Prior art keywords
- phone number
- hash
- memory
- information table
- user
- 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 29
- 238000012545 processing Methods 0.000 title claims abstract description 18
- 230000015654 memory Effects 0.000 claims abstract description 175
- 239000011159 matrix material Substances 0.000 claims description 36
- 238000004364 calculation method Methods 0.000 claims description 28
- 238000006073 displacement reaction Methods 0.000 claims description 22
- 230000006870 function Effects 0.000 claims description 19
- 238000013507 mapping Methods 0.000 claims description 16
- 238000007493 shaping process Methods 0.000 claims description 7
- 239000012141 concentrate Substances 0.000 claims description 6
- 238000012550 audit Methods 0.000 claims description 5
- 238000003860 storage Methods 0.000 description 12
- 238000013480 data collection Methods 0.000 description 5
- 241001269238 Data Species 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 3
- 230000001174 ascending effect Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 244000144992 flock Species 0.000 description 3
- 238000010276 construction Methods 0.000 description 2
- 230000001186 cumulative effect Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000009826 distribution Methods 0.000 description 2
- 230000008676 import Effects 0.000 description 2
- 230000014759 maintenance of location Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 235000013399 edible fruits Nutrition 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W24/00—Supervisory, monitoring or testing arrangements
-
- 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
- G06F16/2237—Vectors, bitmaps or matrices
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)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
本申请公开了一种实现数据处理的方法及装置,包括:映射各用户的手机号码到相应的内存位图后,根据手机号码映射各用户上网信息表到相应的内存位图中;采用各目标数据集中的、位置区代码(LAC)和小区识别码(CELL ID)、移动设备国际身份码(IMEI)及手机号码分别查询基站小区信息表、终端信息表和内存位图中的用户上网信息表;根据查询结果生成包含有用户访问网络数据类型的结果数据信息。本发明通过映射用户上网信息表在内存位图中,降低了信息表的存储空间和时间,同时提高了查找效率。
Description
技术领域
本申请涉及大数据处理技术,尤指一种实现数据处理的方法及装置。
背景技术
随着移动通信技术的不断发展,海量手机用户的上网信息的数据记录,成为运营商分析业务的重要依据。目前,对海量数据主要使用关系型数据库如Oracle存储和使用内存Hash表存储两种方式进行存储。在对海量存储数据进行匹配查询时,采用相应的两种方案:一是采用关系型数据库存储被查询的关联表数据记录,然后对结果集数据逐条进行三个数据表匹配查询;二是采用数据表记录加载的内容,使用内存Hash表进行匹配查询。
对于上述存储和查询,以下对涉及的相关内容进行简要说明。
以1.9亿手机用户上网信息为例,采用Oracle存储和使用内存Hash表存储的方法需要对用户上网信息表、基站小区信息表和终端信息表进行存储;其中,每条用户上网信息表里记录有:手机号码、手机IMEI、2G网络流量、3G网络流量。表1为用户上网信息表,实际应当包含有1.9亿条信息记录。
表1
表2为基站小区信息表,假设1.9亿用户的上网通过300万个基站实现网络覆盖,则基站小区信息表中包含有由:小区LAC、小区CELL ID、省、地市、小区网络类型五个字段组成的300万条基站小区信息。表2中,小区网络类型含义为:01表示GSM网络,02表示WCDMA网络,03表示FD-LTE网络,04表示FDD-LTE网络。
表2
表3为终端信息表,如表3所示,假设目前所有厂商生产发布的手机终端有9万多种不同的型号,则终端信息表中包含有不同型号相应的记录信息,每个记录中包含有手机IMEI前8位和手机终端支持的网络类型代码2个字段。
表3
在对存储的手机用户上网信息表、基站小区信息表和终端信息表进行查询分析时,需要通过目标数据集的记录进行查询,目标数据集是通过使用分布式分析计算框架Map-Reduce对用户的所有上网信息进行的记录,得到Hadoop/HBase集群进行分布式分析计算得出的结果。根据对每个手机在不同基站访问网络的情况,目标数据集的记录条数为所有手机用户,其通过不同的基站访问网络的基站数,累加获得的记录集,1.9亿用户大约会产生100亿条数据。表4为目标数据集,如表4所示,每条数据记录为五个字段,分别是:小区LAC、小区CELL ID、手机号码、手机IMEI、网络流量。
表4
根据目标数据对手机用户上网信息表、手机终端信息表、基站小区信息表进行匹配查询后,获得结果数据集。图1是基于目标数据集生成结果数据集的示意图,如图1所示,根据目标数据集中的每一条数据记录中的手机号码、手机IMEI和LAC与CELL ID组成的关键字,对手机用户上网信息表、手机终端信息表、基站小区信息表分别进行匹配查询后,获得处理后的数据记录合并存储到结果数据集中。表5为结果数据集,如表5所示,表中仅给出部分数据,对每一条数据包含有:小区LAC|小区CELL ID|网络类型|省|地市|总流量(MB)|0~5MB用户数|5~10MB用户数|10~50MB用户数|50~200MB用户数|200MB以上用户数|2G终端流量(MB)|3G终端流量(MB)|2G网络回落流量(MB)14个字段的信息。其中网络类型:01表示GSM网络,02表示WCDMA网络。2G网络回落流量表示3G终端在本月产生3G流量前提下,该3G终端在2G网络下产生的流量求和。
表5
在关系型数据库中,以使用Oracle数据库进行手机用户上网信息表、手机终端信息表和基站小区信息表的存储及根据目标数据集进行匹配查询为例,生成结果数据集的处理过程如下:
步骤1、先将手机用户上网信息表、终端信息表以及基站小区信息表,使用load方法导入到数据库或者编写java程序的方式将三个表导入数据库中。(假设手机用户上网信息表包含1.9亿条数据记录,仅数据导入需要花费5个小时以上。)
步骤2、通过编程实现,开启200个线程同时读取目标数据集100亿条数据记录(目标数据集100亿条数据记录已经分割为19800个文件,便于多线程处理)。平均每个线程分配99个文件,约5000万条数据记录。
步骤3、每个线程读取一条目标数据集的目标记录r0(r0只是代码,用来代表一个目标记录,r1,r2,r3、rd1相同),使用LAC和CELL ID作为关键字查询基站小区信息表,使用手机号码查询手机用户上网信息表,使用IMEI前8位查询终端信息表,分别查询得到r1,r2,r3。由于每个线程要建立三个连接,所以200线程要创建600个数据库连接。该连接数大于Oracle数据库默认开放的300个连接数,需要修改增大Oracle默认提供的连接数。
步骤4、根据步骤3中查询得到的记录对象r1,r2,r3以及目标记录r0共四个记录对象,构造输出数据记录。从r1中得到省、地市、网络类型数据,从r2中得到该号码本月是否有3G流量产生,从r3中得到该终端是2G终端还是3G终端。然后根据计算规则计算得到输出数据记录rd1。
步骤5、由于目标数据集文件是有序的(对LAC、CELL ID、手机号码、IMEI进行字典序升序排序),所以相同LAC、CELL ID的数据聚集在一起,因为经过步骤4会生成rd1,rd2,rd3,…,rdn等输出数据记录。程序中对相同LAC、CELL ID、网络类型的小区(同一基站小区)的rd数据记录进行累加汇总得到最终每个基站小区一条输出数据记录rdn。
如果使用内存Hash表进行手机用户上网信息表、手机终端信息表和基站小区信息表的存储及根据目标数据集进行匹配查询,其处理过程如下:
步骤I、通过编写程序实现将手机用户上网信息表、终端信息表以及基站小区信息表加载到三个不同的内存Hash表中,分别使用手机号码、IMEI前8位、LAC+CELLID作为Hash表的关键字key。该加载过程需要花费2个小时以上,并且占用了大量的内存资源。
步骤II、通过编程实现开启200个线程同时读取目标数据集100亿条数据记录(目标数据集100亿条数据记录已经分割为19800个文件,便于多线程处理)。平均每个线程分配99个文件,约5000万条数据记录。
步骤III、每个线程读取一条目标数据集的目标记录r0(r0只是代码,用来代表一个目标记录,r1,r2,r3、rd1相同),使用LAC和CELL ID作为关键字查询三个内存Hash表,使用IMEI前8位查询终端信息表,分别查询得到r1,r2,r3。由于每个线程要建立三个连接,所以200线程要创建600个数据库连接。该连接数大于Oracle数据库默认开放的300个连接数,需要修改增大Oracle默认提供的连接数。这里,通过查询三个内存Hash表进行匹配查询。因而查询速度远大于Oracle数据库查询。
步骤IV、根据步骤III中查询得到的记录对象r1,r2,r3以及目标记录r0共四个记录对象,构造输出数据记录。从r1中得到省、地市、网络类型数据,从r2中得到该号码本月是否有3G流量产生,从r3中得到该终端是2G终端还是3G终端。然后根据计算规则计算得到输出数据记录rd1。
步骤V、由于目标数据集文件是有序的(对LAC、CELL ID、手机号码、IMEI进行字典序升序排序),所以相同LAC、CELL ID的数据聚集在一起,因为经过步骤IV会生成rd1,rd2,rd3,…,rdn等输出数据记录。程序中对相同LAC、CELL ID、网络类型的小区(同一基站小区)的rd数据记录进行累加汇总得到最终每个基站小区一条输出数据记录rdn。
目前,要确定用户是否访问某种网络类型数据,需要通过上述方法进行匹配查询后获得相应的信息,采用关系型数据库存储后进行匹配查询存在:一、对于待处理数据为海量数据,用户上网信息表其记录庞大,导入数据库需要花费时间太长,庞大的数据量导致查询速率也会降低;二、使用200个以上线程同时匹配数据记录时,存在Oracle数据库表连接资源不足问题。而采用内存Hash表进行加载关联查询表的数据记录存在:用户上网信息表其记录庞大,对内存空间占用过大和Hash表键值冲突的问题。
发明内容
为了解决上述问题,本发明提供一种实现数据处理的方法及装置,能够在减少存储数据所需时间,提高查询速率。
为了达到本发明的目的,本申请提供一种实现数据处理的方法;包括:
映射各用户的手机号码到相应的内存位图后,根据手机号码映射各用户上网信息表到相应的内存位图中;
逐行读取目标数据集,采用目标数据集中的位置区代码LAC和小区识别码CELL ID查询基站小区信息表、采用目标数据集中的移动设备国际身份码IMEI查询终端信息表、根据目标数据集中的手机号码查询内存位图中的用户上网信息;
根据各行目标数据集查询的相应的基站小区信息表、终端信息表和用户上网信息表生成包含有用户访问网络数据类型的结果数据信息。
进一步地,内存位图为:内存线性位阵列或内存矩阵阵列。
进一步地,在逐行读取目标数据集之前,该方法还包括:将终端信息表及基站小区信息表分别加载到相应的内存哈希Hash表中。
进一步地,当所述内存位图为内存线性位阵列时,所述映射各用户的手机号码到相应的内存位图具体包括:
将各用户的手机号码通过两个或两个以上Hash函数计算出相应的Hash值作为其对应的内存线性位阵列的下标,根据内存线性位阵列的下标映射各用户的手机号码到相应的内存线性位阵列中;
当所述内存位图为内存矩阵阵列时,所述映射各用户的手机号码到相应的内存位图具体包括:
将各用户的手机号码通过三个或三个以上Hash函数计算出相应的Hash值,以其中一个或一个以上,小于计算出的哈希值个数的哈希值作为其对应的内存矩阵阵列的行的下标,以一个或一个以上剩余的哈希值作为内存矩阵阵列的列下标,根据内存线性位阵列的下标映射各用户的手机号码到相应的内存线性位阵列中。
进一步地,通过两个或两个以上Hash函数计算具体包括:
通过手机号码进行哈希计算,获得哈希值;
将手机号码按照预先设置的置换位置和位数进行一次或一次以上置换后,再进行哈希计算后,获得相应的哈希值;
所述通过三个或三个以上Hash函数计算具体包括:
通过手机号码进行哈希计算,获得哈希值;
将手机号码按照预先设置的置换位置和位数进行两次或两次以上置换后,再进行哈希计算后,获得相应的哈希值。
进一步地,该方法还包括:
判断获得的哈希值是否为负数,当为负数时,将所述哈希值与整形最大值相与,获得非负的相与哈希值;
将相与哈希值对内存位图的位数取模后,替换负数的所述哈希值。
进一步地,该方法之前还包括:根据用户数,预先建立预设数值位数的内存位图。
另一方面,本申请还提供一种实现数据处理的装置,包括:映射加载单元、读取查找单元及生成单元;其中,
映射单元,用于映射各用户的手机号码到相应的内存位图后,根据手机号码映射各用户上网信息表到相应的内存位图中;
读取查找单元,用于逐行读取目标数据集,采用目标数据集中的位置区代码LAC加小区识别码CELL ID查询基站小区信息表、采用目标数据集中的移动设备国际身份码IMEI查询终端信息表、根据目标数据集中的手机号码查询内存位图中用户上网信息;
生成单元,用于根据各行目标数据集查询的相应的基站小区信息表、终端信息表和用户上网信息表生成包含有用户访问网络数据类型的结果数据信息。
进一步地,该装置还包括加载单元,用于在读取查找单元逐行读取目标数据集之前,将终端信息表及基站小区信息表分别加载到相应的内存哈希Hash表中。
进一步地,内存位图为:内存线性位阵列或内存矩阵阵列;
映射单元具体用于,当所述内存位图为内存线性位阵列时,将各用户的手机号码通过两个或两个以上Hash函数计算出相应的Hash值作为其对应的内存线性位阵列的下标,根据内存线性位阵列的下标映射各用户的手机号码到相应的内存线性位阵列中;
当所述内存位图为内存矩阵阵列时,将各用户的手机号码通过三个或三个以上Hash函数计算出相应的Hash值,以其中一个或一个以上,小于计算出的哈希值个数的哈希值作为其对应的内存矩阵阵列的行的下标,以一个或一个以上剩余的哈希值作为内存矩阵阵列的列下标,根据内存线性位阵列的下标映射各用户的手机号码到相应的内存线性位阵列中。
进一步地,映射单元具体用于,
通过手机号码进行哈希计算,获得一个哈希值;将手机号码按照预先设置的置换位置和位数进行一次或一次以上置换后,再进行哈希计算后,获得相应的其他哈希值;将计算的哈希值分别作为其对应的内存线性位阵列的下标,根据内存线性位阵列的下标映射各用户的手机号码到相应的内存线性位阵列中;或,
通过手机号码进行哈希计算,获得哈希值;
将手机号码按照预先设置的置换位置和位数进行两次或两次以上置换后,再进行哈希计算后,获得相应的哈希值;将计算的哈希值分别作为其对应的内存矩阵阵列的行和列的下标,根据内存矩阵阵列的下标映射各用户的手机号码到相应的内存矩阵阵列中。
进一步地,该装置还包括哈希值处理单元,用于判断获得的哈希值是否为负数,当为负数时,将所述哈希值与整形最大值相与,获得非负的相与哈希值;
将相与哈希值对内存位图的位数取模后,替换负数的所述哈希值。
进一步地,该装置还包括阵列建立单元,用于根据用户数,预先建立预设数值位数的内存位图。
与现有技术相比,本发明提供的技术方案,包括:映射各用户的手机号码到相应的内存位图后,根据手机号码映射各用户上网信息表到相应的内存位图中;采用各目标数据集中的、位置区代码(LAC)和小区识别码(CELL ID)、移动设备国际身份码及手机号码分别查询基站小区信息表、终端信息表和内存位图中的用户上网信息;根据查询结果生成包含有用户访问网络数据类型的结果数据信息。本发明通过映射用户上网信息表在内存位图中,降低了信息表的存储空间和时间,同时提高了查找效率。
附图说明
附图用来提供对本申请技术方案的进一步理解,并且构成说明书的一部分,与本申请的实施例一起用于解释本申请的技术方案,并不构成对本申请技术方案的限制。
图1是基于目标数据集生成结果数据集的示意图;
图2为本发明实现数据处理的方法的流程图;
图3为本发明实现数据处理的装置的结构框图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚明白,下文中将结合附图对本申请的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
图2为本发明实现数据处理的方法的流程图,如图2所示,包括:
步骤200、映射各用户的手机号码到相应的内存位图后,根据手机号码映射各用户上网信息表到相应的内存位图中;这里,内存位图为:内存线性位阵列或内存矩阵阵列。
本步骤中,当内存位图为内存线性位阵列时,映射各用户的手机号码到相应的内存位图具体包括:
将各用户的手机号码通过两个或两个以上Hash函数计算出相应的Hash值作为其对应的内存线性位阵列的下标,根据内存线性位阵列的下标映射各用户的手机号码到相应的内存线性位阵列中;
当内存位图为内存矩阵阵列时,映射各用户的手机号码到相应的内存位图具体包括:
将各用户的手机号码通过三个或三个以上Hash函数计算出相应的Hash值,以其中一个或一个以上,小于计算出的哈希值个数的哈希值作为其对应的内存矩阵阵列的行的下标,以一个或一个以上剩余的哈希值作为内存矩阵阵列的列下标,根据内存线性位阵列的下标映射各用户的手机号码到相应的内存线性位阵列中。
需要说明的是,将各用户的手机号码通过两个或两个以上Hash函数计算出相应的Hash值作为其对应的内存线性位阵列的下标,将用户上网信息表映射到手机号码对应的内存线性位阵列中,此时只有两个或两个以上内存线性位阵列均得到赋值映射时,才确定为用户的网络访问类型。同理,矩阵阵列确定用户的网络访问类型也是如此。另外,在位图为矩阵阵列时,通过三个或三个以上Hash函数计算出相应的Hash值时,其中矩阵阵列的行和列必须获得其中一个哈希值作为下标,对于第三个或者更多的哈希值,可以根据技术人员设置确定,理论上可以随机设置;当然,一般的,采用三个哈希值就可以实现冲突较少的映射。另外,映射各用户上网信息表到相应的内存线性位阵列中是指将各用户是否访问网络类型的信息通过赋值内存线性位设定的数值确定是否访问相应类型的网络,例如,通过赋值为1确定为访问3G网络;根据内存线性位的初始化,对赋值可以进行调整。
这里,通过两个或两个以上Hash函数计算具体包括:
通过手机号码进行哈希计算,获得哈希值;
将手机号码按照预先设置的置换位置和位数进行一次或一次以上置换后,再进行哈希计算后,获得相应的哈希值;
通过三个或三个以上Hash函数计算具体包括:
通过手机号码进行哈希计算,获得哈希值;
将手机号码按照预先设置的置换位置和位数进行两次或两次以上置换后,再进行哈希计算后,获得相应的哈希值。
需要说明的是,对手机号码进行哈希计算是指:对手机号码求MD5;然后计算该MD5字符串的哈希值。这里预设设置的置换位置和位数是根据本领域技术人员的经验进行的设置,对于哈希计算,只要进行位置变化后,手机号码与初始号码不同,则进行哈希计算时,获得的哈希值就会与原有的哈希值不同;一般的置换位置可以选择除手机号码首位的1以外的其他位,一般的置换位数可以是2位或2位以上。
本发明方法还包括:将终端信息表及基站小区信息表分别加载到相应的内存Hash表中。
步骤201、逐行读取目标数据集,采用目标数据集中的LAC和CELL ID查询基站小区信息表、采用目标数据集中的IMEI查询终端信息表、根据目标数据集中的手机号码查询内存线性位阵列中用户上网信息;这里,采用IMEI查询终端信息表是指采用IMEI的前8位查询终端信息表。
步骤202、根据各行目标数据集查询的相应的基站小区信息表、终端信息表和用户上网信息表生成包含有用户访问网络数据类型的结果数据信息。
需要说明的是,这里采用目标数据集中的LAC和CELL ID查询基站小区信息表是指以LAC和CELL ID作为基站小区信息表加载的内存Hash表的KEY;采用目标数据集中的IMEI的前8位查询终端信息表是指以IMEI前8位作为终端信息表加载的内存Hash表的KEY。
从LAC和CELL ID查询基站小区信息表中得到省、地市、网络类型数据,根据用户的手机号码从用户上网信息表中得到该号码本月是否有3G流量产生,从IMEI的前8位查询终端信息表中得到该终端是2G终端还是3G终端。从而生成包含有用户访问网络数据类型的结果数据信息。
由于目标数据集文件是有序的(对LAC、CELL ID、手机号码、IMEI进行字典序升序排序),所以相同LAC、CELL ID的数据聚集在一起,因为经过各行目标数据集查询的相应的基站小区信息表、终端信息表和用户上网信息表,通过对相同LAC、CELL ID、网络类型的小区(同一基站小区)的rd数据记录进行累加汇总得到最终每个基站小区一条输出数据记录rdn。该部分内容与现有技术完全相同。
本发明方法还包括:判断获得的哈希值是否为负数,当为负数时,将所述哈希值与整形最大值相与,获得非负的相与哈希值;
将相与哈希值对内存位图的位数取模后,替换负数的哈希值。
需要说明的是,由于上述哈希值存在负数,所以和整形最大值(MAX_INT)相与,使之变成非负整数;对非负整数依据内存位图的位数取模,确保最后获得的哈希值在内存位图的区间范围,确保下标不越界。
本发明方法之前还包括:根据用户数,预先建立预设数值位数的内存位图。
需要说明的是,预设数值位数的内存位图是指基于用户数设置的数值位数,主要考虑到每个用户进行哈希值下标映射可能造成的冲突,具体的位数根据本领域技术人员的经验值获得,例如,1.9亿用户,可以设置预设数值为3.0亿。
表6为本发明采用内存位图进行信息存储与现有技术的比较结果,其中采用两种哈希计算方法,以首尾三位手机号码置换进行哈希计算获得内存位图的映射。
表6
图3为本发明实现数据处理的装置的结构框图,如图3所示,包括:映射加载单元、读取查找单元及生成单元;其中,
映射单元,用于映射各用户的手机号码到相应的内存位图后,根据手机号码映射各用户上网信息表到相应的内存位图中;
映射单元具体用于,
将各用户的手机号码通过两个或两个以上Hash函数计算出相应的Hash值作为其对应的内存线性位阵列的下标,根据内存线性位阵列的下标映射各用户的手机号码到相应的内存线性位阵列中;将终端信息表及基站小区信息表分别加载到相应的内存哈希(Hash)表中。
内存位图为:内存线性位阵列或内存矩阵阵列;
映射单元具体用于,当内存位图为内存线性位阵列时,将各用户的手机号码通过两个或两个以上Hash函数计算出相应的Hash值作为其对应的内存线性位阵列的下标,根据内存线性位阵列的下标映射各用户的手机号码到相应的内存线性位阵列中;
当内存位图为内存矩阵阵列时,将各用户的手机号码通过三个或三个以上Hash函数计算出相应的Hash值,以其中一个或一个以上,小于计算出的哈希值个数的哈希值作为其对应的内存矩阵阵列的行的下标,以一个或一个以上剩余的哈希值作为内存矩阵阵列的列下标,根据内存线性位阵列的下标映射各用户的手机号码到相应的内存线性位阵列中。
映射单元具体用于,
通过手机号码进行哈希计算,获得一个哈希值;将手机号码按照预先设置的置换位置和位数进行一次或一次以上置换后,再进行哈希计算后,获得相应的其他哈希值;将计算的哈希值分别作为其对应的内存线性位阵列的下标,根据内存线性位阵列的下标映射各用户的手机号码到相应的内存线性位阵列中;或,
通过手机号码进行哈希计算,获得哈希值;
将手机号码按照预先设置的置换位置和位数进行两次或两次以上置换后,再进行哈希计算后,获得相应的哈希值;将计算的哈希值分别作为其对应的内存矩阵阵列的行和列的下标,根据内存矩阵阵列的下标映射各用户的手机号码到相应的内存矩阵阵列中。
本发明装置还包括加载单元,用于将终端信息表及基站小区信息表分别加载到相应的内存哈希(Hash)表中;
读取查找单元,用于逐行读取目标数据集,采用目标数据集中的位置区代码(LAC)和小区识别码(CELL ID)查询基站小区信息表、采用目标数据集中的移动设备国际身份码(IMEI)查询终端信息表、根据目标数据集中的手机号码查询内存位图中用户上网信息;
生成单元,用于根据各行目标数据集查询的相应的基站小区信息表、终端信息表和用户上网信息表生成包含有用户访问网络数据类型的结果数据信息。
本发明装置还包括哈希值处理单元,用于判断获得的哈希值是否为负数,当为负数时,将所述哈希值与整形最大值相与,获得非负的相与哈希值;
将相与哈希值对内存位图的位数取模后,替换负数的所述哈希值。
本发明装置还包括阵列建立单元,用于根据用户数,预先建立预设数值位数的内存位图。
虽然本申请所揭露的实施方式如上,但所述的内容仅为便于理解本申请而采用的实施方式,并非用以限定本申请,如本发明实施方式中的具体的实现方法。任何本申请所属领域内的技术人员,在不脱离本申请所揭露的精神和范围的前提下,可以在实施的形式及细节上进行任何的修改与变化,但本申请的专利保护范围,仍须以所附的权利要求书所界定的范围为准。
Claims (10)
1.一种实现数据处理的方法,其特征在于,包括:
映射各用户的手机号码到相应的内存位图后,根据手机号码映射各用户上网信息表到相应的内存位图中;
逐行读取目标数据集,采用目标数据集中的位置区代码LAC和小区识别码CELL ID查询基站小区信息表、采用目标数据集中的移动设备国际身份码IMEI查询终端信息表、根据目标数据集中的手机号码查询内存位图中的用户上网信息表;
根据各行目标数据集查询的相应的基站小区信息表、终端信息表和用户上网信息表生成包含有用户访问网络数据类型的结果数据信息;
其中,所述内存位图为:内存线性位阵列或内存矩阵阵列;
当所述内存位图为内存线性位阵列时,所述映射各用户的手机号码到相应的内存位图具体包括:
将各用户的手机号码通过两个或两个以上Hash函数计算出相应的Hash值作为其对应的内存线性位阵列的下标,根据内存线性位阵列的下标映射各用户的手机号码到相应的内存线性位阵列中;
当所述内存位图为内存矩阵阵列时,所述映射各用户的手机号码到相应的内存位图具体包括:
将各用户的手机号码通过三个或三个以上Hash函数计算出相应的Hash值,以其中一个或一个以上,小于计算出的哈希值个数的哈希值作为其对应的内存矩阵阵列的行的下标,以一个或一个以上剩余的哈希值作为内存矩阵阵列的列下标,根据内存线性位阵列的下标映射各用户的手机号码到相应的内存线性位阵列中。
2.根据权利要求1所述的方法,其特征在于,在逐行读取目标数据集之前,该方法还包括:将终端信息表及基站小区信息表分别加载到相应的内存哈希Hash表中。
3.根据权利要求1所述的方法,其特征在于,所述通过两个或两个以上Hash函数计算具体包括:
通过手机号码进行哈希计算,获得哈希值;
将手机号码按照预先设置的置换位置和位数进行一次或一次以上置换后,再进行哈希计算后,获得相应的哈希值;
所述通过三个或三个以上Hash函数计算具体包括:
通过手机号码进行哈希计算,获得哈希值;
将手机号码按照预先设置的置换位置和位数进行两次或两次以上置换后,再进行哈希计算后,获得相应的哈希值。
4.根据权利要求3所述的方法,其特征在于,该方法还包括:
判断获得的哈希值是否为负数,当为负数时,将所述哈希值与整形最大值相与,获得非负的相与哈希值;
将相与哈希值对内存位图的位数取模后,替换负数的所述哈希值。
5.根据权利要求1所述的方法,其特征在于,该方法之前还包括:根据用户数,预先建立预设数值位数的内存位图。
6.一种实现数据处理的装置,其特征在于,包括:映射加载单元、读取查找单元及生成单元;其中,
映射单元,用于映射各用户的手机号码到相应的内存位图后,根据手机号码映射各用户上网信息表到相应的内存位图中;
读取查找单元,用于逐行读取目标数据集,采用目标数据集中的位置区代码LAC加小区识别码CELL ID查询基站小区信息表、采用目标数据集中的移动设备国际身份码IMEI查询终端信息表、根据目标数据集中的手机号码查询内存位图中用户上网信息;
生成单元,用于根据各行目标数据集查询的相应的基站小区信息表、终端信息表和用户上网信息表生成包含有用户访问网络数据类型的结果数据信息;
所述内存位图为:内存线性位阵列或内存矩阵阵列;
所述映射单元具体用于,当所述内存位图为内存线性位阵列时,将各用户的手机号码通过两个或两个以上Hash函数计算出相应的Hash值作为其对应的内存线性位阵列的下标,根据内存线性位阵列的下标映射各用户的手机号码到相应的内存线性位阵列中;
当所述内存位图为内存矩阵阵列时,将各用户的手机号码通过三个或三个以上Hash函数计算出相应的Hash值,以其中一个或一个以上,小于计算出的哈希值个数的哈希值作为其对应的内存矩阵阵列的行的下标,以一个或一个以上剩余的哈希值作为内存矩阵阵列的列下标,根据内存线性位阵列的下标映射各用户的手机号码到相应的内存线性位阵列中。
7.根据权利要求6所述的装置,其特征在于,该装置还包括加载单元,用于在读取查找单元逐行读取目标数据集之前,将终端信息表及基站小区信息表分别加载到相应的内存哈希Hash表中。
8.根据权利要求7所述的装置,其特征在于,所述映射单元具体用于,
通过手机号码进行哈希计算,获得一个哈希值;将手机号码按照预先设置的置换位置和位数进行一次或一次以上置换后,再进行哈希计算后,获得相应的其他哈希值;将计算的哈希值分别作为其对应的内存线性位阵列的下标,根据内存线性位阵列的下标映射各用户的手机号码到相应的内存线性位阵列中;或,
通过手机号码进行哈希计算,获得哈希值;
将手机号码按照预先设置的置换位置和位数进行两次或两次以上置换后,再进行哈希计算后,获得相应的哈希值;将计算的哈希值分别作为其对应的内存矩阵阵列的行和列的下标,根据内存矩阵阵列的下标映射各用户的手机号码到相应的内存矩阵阵列中。
9.根据权利要求8所述的装置,其特征在于,该装置还包括哈希值处理单元,用于判断获得的哈希值是否为负数,当为负数时,将所述哈希值与整形最大值相与,获得非负的相与哈希值;
将相与哈希值对内存位图的位数取模后,替换负数的所述哈希值。
10.根据权利要求6或7所述的装置,其特征在于,该装置还包括阵列建立单元,用于根据用户数,预先建立预设数值位数的内存位图。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410720319.1A CN104486777B (zh) | 2014-12-01 | 2014-12-01 | 一种实现数据处理的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410720319.1A CN104486777B (zh) | 2014-12-01 | 2014-12-01 | 一种实现数据处理的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104486777A CN104486777A (zh) | 2015-04-01 |
CN104486777B true CN104486777B (zh) | 2017-12-29 |
Family
ID=52761267
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410720319.1A Active CN104486777B (zh) | 2014-12-01 | 2014-12-01 | 一种实现数据处理的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104486777B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104936210B (zh) * | 2015-04-20 | 2018-04-10 | 中国联合网络通信集团有限公司 | 一种确定号码状态的方法及装置 |
CN106294353A (zh) * | 2015-05-14 | 2017-01-04 | ***通信集团福建有限公司 | 信息处理方法及装置 |
CN106997431B (zh) * | 2016-01-22 | 2020-09-25 | 阿里巴巴集团控股有限公司 | 一种数据处理方法及装置 |
CN108419214B (zh) * | 2017-02-10 | 2021-05-18 | 成都鼎桥通信技术有限公司 | 群组建立方法及装置 |
CN106851707B (zh) * | 2017-02-27 | 2019-12-06 | 中国联合网络通信集团有限公司 | 基站校准信息提炼方法和基站校准信息提炼*** |
CN109429296B (zh) * | 2017-08-31 | 2021-04-30 | 中国电信股份有限公司 | 用于终端与上网信息关联的方法、装置及存储介质 |
CN112988709A (zh) * | 2021-03-15 | 2021-06-18 | 成都乐动信息技术有限公司 | 一种数据排序方法、装置、电子设备及存储介质 |
CN117390007B (zh) * | 2023-12-08 | 2024-03-12 | 创意信息技术股份有限公司 | 大数据量去重接口数据采集方法、装置、设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5864857A (en) * | 1996-03-29 | 1999-01-26 | Hitachi, Ltd. | Method for processing multi-dimensional data |
US6389123B1 (en) * | 1999-11-08 | 2002-05-14 | Lucent Technologies Inc. | Decreased-size representation employed with portion of automated number identification information in determination of network control point address |
CN103345521A (zh) * | 2013-07-17 | 2013-10-09 | 腾讯科技(深圳)有限公司 | 一种在哈希表数据库中处理键值的方法和装置 |
CN103577583A (zh) * | 2013-11-08 | 2014-02-12 | 北京首信科技股份有限公司 | 从大数据中高效计算用户数的方法 |
-
2014
- 2014-12-01 CN CN201410720319.1A patent/CN104486777B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5864857A (en) * | 1996-03-29 | 1999-01-26 | Hitachi, Ltd. | Method for processing multi-dimensional data |
US6389123B1 (en) * | 1999-11-08 | 2002-05-14 | Lucent Technologies Inc. | Decreased-size representation employed with portion of automated number identification information in determination of network control point address |
CN103345521A (zh) * | 2013-07-17 | 2013-10-09 | 腾讯科技(深圳)有限公司 | 一种在哈希表数据库中处理键值的方法和装置 |
CN103577583A (zh) * | 2013-11-08 | 2014-02-12 | 北京首信科技股份有限公司 | 从大数据中高效计算用户数的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN104486777A (zh) | 2015-04-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104486777B (zh) | 一种实现数据处理的方法及装置 | |
CN104376053B (zh) | 一种基于海量气象数据的存储与检索方法 | |
CN103488704B (zh) | 一种数据存储方法及装置 | |
CN102521334B (zh) | 一种基于分类特性和平衡二叉树的数据存储、查询方法 | |
CN103345514B (zh) | 大数据环境下的流式数据处理方法 | |
CN107220285A (zh) | 面向海量轨迹点数据的时空索引构建方法 | |
CN106156331A (zh) | 冷热温数据服务器***及其处理方法 | |
CN105574054B (zh) | 一种分布式缓存范围查询方法、装置及*** | |
CN106547784A (zh) | 一种数据拆分存储方法及装置 | |
CN104462141A (zh) | 一种数据存储与查询的方法、***及存储引擎装置 | |
CN103701469B (zh) | 一种大规模图数据的压缩存储方法 | |
CN111159754A (zh) | 逆向解析的数据脱敏方法及装置 | |
CN105183921A (zh) | 移动云计算环境下的基于双色反近邻查询的商店定址*** | |
CN106874348A (zh) | 文件存储和索引方法、装置及读取文件的方法 | |
WO2018001085A1 (zh) | 数据存储方法和装置、数据查找请求的处理方法和装置 | |
CN105515997B (zh) | 基于bf_tcam实现零范围扩张的高效范围匹配方法 | |
CN107766433A (zh) | 一种基于Geo‑BTree的范围查询方法及装置 | |
CN108304409A (zh) | 一种基于进位的Sketch数据结构的数据频度估计方法 | |
CN109033173A (zh) | 一种用于生成多维指标数据的数据处理方法及装置 | |
CN103559209A (zh) | 一种Voronoi Diagram与虚拟网格结合的高效空间最近邻查询方法 | |
CN116993555A (zh) | 国土空间规划重点区域识别的分区方法、***及存储介质 | |
CN108009250A (zh) | 一种多分类赛事数据缓存建立、查询方法及装置 | |
CN104424189A (zh) | 基于云平台的定位解算方法和*** | |
CN104750860B (zh) | 一种不确定数据的数据存储方法 | |
CN106909623B (zh) | 一种支持高效海量数据分析和检索的数据装置及数据存储方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |