CN105426449A - 海量数据查询方法和装置、服务器 - Google Patents

海量数据查询方法和装置、服务器 Download PDF

Info

Publication number
CN105426449A
CN105426449A CN201510758293.4A CN201510758293A CN105426449A CN 105426449 A CN105426449 A CN 105426449A CN 201510758293 A CN201510758293 A CN 201510758293A CN 105426449 A CN105426449 A CN 105426449A
Authority
CN
China
Prior art keywords
data
sublist
date
displaying page
target data
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.)
Pending
Application number
CN201510758293.4A
Other languages
English (en)
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.)
Beijing Xiaomi Technology Co Ltd
Xiaomi Inc
Original Assignee
Xiaomi Inc
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 Xiaomi Inc filed Critical Xiaomi Inc
Priority to CN201510758293.4A priority Critical patent/CN105426449A/zh
Publication of CN105426449A publication Critical patent/CN105426449A/zh
Pending legal-status Critical Current

Links

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/2455Query execution
    • 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/2453Query optimisation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Linguistics (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

本公开提供一种海量数据查询方法和装置、服务器,其中方法包括:接收用于在海量数据库中进行数据查询的查询请求,所述查询请求包括:要获取的目标数据对应的数据日期和数据所在的展示页;根据所述数据日期和展示页,从所述海量数据库中获取包括所述目标数据的至少一个数据子表;对所述至少一个数据子表中的数据进行过滤和排序,得到所述展示页包括的所述目标数据。本公开通过在海量数据库中通过多个数据子表存储数据,并选择其中包括查询目标数据的部分子表参与过滤和排序,相对于全量数据搜索,提高了海量数据查询的效率。

Description

海量数据查询方法和装置、服务器
技术领域
本公开涉及数据库技术,特别涉及一种海量数据查询方法和装置、服务器。
背景技术
伴随着互联网技术和信息技术的飞速发展以及云计算时代的来临,海量数据的处理越来越重要,海量数据蕴藏着巨大的价值,越来越多的企业和科研机构开始挖掘海量数据中潜藏的规律,以用于商业或科研决策。其中,在对海量数据的处理中可以包括对数据有效的搜索,要从海量数据中查询到符合用户搜索条件的部分数据展示给用户查看。
发明内容
本公开提供一种海量数据查询方法和装置、服务器,以提高海量数据查询的效率。
根据本公开实施例的第一方面,提供一种海量数据查询方法,包括:
接收用于在海量数据库中进行数据查询的查询请求,所述查询请求包括:要获取的目标数据对应的数据日期和数据所在的展示页;
根据所述数据日期和展示页,从所述海量数据库中获取包括所述目标数据的至少一个数据子表;
对所述至少一个数据子表中的数据进行过滤和排序,得到所述展示页包括的所述目标数据。
在一实施例中,所述根据数据日期和展示页,由所述海量数据库中获取包括目标数据的至少一个数据子表,包括:根据所述目标数据对应的数据日期、以及所述数据子表的日期维度,得到所述日期维度符合所述数据日期的数据子表作为待选数据子表;根据所述展示页、每个展示页包括的数据量以及所述数据子表的日期维度,由所述待选数据子表中获取包括所述展示页数据的子表即所述数据子表。
在一实施例中,所述对所述至少一个数据子表中的数据进行过滤,包括:根据获取的过滤条件,由所述至少一个数据子表中获取符合所述过滤条件的查询结果数据。
在一实施例中,所述对所述至少一个数据子表中的数据进行排序,包括:将所述查询结果数据加载至内存,并使用桶排序,由所述查询结果数据中选择所述展示页对应的目标数据桶,所述目标数据桶包括所述目标数据;对所述目标数据桶的数据进行堆排序得到所述目标数据。
在一实施例中,所述海量数据库是关系型数据库,所述关系型数据库包括按照日期维度分布的各个所述数据子表。
根据本公开实施例的第二方面,提供一种海量数据查询装置,包括:
请求接收模块,用于接收用于在海量数据库中进行数据查询的查询请求,所述查询请求包括:要获取的目标数据对应的数据日期和数据所在的展示页;
子表确定模块,用于根据所述数据日期和展示页,由所述海量数据库中获取包括所述目标数据的至少一个数据子表;
过滤排序模块,用于对所述至少一个数据子表中的数据进行过滤和排序,得到所述展示页包括的所述目标数据。
在一实施例中,所述子表确定模块包括:初选子模块,用于根据所述目标数据对应的数据日期、以及所述数据子表的日期维度,得到所述日期维度符合所述数据日期的数据子表作为待选数据子表;终选子模块,用于根据所述展示页、每个展示页包括的数据量以及所述数据子表的日期维度,由所述待选数据子表中获取包括所述展示页数据的子表即所述数据子表。
在一实施例中,所述过滤排序模块,包括:数据过滤子模块,用于根据获取的过滤条件,由所述至少一个数据子表中获取符合所述过滤条件的查询结果数据。
在一实施例中,所述过滤排序模块还包括:内存排序子模块,用于将所述查询结果数据加载至内存,并使用桶排序,由所述查询结果数据中选择所述展示页对应的目标数据桶,所述目标数据桶包括所述目标数据;对所述目标数据桶的数据进行堆排序得到所述目标数据。
根据本公开实施例的第三方面,提供一种服务器,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为:接收用于在海量数据库中进行数据查询的查询请求,所述查询请求包括:要获取的目标数据对应的数据日期和数据所在的展示页;根据所述数据日期和展示页,由所述海量数据库中获取包括所述目标数据的至少一个数据子表;对所述至少一个数据子表中的数据进行过滤和排序,得到所述展示页包括的所述目标数据。
本公开的实施例提供的技术方案可以包括以下有益效果:通过在海量数据库中通过多个数据子表存储数据,并选择其中包括查询目标数据的部分子表参与过滤和排序,相对于全量数据搜索,提高了海量数据查询的效率。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
图1是根据一示例性实施例示出的一种海量数据查询方法的流程图;
图2是根据一示例性实施例示出的获取数据子表的流程图;
图3是根据一示例性实施例示出的一种海量数据查询装置的结构图;
图4是根据一示例性实施例示出的另一种海量数据查询装置的结构图;
图5是根据一示例性实施例示出的一种服务器的框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
本公开的海量数据查询方法,可以应用于在海量数据库中查询搜索所需要的数据,并且本公开的方法将可以使得查询更加快速。例如,本公开的方法所应用的海量数据库可以是关系型数据库,并且是对关系型数据库的千万级别大数据查询提供的查询方案,以提高在存储海量数据的关系型数据库中查询数据的效率,在数据库中的数据具备一定共性,例如,这些数据都是基于日期时间存储,且在展示上需要进行分页和排序处理。
图1示例了本公开的海量数据查询方法的流程,该方法可以包括:
101、接收用于在海量数据库中进行数据查询的查询请求,该查询请求包括:要获取的目标数据对应的数据日期和数据所在的展示页;
102、根据数据日期和展示页,由海量数据库中获取包括目标数据的至少一个数据子表;
103、对上述至少一个数据子表中的数据进行过滤和排序,得到展示页包括的目标数据。
结合图1所示的流程,例如,该方法可以是关系型数据库执行,数据库会提供给用户供查询数据的接口(例如,点击触发的数据查询选项),用户可以通过该接口向数据库发送查询请求,以由数据库存储的海量数据中搜索到需要获取的数据,可以称为“目标数据”。数据库将通过执行本例子的查询方法来尽快的获取到用户需要的目标数据。
示例性的,在数据库中存储的海量数据,可以是用户对一些特定的网页的访问信息,比如,在2015-7-1这天,网站A中的子页面a的总点击次数是N次,访问该子页面的用户总数是n。当然也可以是其他统计数据,这些数据的总数是巨大的,成为在数据库存储的海量数据。用户请求在数据库中获取的目标数据,例如,可以是要获取并查看2015年1月份至7月份的某一类关于用户访问网站A的数据,以了解该网站的实际访问情况。
在一实施例中,在步骤101中,用户在向数据库发送查询请求时,可以向数据库提供一定的查询条件,以供数据库获知用户要获取哪些数据。在本例子的方法中,例如,可以在查询请求中携带:目标数据对应的数据日期以及目标数据所在的展示页。
例如,目标数据对应的数据日期,仍以上面提到的例子来说,当用户要查看2015年1月份至7月份的用户对网站A的一类访问数据时,可以将“2015年1月份至7月份”作为“目标数据对应的数据日期”提供给数据库,作为其中一个查询条件。当然,数据日期也可以不是一个日期区间,而是2015-7-1类似的单个一天,或者也可以更细化到2015-7-1的晚上20点至22点等,可以根据数据库中数据的记录格式以及用户的查询需求来设定,本公开对此不做限定。
又例如,目标数据所在的展示页,仍以上面提到的例子来说,2015年1月份至7月份的关于网站A的一类访问数据,可能有很多,假设有10000条记录。示例的,这些数据数据库可以提供给查询的用户以可视化的显示,比如,用户可以在手机上(或PC上)查看数据库提供的查询结果数据的列表。由于数据量很大,在可视化提供时,可以分页展示,本例子可以将显示数据的各个页称为“展示页”,假设每个展示页包括的数据量是100条记录(每条记录可以是一个数据行),那么需要100个展示页才能显示1月份至7月份的全部数据。而在本例子中,用户有可能只想要查看其中第7页数据,即第7个展示页,那么该第7展示页可以称为“目标数据所在的展示页”,而第7展示页中的数据即为目标数据。
可以看到,在步骤101中,数据库已经获取到了用户所要查询的数据的查询条件或者也可以称为数据特征,例如,是在2015年1月份至7月份的关于网站A的一类访问数据中,在分页展示时的第7展示页的数据。
在步骤102中,数据库可以根据查询条件,由海量数据库中获取包括目标数据的至少一个数据子表。
需要说明的是,本例子中的关系型数据库,在查询数据时并未采用全量查询,即不会进行数据库全部数据的搜索;为了提供搜索的效率,本公开可以将关系型数据库设定为通过至少一个数据子表来存储的形式,并且这些数据子表可以是按照日期维度分布式存储的。
示例性的,对于上述存储用户的网页访问数据的数据库,可以按照日期维度,一个月份的数据用一个数据子表来存储,比如,1月份的数据存放在数据子表D1,2月份的数据存储在数据子表D2,以此类推,这些数据子表可以是分布式的位于不同的物理机器上,以避免在单一机器物理存储上的存储能力的局限性;并且,可以将通常的一张千万级大表的数据存储,在不改变数据一致性的前提下划分为若干个百万级的数据子表的存储。
可以看到,在步骤102中,数据库将搜索的范围缩小到了其中一部分数据,即所述的包括目标数据的至少一个数据子表中。举例如下:仍然假设用户要查询1月份至7月份的某类数据,数据所在的展示页为第7页,即查询页码为7,并假设一个月份的数据存储在一张数据子表中,那么数据库将搜索范围缩小到6月份和7月份这两张子表,即页码为7的数据包含在这2张子表中,在本实施例中,本次的数据查询只会在这两张数据子表执行,就不必对其他数据子表逐一进行查询然后找到第7页用户需要的数据。这种只搜索部分子表的方式相对于全量搜索,减少了不必要的子表查询,提高了查询速度。
在一实施例中,数据库由海量数据库中获取包括目标数据的至少一个数据子表的方式,可以有多种。图2示例了一个示例性实施例中的获取部分数据子表的方式,例如,数据库可以按照如下方式获取到6和7月份这两张子表,包括:
201、根据所述目标数据对应的数据日期、以及所述数据子表的日期维度,得到所述日期维度符合所述数据日期的数据子表作为待选数据子表;
202、根据展示页、每个展示页包括的数据量以及数据子表的日期维度,由所述待选数据子表中获取包括所述展示页数据的子表即数据子表。
结合图2所示,在步骤201中,例如,可以根据用户提供的数据日期“2015年1月份至7月份”的关于网站A的一类访问数据,以及数据子表的日期维度,在每个数据子表都有日期维度,比如,一个数据子表的日期维度是2015年6月份,另一个数据子表的日期维度是2015年7月份,得到日期维度符合数据日期数据子表作为待选数据子表,那就是数据库会获取到2015年1月份至7月份分别对应的七张数据子表作为待选的数据子表。
例如,用户只想要查看第3页的数据,即,假设2015年1月份至7月份的200条数据需要展示10页(每个展示页包括20条数据),那么如果只确定好包括第3页的20条数据的数据子表进行查询排序,将相对于七张子表都参与查询排序,将进一步提高数据查询的效率。因此,在步骤202中,数据库可以由上述201中得到的七张待选数据子表获取包括第3页数据的子表。
示例性的,可以根据展示页、每个展示页包括的数据量以及数据子表的日期维度来确定。此外,数据库还可以预先确定每个数据子表包含的查询结果数据量。比如,7月份对应的数据子表包括10条查询结果数据,6月份的数据子表包括20条查询结果数据,等,这些查询结果数据可以通过数据库进行子表查询的预处理得到并利用缓存机制存储起来,以供后续使用。如下的表1示例了一种七张子表中各自包含的查询结果数据量:
表1查询结果数据量
在上述表1的基础上,假设要由七张子表中获取包括展示页为第3页的数据的子表,并且每个展示页的数据量为20,待选子表的日期维度分别为1月份、2月份,依次至7月份,那么位于展示页第3页的数据即为1月份至7月份之间的第41条至60条查询结果数据。
按照如下方法可以得到:展示页为3的第41条至60条查询结果数据应该包含于5月份子表、4月份子表以及3月份子表这3张子表中。例如,因为7月份~5月份对应的3张子表累计的数据量为10+20+15=45>=41(展示页为3的该页数据的第一条记录即第41条查询结果数据);而7月份~3月份对应的5张子表累计的条目数为10+20+15+10+10=65>=60(展示页为3的该页数据的最后一条记录即第60条查询结果数据);因此,可以锁定“起始终选子表”为5月份子表,“终止终选子表”为3月份子表,即终选目标子表依次为5月份子表、4月份子表和3月份子表。
此外,数据库还可以缓存查询结果数据量表,例如,上述表1的数据,或者,依次各个子表累计的数据量(7月和6月共30条数据,7至5月共45条数据,7至4月共55条数据等),并利用二分搜索的方法确定“起始终选子表”和“终止终选子表”。
上述是以3至5月份对应的数据子表的锁定为例,在具体实施中,选择出的子表还可以是6月份的数据子表和7月份的数据子表,其中,除了第3页展示的数据之外,可能还包括不在第3页展示的数据,例如,以6月份的数据子表为例,在第3页展示的“2015-6-21至2015-7-10”日期区间数据中,6月份的数据子表包括了“2015-6-21至2015-6-30”的数据,而“2015-6-01至2015-6-20”的数据并不是第3页的数据,因此,还需要对这两张子表中的数据做进一步的过滤处理,以进一步减少处理量,提高查询效率。
在步骤103中,数据库对至少一个数据子表中的数据进行过滤和排序。在本步骤中,数据库对数据子表的过滤,可以包括如下两方面:
一个方面的过滤是:例如,用户可以对选择得到的6月份的数据子表和7月份的数据子表中,通过给定过滤条件,进一步选择出其中包括的符合一定条件的数据。比如,过滤条件可以由很多的访问数据中通过关键词“主页”过滤到对主页访问的数据;或者选择出“点击次数”的数据。这些数据可以称为查询结果数据。如上所述的,这些查询结果数据在各个子表中都有一定的数量,比如表1所示的,在7月份的子表中包括10条查询结果数据,在6月份的子表中包括20条查询结果数据等。在进行过滤时,可以对数据子表中常用的查询字段建立索引,以保证根据索引过滤数据的效率。
另一个方面的过滤是:将上述选择出的查询结果数据都加载至内存,并使用桶排序,由所述查询结果数据中选择出展示页对应的目标数据对应的目标数据桶,进一步减少参与排序的数据量。
例如,首先,在桶排序中进行数据桶的划分:可以对子表过滤得到的查询结果数据(数据量级为N)进行简单的区间划分,将所有数据相对均匀地被划分到n个数据桶中,不妨假设为B1,B2,...,Bn。其中,每个数据桶的数据量级不妨假设为m(理想状况下可以认为m=N/n),且保证这n个数据桶之间的桶数据是相对有序的,而桶内数据则是无序的(例如,B1内的所有数据都会排在B2内的所有数据之前,而B1或B2内的数据并未排序)。
示例性的,对于6月份的数据子表和7月份的数据子表,比如,可以将5天的数据放在一个数据桶中,即6-1的数据至6-5的数据在数据桶S1,6-6至6-10的数据在数据桶S2,以此类推,那么用户想要查看的展示页第3页的目标数据“2015-6-21至2015-7-10”的数据将位于S5至S8中这四个数据桶中。各个桶之间是相对有序的,但是每个桶内的数据可以是无序的。
接着,可以进行数据桶的锁定,例如,从上述的6月份和7月份的数据子表分布的多个数据桶中,将只包括目标数据“2015-6-21至2015-7-10”的数据桶S5至S8确定出来,进一步减少了参与最终排序的数据量。数据桶锁定的步骤与上述子表锁定的步骤原理类似,只是数据库需要预先得知的是每个数据桶所对应的查询结果数据量。
在进行上述的数据过滤后,已经基本上只包括目标数据的数据桶S5至S8,这些数据桶可以称为目标数据桶。在此基础上,可以对目标数据桶的数据进行效率较为稳定的堆排序,所需的时间代价为k*O(mlgm),并在排序后反馈给用户即可。例如,数据桶S5至S8中包括的即为“2015-6-21至2015-7-10”的数据,即这几个数据桶中的数据包含了展示页的第3页的数据,数据库可以对这些数据根据某些指标进行排序,比如,可以按照访问量进行降序排序,并将排序后的目标数据反馈至查询用户。
由上述描述的海量数据查询方法可以看到,本公开的方法将关系型数据库的大表拆分为分布式存储的多个数据子表,并选择其中包括查询目标数据的部分子表参与过滤和排序,相对于全量数据搜索,将提高查询效率。并且,通过对数据桶进一步过滤得到只包括目标数据的数据桶参与排序,又可以进一步减少参与处理的数据量,进一步提高查询效率。而且,使用桶排序和堆排序这两种效率稳定的内存排序机制,也保证了查询速度的高效。
为了实现上述的海量数据查询方法,本公开还提供了一种海量数据查询装置,可以应用于数据库,例如应用于关系型数据库,如图3所示,该装置可以包括:请求接收模块31、子表确定模块32和过滤排序模块33;其中,
请求接收模块31,用于接收用于在海量数据库中进行数据查询的查询请求,查询请求包括:要获取的目标数据对应的数据日期和数据所在的展示页;
子表确定模块32,用于根据所述数据日期和展示页,由所述海量数据库中获取包括所述目标数据的至少一个数据子表;
过滤排序模块33,用于对所述至少一个数据子表中的数据进行过滤和排序,得到所述展示页包括的所述目标数据。
进一步的,参见图4所示,子表确定模块32可以包括:初选子模块321和终选子模块322;其中,
初选子模块321,用于根据所述目标数据对应的数据日期、以及所述数据子表的日期维度,得到所述日期维度符合所述数据日期的数据子表作为待选数据子表;
终选子模块322,用于根据所述展示页、每个展示页包括的数据量以及所述数据子表的日期维度,由所述待选数据子表中获取包括所述展示页数据的子表即所述数据子表。
过滤排序模块33可以包括:数据过滤子模块331和内存排序子模块332;
数据过滤子模块331,用于根据获取的过滤条件,由所述至少一个数据子表中获取符合所述过滤条件的查询结果数据;
内存排序子模块332,用于将所述查询结果数据加载至内存,并使用桶排序,由查询结果数据中选择所述展示页对应的目标数据桶,所述目标数据桶包括所述目标数据;对目标数据桶的数据进行堆排序得到所述目标数据。
图5是根据一示例性实施例示出的一种服务器500的框图。参照图5,服务器500可以包括处理组件522,其进一步包括一个或多个处理器,以及由存储器532所代表的存储器资源,用于存储可由处理组件522的执行的指令,例如应用程序。存储器532中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件522被配置为执行指令,以执行上述方法:接收用于在海量数据库中进行数据查询的查询请求,所述查询请求包括:要获取的目标数据对应的数据日期和数据所在的展示页;根据所述数据日期和展示页,由所述海量数据库中获取包括所述目标数据的至少一个数据子表;对所述至少一个数据子表中的数据进行过滤和排序,得到所述展示页包括的所述目标数据。
服务器500还可以包括一个电源组件526被配置为执行服务器500的电源管理,一个有线或无线网络接口550被配置为将服务器500连接到网络,和一个输入输出(I/O)接口558。服务器500可以操作基于存储在存储器532的操作系统,例如WindowsServerTM,MacOSXTM,UnixTM,LinuxTM,FreeBSDTM或类似。
在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器,上述指令可由装置的处理器执行以完成上述方法。例如,所述非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。

Claims (10)

1.一种海量数据查询方法,其特征在于,包括:
接收用于在海量数据库中进行数据查询的查询请求,所述查询请求包括:要获取的目标数据对应的数据日期和数据所在的展示页;
根据所述数据日期和展示页,从所述海量数据库中获取包括所述目标数据的至少一个数据子表;
对所述至少一个数据子表中的数据进行过滤和排序,得到所述展示页包括的所述目标数据。
2.根据权利要求1所述的方法,其特征在于,所述根据数据日期和展示页,由所述海量数据库中获取包括目标数据的至少一个数据子表,包括:
根据所述目标数据对应的数据日期、以及所述数据子表的日期维度,得到所述日期维度符合所述数据日期的数据子表作为待选数据子表;
根据所述展示页、每个展示页包括的数据量以及所述数据子表的日期维度,由所述待选数据子表中获取包括所述展示页数据的子表即所述数据子表。
3.根据权利要求1所述的方法,其特征在于,所述对所述至少一个数据子表中的数据进行过滤,包括:
根据获取的过滤条件,由所述至少一个数据子表中获取符合所述过滤条件的查询结果数据。
4.根据权利要求3所述的方法,其特征在于,所述对所述至少一个数据子表中的数据进行排序,包括:
将所述查询结果数据加载至内存,并使用桶排序,由所述查询结果数据中选择所述展示页对应的目标数据桶,所述目标数据桶包括所述目标数据;
对所述目标数据桶的数据进行堆排序得到所述目标数据。
5.根据权利要求1所述的方法,其特征在于,所述海量数据库是关系型数据库,所述关系型数据库包括按照日期维度分布的各个所述数据子表。
6.一种海量数据查询装置,其特征在于,包括:
请求接收模块,用于接收用于在海量数据库中进行数据查询的查询请求,所述查询请求包括:要获取的目标数据对应的数据日期和数据所在的展示页;
子表确定模块,用于根据所述数据日期和展示页,由所述海量数据库中获取包括所述目标数据的至少一个数据子表;
过滤排序模块,用于对所述至少一个数据子表中的数据进行过滤和排序,得到所述展示页包括的所述目标数据。
7.根据权利要求6所述的装置,其特征在于,所述子表确定模块包括:
初选子模块,用于根据所述目标数据对应的数据日期、以及所述数据子表的日期维度,得到所述日期维度符合所述数据日期的数据子表作为待选数据子表;
终选子模块,用于根据所述展示页、每个展示页包括的数据量以及所述数据子表的日期维度,由所述待选数据子表中获取包括所述展示页数据的子表即所述数据子表。
8.根据权利要求6所述的装置,其特征在于,所述过滤排序模块,包括:
数据过滤子模块,用于根据获取的过滤条件,由所述至少一个数据子表中获取符合所述过滤条件的查询结果数据。
9.根据权利要求8所述的装置,其特征在于,所述过滤排序模块还包括:
内存排序子模块,用于将所述查询结果数据加载至内存,并使用桶排序,由所述查询结果数据中选择所述展示页对应的目标数据桶,所述目标数据桶包括所述目标数据;对所述目标数据桶的数据进行堆排序得到所述目标数据。
10.一种服务器,其特征在于,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为:接收用于在海量数据库中进行数据查询的查询请求,所述查询请求包括:要获取的目标数据对应的数据日期和数据所在的展示页;根据所述数据日期和展示页,由所述海量数据库中获取包括所述目标数据的至少一个数据子表;对所述至少一个数据子表中的数据进行过滤和排序,得到所述展示页包括的所述目标数据。
CN201510758293.4A 2015-11-09 2015-11-09 海量数据查询方法和装置、服务器 Pending CN105426449A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510758293.4A CN105426449A (zh) 2015-11-09 2015-11-09 海量数据查询方法和装置、服务器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510758293.4A CN105426449A (zh) 2015-11-09 2015-11-09 海量数据查询方法和装置、服务器

Publications (1)

Publication Number Publication Date
CN105426449A true CN105426449A (zh) 2016-03-23

Family

ID=55504661

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510758293.4A Pending CN105426449A (zh) 2015-11-09 2015-11-09 海量数据查询方法和装置、服务器

Country Status (1)

Country Link
CN (1) CN105426449A (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106503054A (zh) * 2016-09-26 2017-03-15 深圳市金立通信设备有限公司 一种数据查询方法及服务器
CN107894997A (zh) * 2017-10-19 2018-04-10 苏州工业大数据创新中心有限公司 工业时序数据的查询处理方法及系统
CN109918048A (zh) * 2018-12-27 2019-06-21 北京奇艺世纪科技有限公司 目标对象提取方法、装置、系统及计算机可读存储介质
CN109977135A (zh) * 2019-03-28 2019-07-05 北京奇艺世纪科技有限公司 一种数据查询方法、装置及服务器
CN111966677A (zh) * 2020-06-28 2020-11-20 北京百度网讯科技有限公司 数据报表的处理方法、装置、电子设备及存储介质
WO2024103599A1 (zh) * 2022-11-17 2024-05-23 浪潮电子信息产业股份有限公司 一种数据查询方法、系统、装置、设备及非易失性可读存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102201001A (zh) * 2011-04-29 2011-09-28 西安交通大学 基于倒排技术的快速检索方法
CN103886022A (zh) * 2014-02-24 2014-06-25 上海上讯信息技术股份有限公司 一种基于主键字段进行分页查询的查询设备及其方法
CN104123340A (zh) * 2014-06-25 2014-10-29 世纪禾光科技发展(北京)有限公司 一种数据库分表分页查询方法及系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102201001A (zh) * 2011-04-29 2011-09-28 西安交通大学 基于倒排技术的快速检索方法
CN103886022A (zh) * 2014-02-24 2014-06-25 上海上讯信息技术股份有限公司 一种基于主键字段进行分页查询的查询设备及其方法
CN104123340A (zh) * 2014-06-25 2014-10-29 世纪禾光科技发展(北京)有限公司 一种数据库分表分页查询方法及系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
鱼思故渊: ""海量数据处理问题 分而治之 hash表 堆排序"", 《HTTPS://BLOG.CSDN.NET/YUSIGUYUAN/ARTICLE/DETAILS/12903975》 *

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106503054A (zh) * 2016-09-26 2017-03-15 深圳市金立通信设备有限公司 一种数据查询方法及服务器
CN107894997A (zh) * 2017-10-19 2018-04-10 苏州工业大数据创新中心有限公司 工业时序数据的查询处理方法及系统
CN107894997B (zh) * 2017-10-19 2021-10-12 苏州工业大数据创新中心有限公司 工业时序数据的查询处理方法及系统
CN109918048A (zh) * 2018-12-27 2019-06-21 北京奇艺世纪科技有限公司 目标对象提取方法、装置、系统及计算机可读存储介质
CN109918048B (zh) * 2018-12-27 2022-09-06 北京奇艺世纪科技有限公司 目标对象提取方法、装置、系统及计算机可读存储介质
CN109977135A (zh) * 2019-03-28 2019-07-05 北京奇艺世纪科技有限公司 一种数据查询方法、装置及服务器
CN111966677A (zh) * 2020-06-28 2020-11-20 北京百度网讯科技有限公司 数据报表的处理方法、装置、电子设备及存储介质
CN111966677B (zh) * 2020-06-28 2024-04-19 北京百度网讯科技有限公司 数据报表的处理方法、装置、电子设备及存储介质
WO2024103599A1 (zh) * 2022-11-17 2024-05-23 浪潮电子信息产业股份有限公司 一种数据查询方法、系统、装置、设备及非易失性可读存储介质

Similar Documents

Publication Publication Date Title
CN105426449A (zh) 海量数据查询方法和装置、服务器
US11176114B2 (en) RAM daemons
US7657515B1 (en) High efficiency document search
Zhang et al. An efficient publish/subscribe index for e-commerce databases
JP2014517435A (ja) 検索方法および装置
CN102855309A (zh) 一种基于用户行为关联分析的信息推荐方法及装置
CN102799587A (zh) 一种论坛搜索方法和装置
US9852183B2 (en) Information providing method and system
WO2009085410A1 (en) Determining quality of tier assignments
CN104021125A (zh) 一种搜索引擎排序的方法、系统以及一种搜索引擎
US20140372412A1 (en) Dynamic filtering search results using augmented indexes
CN109753504A (zh) 数据查询方法及装置
CN102364467A (zh) 一种网络搜索方法和系统
CN103745006A (zh) 一种互联网信息搜索系统及方法
US20190243914A1 (en) Parallel query processing in a distributed analytics architecture
Pham et al. W-pathsim: novel approach of weighted similarity measure in content-based heterogeneous information networks by applying lda topic modeling
Bachhav et al. An efficient query optimizer with materialized intermediate views in distributed and cloud environment
Ajoudanian et al. Deep web content mining
CN103186650A (zh) 一种搜索方法和装置
US8990192B2 (en) Search engine optimization using a find operation
CN106528861A (zh) 一种添加内链的方法及装置
CN104636384B (zh) 一种处理文档的方法及装置
Butt et al. RecOn: Ontology recommendation for structureless queries
Lin et al. A more efficient algorithm to mine skyline frequent-utility patterns
CN102222067A (zh) 一种根据关键字ip地址进行精确查询的搜索方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication

Application publication date: 20160323

RJ01 Rejection of invention patent application after publication