CN112434085A - 基于Roaring Bitmap的用户数据统计方法 - Google Patents
基于Roaring Bitmap的用户数据统计方法 Download PDFInfo
- 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
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/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2462—Approximate or statistical queries
-
- 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
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy 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的用户数据统计方法。
背景技术
随着互联网的不断发展,各类产品层出不穷,对用户数据进行统计分析可以可以支持企业的宏观规划,了解市场现状及趋势;还可以确定产品运营状况,改进产品方向,因此,对用户数据进行统计分析,具有重要意义。
对海量用户数据进行统计分析,是一件非常费时且消耗资源的事情,特别是在面对多维度实时用户数量统计时,如果不能高效的完成统计分析,可能导致任务持续延迟直至失败。
目前最常用的用户统计方法为:基于关系型数据库(如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数据结构索引的各个桶内的元素数量相加,得到用户总数量。
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)
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)
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 | 北京国双科技有限公司 | 网络监测中独立用户数的统计方法及装置 |
-
2020
- 2020-12-04 CN CN202011401560.XA patent/CN112434085B/zh active Active
Patent Citations (3)
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)
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 |