CN112434085A - 基于Roaring Bitmap的用户数据统计方法 - Google Patents

基于Roaring Bitmap的用户数据统计方法 Download PDF

Info

Publication number
CN112434085A
CN112434085A CN202011401560.XA CN202011401560A CN112434085A CN 112434085 A CN112434085 A CN 112434085A CN 202011401560 A CN202011401560 A CN 202011401560A CN 112434085 A CN112434085 A CN 112434085A
Authority
CN
China
Prior art keywords
container
bucket
bitmap
array
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.)
Granted
Application number
CN202011401560.XA
Other languages
English (en)
Other versions
CN112434085B (zh
Inventor
李兴平
林允鹏
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
4399 NETWORK CO LTD
Original Assignee
4399 NETWORK CO LTD
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by 4399 NETWORK CO LTD filed Critical 4399 NETWORK CO LTD
Priority to CN202011401560.XA priority Critical patent/CN112434085B/zh
Publication of CN112434085A publication Critical patent/CN112434085A/zh
Application granted granted Critical
Publication of CN112434085B publication Critical patent/CN112434085B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2458Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
    • G06F16/2462Approximate or statistical queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2255Hash tables
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • Probability & Statistics with Applications (AREA)
  • Fuzzy Systems (AREA)
  • Mathematical Physics (AREA)
  • Computational Linguistics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供一种基于Roaring Bitmap的用户数据统计方法,包括:将用户唯一标识依次通过信息摘要算法MD5及MurmurHash3算法,哈希成int64位哈希值h;将哈希值h通过取余法进行降位,得到新的用户唯一标识u;将新的用户唯一标识u转化为二进制数;建立数据存储结构;基于数据存储结构,统计用户是否为新用户。本发明使用高性能Roaring Bitmap作为基础数据结构对Bitmap进行压缩,此外引入哈希算法并进行降位运算,使其支持字符型用户唯一标识,同时在计算性能与精度中找到平衡;在用户数据统计上具有空间占用小,计算速度快等特点,同时在数据持续增长的情况下依然能保持出色的性能。

Description

基于Roaring Bitmap的用户数据统计方法
技术领域
本发明属于数据处理技术领域,具体涉及一种基于Roaring Bitmap的用户数据统计方法。
背景技术
随着互联网的不断发展,各类产品层出不穷,对用户数据进行统计分析可以可以支持企业的宏观规划,了解市场现状及趋势;还可以确定产品运营状况,改进产品方向,因此,对用户数据进行统计分析,具有重要意义。
对海量用户数据进行统计分析,是一件非常费时且消耗资源的事情,特别是在面对多维度实时用户数量统计时,如果不能高效的完成统计分析,可能导致任务持续延迟直至失败。
目前最常用的用户统计方法为:基于关系型数据库(如MySQL),将用户唯一标识字段设置成数据表唯一索引,当用户唯一标识能够成功写入数据表时,表明此用户为新用户,表中的所有用户数即为总用户数。但是,随着用户数不断增多,其资源消耗随之增大,写入性能急剧下降,需要进行分库分表操作。
此外,还有一种较为常见的用户统计方法是:基于NoSQL数据库(如Redis),将用户唯一标识写入集合(Set),如果用户唯一标识能够成功写入集合,则表明此用户为新用户,集合元素个数即为总用户数。如果用户数非常多,集合会消耗大量内存,同时集合在用户增多时有动态扩容、散列冲突等开销。
还有一种基于位图(Bitmap)的用户统计方法,即:将位图中用户唯一标识对应的bit位设为1(如用户UID为12345,则位图第12345位设为1),如果此位之前为0,则表明此用户为新用户,位图中1的个数即为总用户数。此方法仅适用于用户唯一标识为整型的场景,此外,由于位图空间占用由最高位决定,在数据稀疏且bit位高时,性价比低。
发明内容
针对现有技术存在的缺陷,本发明提供一种基于Roaring Bitmap的用户数据统计方法,可有效解决上述问题。
本发明采用的技术方案如下:
本发明提供一种基于Roaring Bitmap的用户数据统计方法,包括以下步骤:
步骤1,将用户唯一标识依次通过信息摘要算法MD5及MurmurHash3算法,哈希成int64位哈希值h;
步骤2,将哈希值h通过取余法进行降位,从而得到新的用户唯一标识u;
具体的,u=h Mod 2n;其中,n代表用户唯一标识哈希后的取值范围调节系数;Mod代表求余函数;
步骤3,将新的用户唯一标识u转化为二进制数;如果二进制数不足64位,则将二进制数的末位补0,从而得到64位的二进制数;
步骤4,建立数据存储结构;所述数据存储结构采用两级索引结构,第一级索引是roaring bitmap数据结构索引,该roaring bitmap数据结构索引包括232个roaring bitmap索引号,roaring bitmap索引号编号为:0,1,2,...(232-1);
对于每个roaring bitmap索引号,关联第二级索引,第二级索引是桶结构索引,桶结构索引包括216个桶索引号,桶索引号编号为:0,1,2,...(216-1);
每个桶索引号唯一对应一个容器桶;所述容器桶在四种类型之间转换:ArrayContainer正向记录容器桶、Bitmap Container容器桶、Array Container反向记录容器桶和Run Container容器桶;其中,Array Container正向记录容器桶和Array Container反向记录容器桶均为Array Container类型容器桶;
步骤5,对于步骤3得到的64位的二进制数,取第33-64位的二进制数,并转换为十进制数,得到十进制数r;取第17-32位的二进制数,并转换为十进制数,得到十进制数b;取第1-16位的二进制数,并转换为十进制数,得到十进制数p;
步骤6,查找步骤4建立的数据存储结构,定位到roaring bitmap索引号为r的roaring bitmap索引号;再定位到的roaring bitmap索引号的下一级,即:定位到桶索引号为b的桶索引号;由此最终定位到roaring bitmap索引号为r、桶索引号为b的容器桶;将定位到的容器桶表示为容器桶C;
步骤7,十进制数p为16位的二进制数转换而来,因此,十进制数p的数值范围为:0,1,2,...(216-1);
基于十进制数p,采用以下方法,识别本次的用户唯一标识是否为新用户唯一标识,并对数据存储结构进行更新:其中,初始状态时,容器桶C为Array Container正向记录容器桶;
步骤7.1,如果容器桶C内存储的元素个数小于等于4096个,则容器桶C为ArrayContainer正向记录容器桶;其中,Array Container正向记录容器桶的内部数据结构是有序的Short数组,数组容量动态变化,数组初始容量为0,数组最大容量为4096;当需要存储的数组数量超过4096时,Array Container正向记录容器桶转换为Bitmap Container容器桶;
此种情况下,判断十进制数p是否已存在于Array Container正向记录容器桶,如果不存在,则代表本次的用户唯一标识为新用户唯一标识;并将十进制数p作为一个元素,存储到Array Container正向记录容器桶的对应位置;
步骤7.2,如果容器桶C内存储的元素个数大于4096,且小于61440时,此时容器桶C已由初始的Array Container正向记录容器桶转换为Bitmap Container容器桶;
此种情况下,判断十进制数p是否已存在于Bitmap Container容器桶内,如果不存在,则代表本次的用户唯一标识为新用户唯一标识;并将十进制数p作为一个元素,采用位图方式,存储到Bitmap Container容器桶内;
其中,如果Bitmap Container容器桶符合压缩算法条件,则对Bitmap Container容器桶使用RLE算法进行压缩处理,Bitmap Container容器桶转换为Run Container容器桶;
步骤7.3,如果容器桶C内存储的元素个数大于等于61440,并且小于等于65536时,则容器桶C由Bitmap Container容器桶或Run Container容器桶,转换为Array Container反向记录容器桶;
首先,在转换为Array Container反向记录容器桶的初始时刻,Array Container反向记录容器桶内已存储的元素值形成集合1;0到65535组成的65536个元素形成集合2;取集合1和集合2的差集,写入到Array Container反向记录容器桶内,得到Array Container反向记录容器桶初始状态;
然后,判断十进制数p是否出现在Array Container反向记录容器桶内,如果出现,则代表本次的用户唯一标识为新用户唯一标识,并将Array Container反向记录容器桶内的十进制数p对应的元素删除;如果未出现,则代表本次的用户唯一标识不是新用户唯一标识,不对Array Container反向记录容器桶进行处理;
至此,成功识别到步骤1的用户唯一标识是否为新用户唯一标识。
优选的,步骤6中,采用二分法查找定位到roaring bitmap索引号为r的roaringbitmap索引号。
优选的,步骤7.1中,采用二分法查找,判断十进制数p是否已存在于ArrayContainer正向记录容器桶。
优选的,还包括:步骤8,遍历数据存储结构,统计数据存储结构存储的用户总数量。
优选的,步骤8具体为:数据存储结构中,将各个roaring bitmap数据结构索引的各个桶内的元素数量相加,得到用户总数量。
本发明提供的一种基于Roaring Bitmap的用户数据统计方法具有以下优点:
使用高性能的Roaring Bitmap作为基础数据结构对Bitmap进行压缩,此外引入哈希算法并进行降位运算,使其支持字符型用户唯一标识,同时在计算性能与精度中找到平衡;在用户数据统计上具有空间占用小,计算速度快等特点,同时在数据持续增长的情况下依然能保持出色的性能。
附图说明
图1为本发明提供的一种基于Roaring Bitmap的用户数据统计方法的流程示意图。
具体实施方式
为了使本发明所解决的技术问题、技术方案及有益效果更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
本发明提供一种基于Roaring Bitmap的用户数据统计方法,是一种高性能低开销的用户数据统计方法,可有效解决上述背景技术中提出的问题。
参考图1,本发明提供的基于Roaring Bitmap的用户数据统计方法,包括以下步骤:
步骤1,将用户唯一标识依次通过信息摘要算法MD5及MurmurHash3算法,哈希成int64位哈希值h;
其中,MurmurHash是一种非加密型哈希函数,适用于一般的哈希检索操作。
本步骤中,采用两次哈希计算,能使哈希分布更均匀,同时将字符串转换为64位整型。
例如,用户唯一标识为861997047452359,通过两次哈希计算,,得到哈希值h为:15318729074149351797。
步骤2,将哈希值h通过取余法进行降位,从而得到新的用户唯一标识u;
具体的,u=h Mod 2n;其中,n代表用户唯一标识哈希后的取值范围调节系数;Mod代表求余函数;
n值决定了计算的性能与精度,n值越小,计算性能越好,哈希冲突率越高,精度越低,可根据实际情况设置。
例如,在图1中,对于哈希值h为:15318729074149351797,当n值取38时,则u=198828810613。
步骤3,将新的用户唯一标识u转化为二进制数;如果二进制数不足64位,则将二进制数的末位补0,从而得到64位的二进制数;
因此,将u=198828810613转化为二进制数,二进制数从右向左读,因此,当其不足64位时,在左侧末位补0,由此得到64位的二进制数:
0000000000000000000000000010111001001011000111101110000101110101
步骤4,建立数据存储结构;所述数据存储结构采用两级索引结构,第一级索引是roaring bitmap数据结构索引,该roaring bitmap数据结构索引包括232个roaring bitmap索引号,roaring bitmap索引号编号为:0,1,2,...(232-1);
对于每个roaring bitmap索引号,关联第二级索引,第二级索引是桶结构索引,桶结构索引包括216个桶索引号,桶索引号编号为:0,1,2,...(216-1);
每个桶索引号唯一对应一个容器桶;所述容器桶在四种类型之间转换:ArrayContainer正向记录容器桶、Bitmap Container容器桶、Array Container反向记录容器桶和Run Container容器桶;其中,Array Container正向记录容器桶和Array Container反向记录容器桶均为Array Container类型容器桶;
步骤5,对于步骤3得到的64位的二进制数,取第33-64位的二进制数,并转换为十进制数,得到十进制数r;取第17-32位的二进制数,并转换为十进制数,得到十进制数b;取第1-16位的二进制数,并转换为十进制数,得到十进制数p;
因此,对于64位的二进制数:
0000000000000000000000000010111001001011000111101110000101110101
其33-64位的二进制数为:00000000000000000000000000101110,转换为十进制数,得到十进制数r=46。
17-32位的二进制数为:0100101100011110,转换为十进制数,得到十进制数b。
1-16位的二进制数为:1110000101110101,并转换为十进制数,得到十进制数p。
步骤6,查找步骤4建立的数据存储结构,定位到roaring bitmap索引号为r的roaring bitmap索引号;具体实现上,优选采用二分法查找定位到roaring bitmap索引号为r的roaring bitmap索引号。
再定位到的roaring bitmap索引号的下一级,即:定位到桶索引号为b的桶索引号;由此最终定位到roaring bitmap索引号为r、桶索引号为b的容器桶;将定位到的容器桶表示为容器桶C;
步骤7,十进制数p为16位的二进制数转换而来,因此,十进制数p的数值范围为:0,1,2,...(216-1);
基于十进制数p,采用以下方法,识别本次的用户唯一标识是否为新用户唯一标识,并对数据存储结构进行更新:其中,初始状态时,容器桶C为Array Container正向记录容器桶;
步骤7.1,如果容器桶C内存储的元素个数小于等于4096个,则容器桶C为ArrayContainer正向记录容器桶;其中,Array Container正向记录容器桶使用有序数组保存稀疏数据,Array Container正向记录容器桶的内部数据结构是有序的Short数组,数组容量动态变化,数组初始容量为0,数组最大容量为4096;当需要存储的数组数量超过4096时,Array Container正向记录容器桶转换为Bitmap Container容器桶;
此种情况下,判断十进制数p是否已存在于Array Container正向记录容器桶,优选方式为:采用二分法查找,判断十进制数p是否已存在于Array Container正向记录容器桶。
如果不存在,则代表本次的用户唯一标识为新用户唯一标识;并将十进制数p作为一个元素,存储到Array Container正向记录容器桶的对应位置;
步骤7.2,如果容器桶C内存储的元素个数大于4096,且小于61440时,此时容器桶C已由初始的Array Container正向记录容器桶转换为Bitmap Container容器桶;BitmapContainer容器桶使用位图保存稠密数据。
此种情况下,判断十进制数p是否已存在于Bitmap Container容器桶内,如果不存在,则代表本次的用户唯一标识为新用户唯一标识;并将十进制数p作为一个元素,采用位图方式,存储到Bitmap Container容器桶内;
其中,如果Bitmap Container容器桶符合压缩算法条件,则对Bitmap Container容器桶使用RLE算法进行压缩处理,Bitmap Container容器桶转换为Run Container容器桶;采用此种方式,能够有效降低数据存储占用空间。
步骤7.3,如果容器桶C内存储的元素个数大于等于61440,并且小于等于65536时,则容器桶C由Bitmap Container容器桶或Run Container容器桶,转换为Array Container反向记录容器桶;
首先,在转换为Array Container反向记录容器桶的初始时刻,Array Container反向记录容器桶内已存储的元素值形成集合1;0到65535组成的65536个元素形成集合2;取集合1和集合2的差集,写入到Array Container反向记录容器桶内,得到Array Container反向记录容器桶初始状态;
然后,判断十进制数p是否出现在Array Container反向记录容器桶内,如果出现,则代表本次的用户唯一标识为新用户唯一标识,并将Array Container反向记录容器桶内的十进制数p对应的元素删除;如果未出现,则代表本次的用户唯一标识不是新用户唯一标识,不对Array Container反向记录容器桶进行处理;
至此,成功识别到步骤1的用户唯一标识是否为新用户唯一标识。
还包括:步骤8,遍历数据存储结构,统计数据存储结构存储的用户总数量。
步骤8具体为:数据存储结构中,将各个roaring bitmap数据结构索引的各个桶内的元素数量相加,得到用户总数量。
因此,本发明提供的一种基于Roaring Bitmap的用户数据统计方法,使用高性能的Roaring Bitmap作为基础数据结构对Bitmap进行压缩,此外引入哈希算法并进行降位运算,使其支持字符型用户唯一标识,同时在计算性能与精度中找到平衡;在用户数据统计上具有空间占用小,计算速度快等特点,同时在数据持续增长的情况下依然能保持出色的性能。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视本发明的保护范围。

Claims (5)

1.一种基于Roaring Bitmap的用户数据统计方法,其特征在于,包括以下步骤:
步骤1,将用户唯一标识依次通过信息摘要算法MD5及MurmurHash3算法,哈希成int64位哈希值h;
步骤2,将哈希值h通过取余法进行降位,从而得到新的用户唯一标识u;
具体的,u=h Mod 2n;其中,n代表用户唯一标识哈希后的取值范围调节系数;Mod代表求余函数;
步骤3,将新的用户唯一标识u转化为二进制数;如果二进制数不足64位,则将二进制数的末位补0,从而得到64位的二进制数;
步骤4,建立数据存储结构;所述数据存储结构采用两级索引结构,第一级索引是roaring bitmap数据结构索引,该roaring bitmap数据结构索引包括232个roaring bitmap索引号,roaring bitmap索引号编号为:0,1,2,...(232-1);
对于每个roaring bitmap索引号,关联第二级索引,第二级索引是桶结构索引,桶结构索引包括216个桶索引号,桶索引号编号为:0,1,2,...(216-1);
每个桶索引号唯一对应一个容器桶;所述容器桶在四种类型之间转换:ArrayContainer正向记录容器桶、Bitmap Container容器桶、Array Container反向记录容器桶和Run Container容器桶;其中,Array Container正向记录容器桶和Array Container反向记录容器桶均为Array Container类型容器桶;
步骤5,对于步骤3得到的64位的二进制数,取第33-64位的二进制数,并转换为十进制数,得到十进制数r;取第17-32位的二进制数,并转换为十进制数,得到十进制数b;取第1-16位的二进制数,并转换为十进制数,得到十进制数p;
步骤6,查找步骤4建立的数据存储结构,定位到roaring bitmap索引号为r的roaringbitmap索引号;再定位到的roaring bitmap索引号的下一级,即:定位到桶索引号为b的桶索引号;由此最终定位到roaring bitmap索引号为r、桶索引号为b的容器桶;将定位到的容器桶表示为容器桶C;
步骤7,十进制数p为16位的二进制数转换而来,因此,十进制数p的数值范围为:0,1,2,...(216-1);
基于十进制数p,采用以下方法,识别本次的用户唯一标识是否为新用户唯一标识,并对数据存储结构进行更新:其中,初始状态时,容器桶C为Array Container正向记录容器桶;
步骤7.1,如果容器桶C内存储的元素个数小于等于4096个,则容器桶C为ArrayContainer正向记录容器桶;其中,Array Container正向记录容器桶的内部数据结构是有序的Short数组,数组容量动态变化,数组初始容量为0,数组最大容量为4096;当需要存储的数组数量超过4096时,Array Container正向记录容器桶转换为Bitmap Container容器桶;
此种情况下,判断十进制数p是否已存在于Array Container正向记录容器桶,如果不存在,则代表本次的用户唯一标识为新用户唯一标识;并将十进制数p作为一个元素,存储到Array Container正向记录容器桶的对应位置;
步骤7.2,如果容器桶C内存储的元素个数大于4096,且小于61440时,此时容器桶C已由初始的Array Container正向记录容器桶转换为Bitmap Container容器桶;
此种情况下,判断十进制数p是否已存在于Bitmap Container容器桶内,如果不存在,则代表本次的用户唯一标识为新用户唯一标识;并将十进制数p作为一个元素,采用位图方式,存储到Bitmap Container容器桶内;
其中,如果Bitmap Container容器桶符合压缩算法条件,则对Bitmap Container容器桶使用RLE算法进行压缩处理,Bitmap Container容器桶转换为Run Container容器桶;
步骤7.3,如果容器桶C内存储的元素个数大于等于61440,并且小于等于65536时,则容器桶C由Bitmap Container容器桶或Run Container容器桶,转换为Array Container反向记录容器桶;
首先,在转换为Array Container反向记录容器桶的初始时刻,Array Container反向记录容器桶内已存储的元素值形成集合1;0到65535组成的65536个元素形成集合2;取集合1和集合2的差集,写入到Array Container反向记录容器桶内,得到Array Container反向记录容器桶初始状态;
然后,判断十进制数p是否出现在Array Container反向记录容器桶内,如果出现,则代表本次的用户唯一标识为新用户唯一标识,并将Array Container反向记录容器桶内的十进制数p对应的元素删除;如果未出现,则代表本次的用户唯一标识不是新用户唯一标识,不对Array Container反向记录容器桶进行处理;
至此,成功识别到步骤1的用户唯一标识是否为新用户唯一标识。
2.根据权利要求1所述的一种基于Roaring Bitmap的用户数据统计方法,其特征在于,步骤6中,采用二分法查找定位到roaring bitmap索引号为r的roaring bitmap索引号。
3.根据权利要求1所述的一种基于Roaring Bitmap的用户数据统计方法,其特征在于,步骤7.1中,采用二分法查找,判断十进制数p是否已存在于Array Container正向记录容器桶。
4.根据权利要求1所述的一种基于Roaring Bitmap的用户数据统计方法,其特征在于,还包括:步骤8,遍历数据存储结构,统计数据存储结构存储的用户总数量。
5.根据权利要求4所述的一种基于Roaring Bitmap的用户数据统计方法,其特征在于,步骤8具体为:数据存储结构中,将各个roaring bitmap数据结构索引的各个桶内的元素数量相加,得到用户总数量。
CN202011401560.XA 2020-12-04 2020-12-04 基于Roaring Bitmap的用户数据统计方法 Active CN112434085B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011401560.XA CN112434085B (zh) 2020-12-04 2020-12-04 基于Roaring Bitmap的用户数据统计方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011401560.XA CN112434085B (zh) 2020-12-04 2020-12-04 基于Roaring Bitmap的用户数据统计方法

Publications (2)

Publication Number Publication Date
CN112434085A true CN112434085A (zh) 2021-03-02
CN112434085B CN112434085B (zh) 2023-04-07

Family

ID=74691443

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011401560.XA Active CN112434085B (zh) 2020-12-04 2020-12-04 基于Roaring Bitmap的用户数据统计方法

Country Status (1)

Country Link
CN (1) CN112434085B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113420263A (zh) * 2021-06-30 2021-09-21 北京百度网讯科技有限公司 数据统计方法、装置、设备和存储介质
CN117435756A (zh) * 2023-12-18 2024-01-23 云筑信息科技(成都)有限公司 一种基于位图查询用户留存的数据处理方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150178336A1 (en) * 2013-07-18 2015-06-25 Tencent Technology (Shenzhen) Company Limited Method, device and storage medium for providing data statistics
CN106250564A (zh) * 2016-08-29 2016-12-21 北京首信科技股份有限公司 一种对海量数据的维度用户的处理方法
CN106487833A (zh) * 2015-08-26 2017-03-08 北京国双科技有限公司 网络监测中独立用户数的统计方法及装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150178336A1 (en) * 2013-07-18 2015-06-25 Tencent Technology (Shenzhen) Company Limited Method, device and storage medium for providing data statistics
CN106487833A (zh) * 2015-08-26 2017-03-08 北京国双科技有限公司 网络监测中独立用户数的统计方法及装置
CN106250564A (zh) * 2016-08-29 2016-12-21 北京首信科技股份有限公司 一种对海量数据的维度用户的处理方法

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113420263A (zh) * 2021-06-30 2021-09-21 北京百度网讯科技有限公司 数据统计方法、装置、设备和存储介质
CN113420263B (zh) * 2021-06-30 2023-08-04 北京百度网讯科技有限公司 数据统计方法、装置、设备和存储介质
CN117435756A (zh) * 2023-12-18 2024-01-23 云筑信息科技(成都)有限公司 一种基于位图查询用户留存的数据处理方法
CN117435756B (zh) * 2023-12-18 2024-03-26 云筑信息科技(成都)有限公司 一种基于位图查询用户留存的数据处理方法

Also Published As

Publication number Publication date
CN112434085B (zh) 2023-04-07

Similar Documents

Publication Publication Date Title
CN109325032B (zh) 一种索引数据存储及检索方法、装置及存储介质
CN101751406B (zh) 一种实现基于列存储的关系型数据库的方法及装置
US8255398B2 (en) Compression of sorted value indexes using common prefixes
CN104715039A (zh) 基于硬盘和内存的列式存储和查询方法及设备
CN112434085B (zh) 基于Roaring Bitmap的用户数据统计方法
US9292554B2 (en) Thin database indexing
CN102622434B (zh) 数据存储方法、查找方法及装置
WO2013152678A1 (zh) 元数据查询方法和装置
CN107330094B (zh) 动态存储键值对的布鲁姆过滤器树结构及键值对存储方法
CN101499065B (zh) 基于fa的表项压缩方法及装置、表项匹配方法及装置
CN116450656B (zh) 数据处理方法、装置、设备及存储介质
CN114268323B (zh) 支持行存的数据压缩编码方法、装置及时序数据库
CN106940708A (zh) 一种基于二分查找法实现ip范围定位的方法及系统
CN110297836B (zh) 基于压缩位图方式的用户标签存储方法和检索方法
CN116701440A (zh) 一种布谷鸟过滤器及数据插入、查询、删除方法
US20140067751A1 (en) Compressed set representation for sets as measures in olap cubes
CN114265849B (zh) 数据聚合方法及系统
US8533167B1 (en) Compressed set representation for sets as measures in OLAP cubes
CN101515253A (zh) 将文件写入存储介质与从存储介质读取文件的装置及方法
CN113254257B (zh) 数据存储媒体的损坏数据列的筛选方法
CN114266302A (zh) 面向异构内存设备的深度学习Embedding数据高效处理系统及方法
CN110321346B (zh) 一种字符串散列表实现方法和系统
CN112463837A (zh) 一种关系型数据库数据存储查询方法
CN111079935B (zh) 一种spark下的机器学习快速大规模样本签名方法
CN112632087B (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