CN107832341A - Agnss用户去重统计方法 - Google Patents
Agnss用户去重统计方法 Download PDFInfo
- Publication number
- CN107832341A CN107832341A CN201710952388.9A CN201710952388A CN107832341A CN 107832341 A CN107832341 A CN 107832341A CN 201710952388 A CN201710952388 A CN 201710952388A CN 107832341 A CN107832341 A CN 107832341A
- Authority
- CN
- China
- Prior art keywords
- agnss
- user
- duplicate removal
- statistical method
- bloom filter
- 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.)
- Granted
Links
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
- G06F16/2255—Hash tables
-
- 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)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种AGNSS用户去重统计方法,包括以下步骤:(1)将AGNSS用户转成数字签名。(2)根据数字签名转成低存储占用且可判定其是否存在的BITMAP数据结构。(3)在BITMAP数据结构中进行有效次比较进行低错误率地判断去重。本发明基于计算机互联网大数据技术,便于实现,并有效的提高统计效率。本发明仅在AGNSS用户的数量相关统计,降低存储数据所占用的流量和带来不必要的存储空间浪费,同时减少在统计过程中对CPU计算资源的占用。
Description
技术领域
本发明涉及软件开发技术领域,具体涉及大数据存储检索清洗技术。
背景技术
近年来,随着技术的发展,人类对各类精准定位服务的需求日益迫切。商业公司对用户的总量的统计也侧面反映了公司的业务指标,如果采用传统的存储每个用户信息来做增量更新,固然可以解决统计的问题,但是其消耗的存储资源随着用户量的暴增而非线性的增长。同时,在这些海量数据中的比对去重时间成本也指数式暴涨。
发明内容
为了解决现有技术存在的问题,需要一种平衡时间和空间的耗损同时允许可以接受的低错误率的处理方法。
本发明提供了一种AGNSS(辅助全球导航卫星系统)用户去重统计方法,解决了海量AGNSS迅速去重统计的技术问题,同时兼顾存储占用低,计算去重快。
本发明采用的技术方案如下:
一种AGNSS用户新的去重统计方法,包括以下步骤:
步骤1,将AGNSS用户转成数字签名。
步骤2,根据数字ID转成低存储占用且可判定其是否存在的BITMAP(位图)数据结构。
步骤3,在BITMAP数据结构中进行有效次比较进行低错误率地判断去重。
进一步地,AGNSS用户的数字根据提供的算法转换成数字签名。
进一步地,将AGNSS用户数字签名映射到固定长度的BITMAP中。
任意新老用户的AGNSS用户的数字签名标识都可以判断去重。
本发明的有益效果如下:
1、减少占用存储空间,同时存储空间不随用户量非线性无序增加。本发明在可预见的的用户数量下实现下完全固定,当一定的错误率增加的情况下,可适当考虑增加存储空间,空间增加幅度完全不随用户增长指数不可控增加。
2、加快去重检索的速度,通过特殊的存储方法和检索算法可以将全数据扫描转换成计算机基本移位比较操作。
附图说明
图1是本发明Bloom Filter初始化存储结果图。
图2是本发明BloomFilter存储后结构图。
具体实施方式
下文中,结合附图和实施例对本发明作进一步阐述。
本发明一种AGNSS用户新的去重统计方法,包括以下步骤:
定义一:将AGNSS用户的ID转成数字标签:通常采用Hash(哈希)算法,考虑到一些算法有可能为负值,从存储空间和存储表示便利性考虑,本发明选择BKDRHash算法来计算任意AGNSS用户ID的数字标签,原因有以下几种考虑:
1、此算法得到的AGNSS用户数字标签一定为正数。
2、如果不考虑得到数字标签的长度的情况,此算法得到的数字标签重复率比较低。经过各个Hash算法自测比较结果如下:
其中数据类型1为100000个字母和数字组成的随机串哈希冲突个数。数据类型2为100000个有意义的英文句子哈希冲突个数。数据类型3为数据1的哈希值与1000003(大素数)求模后存储到线性表中冲突的个数。数据类型4为数据1的哈希值与10000019(更大素数)求模后存储到线性表中冲突的个数。
通过比对,可以看到BKDRHash算法的碰撞率在各种应用场景下碰撞率是比较低的。下面是该算法的Scala版本的实现:
seed作为本身的Hash初始值推荐一般是素数和奇数,这边考虑现在计算机计算架构移位操作的优势,优先采用同时2的指数减1的形式。考虑到此算法生成的Hash值有可能非常巨大,超出一般计算机所能存储的最大值的范围,会对固定max取余保证一般计算机的存储的可行性。
定义二:采用Bloom Filter(布隆过滤器)算法对各个AGNSS用户ID进行标记。
Bloom Filter基于BITMAP,一般用于数据的去重计算。BITMAP中用一个bit位来表示一个数字,用于精确计算,但是如果数据量大到一定程度,需要采用Bloom Filter。Bloomfilter可以看做是对BITMAP的扩展,但不同于BITMAP,Bloom filter是用多个bit位是否同时存在来判定元素是否存在,其为一种估算的数据结构,存在误判(False Positive)的情况。
Bloom Filter的核心是一个m位的BitSet和k个Hash函数(散列函数,把任意长度的输入通过散列算法,变换成固定长度的输出,该输出就是散列值)。
初始时BitSet中所有位的值都设置为0,假设取m=10,k=3,用浅色表示某位为0,深色表示为1,初始存储结果如图1所示。
插入元素的步骤具体如下:
步骤S11,计算k个Hash值。
步骤S12,将k个Hash值对m取模得到k个下标。
步骤S13,将BitSet中k个下标对应的位设置为1。
比如向Bloom Filter插入元素“TestName”。分别用3个Hash函数计算“TestName”的Hash值,将Hash值对10取模,得到在[0,10)范围内的r1、r2、r3,假设计算结果为:
r1=h1(“TestName”)%m=1
r2=h2(“TestName”)%m=3
r3=h3(“TestName”)%m=5
于是将BitSet中第1位、第3位和第5位的值置为1:
“TestName”对应的Bloom Filter的存储结构如图2所示。
判断“TestName”是否在Bloom Filter字典里,同样需要三步:
步骤S21,计算k个Hash值。
步骤S22,将k个Hash值对m取模得到k个下标。
步骤S23,检查BitSet中k个下标对应的位是否都为1。
如果Bloom Filter里有“TestName”,那BitSet中相应的k位值显然都为1。问题是即使Bloom Filter里没有“TestName”,还是可能由于之前插入的元素而导致“TestName”对应的k位值都为1,因此会错误地认为集合里已经有“TestName”了,这就是Bloom Filter会出错的地方。
在算法空间复杂度方面,Bloom Filter不会动态增长,运行过程中维护的始终只是m位的BitSet,所以空间复杂度只有O(m)。
时间复杂度方面,Bloom Filter的插入与属于操作主要都是在计算k个Hash,所以都是O(k)。
但是如上述所提及,Bloom Filter算法会有一定错误率,错误率一般有以下两种:
FP=False Positive
FN=False Negative
对应Bloom Filter的情况下,FP就是「集合里没有某元素,查找结果是有该元素」,FN就是「集合里有某元素,查找结果是没有该元素」。FN显然总是0,FP会随着Bloom Filter中插入元素的数量而增加--极限情况就是所有bit都为1,这时任何元素都会被认为在集合里。其中FP的推导结果如下:
n是当前集合里元素的数量,Bloom Filter总共占用多少bit位存储,k代表选取多少个Hash函数:
n=0时,FP=0;n趋于无穷大时,FP趋于1;
k/m和n保持不变时,k越大,FP越小;
k、m的取值受用户量的预估和存储空间,能接受的错误率的影响。
在实施例中,以AGNSS用户统计为例,AGNSS用户主要手机终端量暴增,总用户量破亿的情况比较常见。按照传统的存储用户数据结构,其存储成本随着用户量的增加会不可控的增加,其检索成本之高相对统计成本也难以接受。对于计算总量去重的简单统计需求,采用本发明所采用的方法可以在可以接受的错误比例下,采用相对较廉价的方法获得比较令人满意的计算成果。
本发明的主要优点包括:
1、本方法的降低了存储空间,如果采用一些支持直接内存分配语言来实现上述方法,进一步提高空间复用率和节省实现和存储的空间复杂度。
2、本发明提高了运行效率,如上所述,一次编码可以提高查找定位数据的效率,降低CPU使用率。同时一次解码,可以得到参与编码的内容,避免多余查找。
3、本发明易于实现,降低了实现复杂度,也降低了维护成本。本方法基于常见的BKDRHash来编解码,方法的实现门槛低,同时易于测试和维护。
本发明虽然已以较佳实施例公开如上,但其并不是用来限定本发明,任何本领域技术人员在不脱离本发明的精神和范围内,都可以利用上述揭示的方法和技术内容对本发明技术方案做出可能的变动和修改,因此,凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化及修饰,均属于本发明技术方案的保护范围。
Claims (6)
1.一种AGNSS用户去重统计方法,其特征在于,包括以下步骤:
步骤1,将AGNSS用户ID转成数字签名;
步骤2,将数字签名转成BITMAP数据结构;
步骤3,在BITMAP数据结构中进行去重。
2.如权利要求1所述的一种AGNSS用户去重统计方法,其特征在于,步骤1中根据BKDRHash算法将AGNSS用户转换成数字签名。
3.如权利要求2所述的一种AGNSS用户去重统计方法,其特征在于,步骤2中将AGNSS用户数字签名映射到BITMAP数据结构中。
4.如权利要求1所述的一种AGNSS用户去重统计方法,其特征在于,采用Bloom Filter算法对AGNSS用户ID进行标记。
5.如权利要求4所述的一种AGNSS用户去重统计方法,其特征在于,所述Bloom Filter算法包括一个m位的BitSet和k个Hash函数,向Bloom Filter插入元素具体包括以下步骤:
步骤S11,计算k个Hash函数值;
步骤S12,将k个Hash函数值对m取模得到k个下标;
步骤S13,将BitSet中k个下标对应的位设置为1。
6.如权利要求5所述的一种AGNSS用户去重统计方法,其特征在于,判断插入的元素是否在Bloom Filter字典里,具体包括以下步骤:
步骤S21,计算k个Hash函数值;
步骤S22,将k个Hash函数值对m取模得到k个下标;
步骤S23,检查BitSet中k个下标对应的位是否都为1。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710952388.9A CN107832341B (zh) | 2017-10-12 | 2017-10-12 | Agnss用户去重统计方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710952388.9A CN107832341B (zh) | 2017-10-12 | 2017-10-12 | Agnss用户去重统计方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107832341A true CN107832341A (zh) | 2018-03-23 |
CN107832341B CN107832341B (zh) | 2022-01-28 |
Family
ID=61648128
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710952388.9A Active CN107832341B (zh) | 2017-10-12 | 2017-10-12 | Agnss用户去重统计方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107832341B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111400370A (zh) * | 2020-03-06 | 2020-07-10 | 上海数据交易中心有限公司 | 数据流通中的数据监控方法及装置、存储介质、服务器 |
CN112749315A (zh) * | 2021-01-15 | 2021-05-04 | 大连海关技术中心 | 一种主题门户网站爬虫方法 |
CN117390007A (zh) * | 2023-12-08 | 2024-01-12 | 创意信息技术股份有限公司 | 大数据量去重接口数据采集方法、装置、设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103631933A (zh) * | 2013-12-06 | 2014-03-12 | 中国科学院计算技术研究所 | 一种面向分布式去重系统的数据路由方法 |
CN105471918A (zh) * | 2016-01-13 | 2016-04-06 | 中山大学 | 一种代理重指定验证者签名方法 |
CN106201771A (zh) * | 2015-05-06 | 2016-12-07 | 阿里巴巴集团控股有限公司 | 数据存储系统和数据读写方法 |
CN106961431A (zh) * | 2017-03-17 | 2017-07-18 | 福建师范大学 | 角色对称加密所有权证明的方法及系统 |
-
2017
- 2017-10-12 CN CN201710952388.9A patent/CN107832341B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103631933A (zh) * | 2013-12-06 | 2014-03-12 | 中国科学院计算技术研究所 | 一种面向分布式去重系统的数据路由方法 |
CN106201771A (zh) * | 2015-05-06 | 2016-12-07 | 阿里巴巴集团控股有限公司 | 数据存储系统和数据读写方法 |
CN105471918A (zh) * | 2016-01-13 | 2016-04-06 | 中山大学 | 一种代理重指定验证者签名方法 |
CN106961431A (zh) * | 2017-03-17 | 2017-07-18 | 福建师范大学 | 角色对称加密所有权证明的方法及系统 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111400370A (zh) * | 2020-03-06 | 2020-07-10 | 上海数据交易中心有限公司 | 数据流通中的数据监控方法及装置、存储介质、服务器 |
CN112749315A (zh) * | 2021-01-15 | 2021-05-04 | 大连海关技术中心 | 一种主题门户网站爬虫方法 |
CN117390007A (zh) * | 2023-12-08 | 2024-01-12 | 创意信息技术股份有限公司 | 大数据量去重接口数据采集方法、装置、设备及存储介质 |
CN117390007B (zh) * | 2023-12-08 | 2024-03-12 | 创意信息技术股份有限公司 | 大数据量去重接口数据采集方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN107832341B (zh) | 2022-01-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104298680B (zh) | 数据统计方法及数据统计装置 | |
KR101479040B1 (ko) | 태그들을 문서에 자동으로 추가하는 방법, 장치 및 컴퓨터 저장 매체 | |
US10686903B2 (en) | Information push method and electronic device | |
CN102906736B (zh) | 用于匹配实体的系统和方法及其中使用的同义词群组织器 | |
US10664481B2 (en) | Computer system programmed to identify common subsequences in logs | |
CN108959370B (zh) | 一种基于知识图谱中实体相似度的社区发现方法及装置 | |
CN107832341A (zh) | Agnss用户去重统计方法 | |
JP2015530666A (ja) | データインデックス化方法及び装置 | |
CN112861844A (zh) | 业务数据的处理方法、装置和服务器 | |
CN114817651B (zh) | 数据存储方法、数据查询方法、装置和设备 | |
CN103942328A (zh) | 一种视频检索方法及视频装置 | |
CN107657286A (zh) | 一种广告识别方法及计算机可读存储介质 | |
CN103186621B (zh) | 一种目录生成方法和装置 | |
JP2014215685A (ja) | レコメンドサーバおよびレコメンドコンテンツ決定方法 | |
CN114616578A (zh) | 改进定向和其他设置的内容提供者建议 | |
CN103984754A (zh) | 一种搜索系统和搜索方法 | |
CN116610731B (zh) | 一种大数据分布式存储方法、装置、电子设备及存储介质 | |
CN101539940A (zh) | 获取新词的方法和装置 | |
CN111782645A (zh) | 数据处理方法和装置 | |
CN115269654A (zh) | 一种数据缓存补充方法、装置、设备及介质 | |
US9361404B2 (en) | Offline radix tree compression with key sequence skip | |
CN113468866A (zh) | 非标准json串的解析方法及装置 | |
JP2012048387A (ja) | 検索処理方法および検索処理装置 | |
CN111639260A (zh) | 内容推荐方法及其装置、存储介质 | |
CN111460825A (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 |