一种基于bitmap的多维数据查询系统转让专利

申请号 : CN202110010223.6

文献号 : CN112328608B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 朱金星张静雅沈璞祝文东

申请人 : 北京云真信科技有限公司

摘要 :

本发明涉及一种基于bitmap的多维数据查询系统,包括基于M个维度数据生成的bitmap数据表集合{G1,G2…Gm…GM}、处理器和存储有计算机程序的存储器,其中,Gm表示第m维度的数据对应的第m维度数据表子集,m=1,2…M,M为正整数,当所述计算机程序被处理器执行时,实现以下步骤:步骤S1、获取数据查询请求;步骤S2、解析所述数据查询请求,确定查询数据维度、查询时间窗、每一查询数据维度对应的参数目标状态信息;步骤S3、在每一查询数据维度对应的数据表子集中获取所述查询时间窗对应的第一查询数据;步骤S4、根据每一查询数据维度对应的参数目标状态信息和第一查询数据确定目标数据id。本发明所述系统提高了多维数据的查询效率。

权利要求 :

1.一种基于bitmap的多维数据查询系统,其特征在于,包括基于M个维度数据生成的bitmap数据表集合{G1,G2…Gm…GM}、处理器和存储有计算机程序的存储器,其中,Gm表示第m维度的数据对应的第m维度数据表子集,m=1,2…M,M为正整数,当所述计算机程序被处理器执行时,实现以下步骤:

步骤S1、获取数据查询请求;

步骤S2、解析所述数据查询请求,确定查询数据维度、查询时间窗、每一查询数据维度对应的参数目标状态信息;

步骤S3、在每一查询数据维度对应的数据表子集中获取所述查询时间窗对应的第一查询数据;

步骤S4、根据每一查询数据维度对应的参数目标状态信息和第一查询数据确定目标数据id;

当所述计算机程序被处理器执行时,还实现以下步骤:步骤S11、以每一维度数据对应的维度参数信息构建对应数据表的列,以自增键值构建对应数据表的行,每一键值对应一个唯一的数据id,每一数据id对应所述M个维度的数据;

步骤S12、遍历数据源中的所有M维度原始数据,判断每一数据表中,数据id对应的维度参数信息是否存在,若存在,则在所述数据表中对应的位置的状态值标注第一标识,否则,标注第二标识;

步骤S13、判断每一维度数据的变化频率,若数据变化频率大于等于预设的第一频率阈值,则每间隔预设的第一时间段更新并生成一张该维度数据在该第一时间段内对应的数据表;若数据变化频率大于等于预设的第二频率阈值且小于预设的第一频率阈值,则每间隔预设的第二时间段更新并生成一张该维度数据在该第二时间段内对应的数据表,所述第一时间段小于所述第二时间段;若数据变化频率小于第二频率阈值,则实时监测该维度的数据是否更新,若有更新,则对应更新该维度的数据表。

2.根据权利要求1所述的系统,其特征在于,所述系统还包括第一映射表,用于配置所述数据id和所述数据表中键值的映射关系。

3.根据权利要求1所述的系统,其特征在于,所述M维度对应的所有数据表采用分布式存储方式存储在多个集群中。

4.根据权利要求1所述的系统,其特征在于,当所述计算机程序被处理器执行时,还实现以下步骤:步骤S101、对于数据变化频率大于等于第二频率阈值的每一维度数据对应的所有数据表,获取生成时间距离当前时间超过预设第三时间段的所有数据表的查询频率;

步骤S102、将生成时间距离当前时间超过所述第三时间段的所有数据表中查询频率低于预设查询频率的数据表删除。

5.根据权利要求1所述的系统,其特征在于,当所述计算机程序被处理器执行时,还实现以下步骤:步骤S201、获取距离当前时间的预设的第四时间段内,最后一次被查询的时间距离当前时间最长的数据表,并将该数据表删除。

6.根据权利要求1所述的系统,其特征在于,当所述计算机程序被处理器执行时,还实现以下步骤:步骤是301、实时监测当前所有维度的数据表所占的存储空间是否超过预设的存储阈值,若超过,则采用预设的压缩流程对当前所有维度的数据表进行压缩处理,所述预设阈值根据所述系统的当前剩余存储空间和系统性能确定。

7.根据权利要求1所述的系统,其特征在于,所述步骤S4包括:

步骤S41、判断每一查询数据维度对应的第一查询数据的参数状态值是否符合对应的参数目标状态信息,将所有查询数据维度对应的第一查询数据的参数状态值均符合对应的参数目标状态信息的数据id确定为目标数据id。

8.根据权利要求1所述的系统,其特征在于,所述系统还包括信息交互界面,用于接收用户输入的数据查询请求,以及显示目标数据id。

9.根据权利要求1所述的系统,其特征在于,所述查询数据维度包括3个维度的数据,分别为用户行为特征数据、用户app数据和用户轨迹信息,所述用户特征数据对应的参数信息包括多个用户标签信息,所述用户app数据对应的参数信息包括多个app名称信息,所述用户轨迹信息包括预设地理位置范围内的位置信息,所述数据id为设备id。

说明书 :

一种基于bitmap的多维数据查询系统

技术领域

[0001] 本发明涉及计算机技术领域,尤其涉及一种基于bitmap的多维数据查询系统。

背景技术

[0002] 随着计算机技术的发展,数据量和数据维度逐渐增多。数据通常分布在不同的集群中,很多数据字符串较长,数据结构较大,且不同的集群中的数据结构可能存在差异。当
需要对多个维度的数据进行分析时,同行需要从多个集群中查询并获取大量的多个维度的
数据,并进行聚合处理,但由于有些数据的数据结构较大,且不同集群的数据结构的差异
性、数据量大等原因,导致在对多维数据处理的过程中,数据查询速度慢、运算量大,导致处
理效率低。由此可知,如何提高多维数据的查询效率成为亟待解决的技术问题。

发明内容

[0003] 本发明目的在于,提供一种基于bitmap的多维数据查询系统,提高了多维数据的查询效率。
[0004] 本发明提供了一种基于bitmap的多维数据查询系统,包括基于M个维度数据生成的bitmap数据表集合{G1,G2…Gm…GM}、处理器和存储有计算机程序的存储器,其中,Gm表
示第m维度的数据对应的第m维度数据表子集,m=1,2…M,M为正整数,当所述计算机程序被
处理器执行时,实现以下步骤:
[0005] 步骤S1、获取数据查询请求;
[0006] 步骤S2、解析所述数据查询请求,确定查询数据维度、查询时间窗、每一查询数据维度对应的参数目标状态信息;
[0007] 步骤S3、在每一查询数据维度对应的数据表子集中获取所述查询时间窗对应的第一查询数据;
[0008] 步骤S4、根据每一查询数据维度对应的参数目标状态信息和第一查询数据确定目标数据id。
[0009] 本发明与现有技术相比具有明显的优点和有益效果。借由上述技术方案,本发明提供的一种基于bitmap的多维数据查询系统可达到相当的技术进步性及实用性,并具有产
业上的广泛利用价值,其至少具有下列优点:
[0010] 本发明将多维数据采用bitmap数据表的形式存储,并基于bitmap数据表来对多维数据查询,提高了数据查询的速度,由位运算替代了现有的大量数据的聚合处理,能够实现
秒级查询,减少了运算量,提高了数据查询的效率。
[0011] 上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其他目的、特征和优点能够
更明显易懂,以下特举较佳实施例,并配合附图,详细说明如下。

附图说明

[0012] 图1为本发明实施例提供的基于bitmap的多维数据查询系统示意图;
[0013] 图2为本发明实施例提供的基于bitmap的多维数据查询流程示意图。

具体实施方式

[0014] 为更进一步阐述本发明为达成预定发明目的所采取的技术手段及功效,以下结合附图及较佳实施例,对依据本发明提出的一种基于bitmap的多维数据查询系统的具体实施
方式及其功效,详细说明如后。
[0015] 本发明实施例提供了一种基于bitmap的多维数据查询系统,如图1所示,包括基于M个维度数据生成的bitmap数据表集合{G1,G2…Gm…GM}、处理器和存储有计算机程序的存
储器,其中,Gm表示第m维度的数据对应的第m维度数据表子集,m=1,2…M,M为正整数,
bitmap数据表用一个bit位来标记某个元素所对应的value,而key即是该元素,由于数据表
使用bit位来存储数据,因此可以大大节省存储空间,加快数据查询效率。
[0016] 当所述计算机程序被处理器执行时,实现以下步骤,如图2所示:
[0017] 步骤S1、获取数据查询请求;
[0018] 步骤S2、解析所述数据查询请求,确定查询数据维度、查询时间窗、每一查询数据维度对应的参数目标状态信息;
[0019] 步骤S3、在每一查询数据维度对应的数据表子集中获取所述查询时间窗对应的第一查询数据;
[0020] 步骤S4、根据每一查询数据维度对应的参数目标状态信息和第一查询数据确定目标数据id。
[0021] 本发明实施例所述系统将多维数据采用bitmap数据表的形式存储,并基于bitmap数据表来对多维数据查询,提高了数据查询的速度,由位运算替代了现有的大量数据的聚
合处理,能够实现秒级查询,减少了运算量,提高了数据查询的效率。
[0022] 作为一种实施例,所述系统还包括信息交互界面,用于接收用户输入的数据查询请求,以及显示目标数据id。
[0023] 在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各步骤描述成顺序的处理,但是其中的许多
步骤可以被并行地、并发地或者同时实施。此外,各步骤的顺序可以被重新安排。当其操作
完成时处理可以被终止,但是还可以具有未包括在附图中的附加步骤。处理可以对应于方
法、函数、规程、子例程、子程序等等。
[0024] 作为一种实施例,当所述计算机程序被处理器执行时,还实现以下步骤:
[0025] 步骤S11、以每一维度数据对应的维度参数信息构建对应数据表的列,以自增键值构建对应数据表的行,每一键值对应一个唯一的数据id,每一数据id对应所述M个维度的数
据;
[0026] 其中,如果直接在数据表上存储原始的数据id,会在磁盘上占据较大空间,因此将每一数据id对应映射一个简直,配置在每一数据表中,既能节省存储空间,又能提高查询效
率。所述系统可包括第一映射表,用于配置所述数据id和所述数据表中键值的映射关系。
[0027] 步骤S12、遍历数据源中的所有M维度原始数据,判断每一数据表中,数据id对应的维度参数信息是否存在,若存在,则在所述数据表中对应的位置标注第一标识,否则,标注
第二标识;
[0028] 步骤S13、判断每一维度数据的变化频率,若数据变化频率大于等于预设的第一频率阈值,则每间隔预设的第一时间段更新并生成一张该维度数据在该第一时间段内对应的
数据表;若数据变化频率大于等于预设的第二频率阈值且小于预设的第一频率阈值,则每
间隔预设的第二时间段更新并生成一张该维度数据在该第二时间段内对应的数据表,所述
第一时间段小于所述第二时间段;若数据变化频率小于第二频率阈值,则实时监测该维度
的数据是否更新,若有更新,则对应更新该维度的数据表。
[0029] 通过步骤S12整体遍历数据源建立每一维度对应的数据表之后,基于步骤S13,根据维度数据的变化,在原始数据表的基础上更新后生成对应时间段内新的数据表,避免多
次遍历数据源,减少计算量。且步骤S13中根据数据变化频率将M个维度数据范围了三种,对
于变化频率小于第二频率阈值的维度数据,为静态数据,对应的维度参数信息通常不会变
化,例如是用户行为特征数据,但可能会新增或少量更改,因此,可以通过监测变化频率小
于第二频率阈值的维度数据的变化,根据变化来更新对应的数据表即可,无需重复生成大
量的数据表。对于变化频率大于等于第二频率阈值的维度数据,可以进一步细分为数据变
化频率大于等于预设的第一频率阈值的维度数据和数据变化频率大于等于预设的第二频
率阈值且小于预设的第一频率阈值的维度数据,并设定对应的时间段来生成对应的数据
表,既能满足查询需求,又能避免生成过多重复的数据表。作为示例,变化频率大于等于预
设的第一频率阈值的维度数据可以为用户轨迹数据,具体可为用户设备实时上报的位置信
息,例如geohash信息,此时可将第一时间段设置为1个小时,这样每间隔一小时会生成用户
轨迹数据对应的一张数据表。数据变化频率大于等于预设的第二频率阈值且小于预设的第
一频率阈值的维度数据可以为app数据,可将第二时间段设置为24小时,这样,每间隔24小
时会生成app数据对应的一张数据表。
[0030] 可以理解的是,数据源中的所有M维度原始数据可能分布在多个物理集群上,基于原始所有M维度原始数据生成的所有数据表也采用分布式存储方式存储在多个集群中。但
由于数据维度多,数据量大,因此随着各维度数据表的生成和更新,系统中将需要存储大量
的数据表,导致数据表所占存储空间逐渐增大,因此需要进一步采取存储优化措施,以提高
系统处理性能,以下通过几个具体存储优化实施例来具体说明。
[0031] 实施例一、
[0032] 当所述计算机程序被处理器执行时,还可实现以下存储优化步骤:
[0033] 步骤S101、对于数据变化频率大于等于第二频率阈值的每一维度数据对应的所有数据表,获取生成时间距离当前时间超过所述第三时间段的所有数据表的查询频率;
[0034] 步骤S102、将生成时间距离当前时间超过所述第三时间段的所有数据表中查询频率低于预设查询频率的数据表删除。
[0035] 例如,所述第三时间段可以设置为3个月,通过实施例一可以将3个月前的数据表中查询频率低于预设查询频率的数据表删除,避免无用的数据表占用存储空间,将仍有查
询需求的数据表保留,可以理解的是,第三时间段根据具体的查询需求来设定。
[0036] 实施例二、
[0037] 当所述计算机程序被处理器执行时,还可实现以下存储优化步骤:
[0038] 步骤S201、获取距离当前时间的预设的第四时间段内,最后一次被查询的时间距离当前时间最长的数据表,并将该数据表删除。
[0039] 其中,具体可采用最近最久未使用算法LRU,来获取第四时间段最久没有使用过的数据表,并将该数据表删除,可以理解的是,第四时间段根据具体的查询需求来设定。
[0040] 实施例三、
[0041] 当所述计算机程序被处理器执行时,还可实现以下存储优化步骤:
[0042] 步骤是301、实时监测当前所有维度的数据表所占的存储空间是否超过预设的存储阈值,若超过,则采用预设的压缩流程对当前所有维度的数据表进行压缩处理,所述预设
阈值根据所述系统的当前剩余存储空间和系统性能确定。
[0043] 可以理解的是,以上实施例的优化存储方法可以在本发明所述系统中单独使用,也可相互组合使用多个,例如可以将实施例一和实施例三结合使用,这样既能删除无用的
数据表,节约存储空间,在当前数据表存储空间达到一定程度时,又能及时有效地压缩数据
表,缓解存储压力,避免影响系统性能。
[0044] 作为一种实施例,所述步骤S4包括:
[0045] 步骤S41、判断每一查询数据维度对应的第一查询数据的参数状态值是否符合对应的参数目标状态信息,将所有查询数据维度对应的第一查询数据的参数状态值均符合对
应的参数目标状态信息的数据id确定为目标数据id。
[0046] 作为一种实施例,所述查询数据维度包括3个维度的数据,分别为用户行为特征数据、用户app数据和用户轨迹信息,所述用户特征数据对应的参数信息包括多个用户标签信
息,所述用户app数据对应的参数信息包括多个app名称信息,所述用户轨迹信息包括预设
地理位置范围内的位置信息,所述数据id为设备id。通过所述系统最后可查询确定目标设
备id,多个目标设备id组成设备id集,并可通过信息交互界面向用户展示,提升了用户体
验。
[0047] 以上所述,仅是本发明的较佳实施例而已,并非对本发明作任何形式上的限制,虽然本发明已以较佳实施例揭露如上,然而并非用以限定本发明,任何熟悉本专业的技术人
员,在不脱离本发明技术方案范围内,当可利用上述揭示的技术内容作出些许更动或修饰
为等同变化的等效实施例,但凡是未脱离本发明技术方案的内容,依据本发明的技术实质
对以上实施例所作的任何简单修改、等同变化与修饰,均仍属于本发明技术方案的范围内。