CN102081625B - 一种数据查询的方法及查询服务器 - Google Patents
一种数据查询的方法及查询服务器 Download PDFInfo
- Publication number
- CN102081625B CN102081625B CN 200910238665 CN200910238665A CN102081625B CN 102081625 B CN102081625 B CN 102081625B CN 200910238665 CN200910238665 CN 200910238665 CN 200910238665 A CN200910238665 A CN 200910238665A CN 102081625 B CN102081625 B CN 102081625B
- Authority
- CN
- China
- Prior art keywords
- probability
- condition
- occurrence
- querying
- querying condition
- 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.)
- Active
Links
Images
Abstract
本发明公开了一种数据查询的方法及查询服务器,主要内容包括:在预先根据设定时长内,根据各客户端发送的数据查询请求中携带的查询条件和为每个查询条件进行数据查询后得到的查询结果进行学习,得到查询条件和查询结果数据的对应关系,在接收到客户端发送的数据查询请求后,根据缓存的对应关系直接确定查询结果数据,减少数据查询的时间,提高数据查询的效率。
Description
技术领域
本发明涉及通信领域,尤其涉及一种数据查询的方法及查询服务器。
背景技术
企业在生产经营过程中往往会产生海量数据,这些海量数据经过加工处理后存储在数据库内,供企业内部人员或其他相关人员查询。以网络运营商为例,网络运营商的客户在计费、营业、账务和客服等多个业务流程中会产生海量数据,这些数据经过企业级数据仓库的转换、清洗、加载和汇总处理,最终形成为运营商客户的全面统一刻画,管理人员可以对处理后的数据进行分析查询。对海量数据进行查询的方法如下:
首先,客户端通过网页预置的一组查询选项设置查询条件,并通过查询请求将设置的查询条件提交给查询服务器。
然后,查询服务器根据接收到的查询请求中设置的查询条件,生成相应的SQL信令并提交给数据库服务器。
接着,数据库服务器解析SQL信令,并且关联、查找相应的数据库表。
最后,数据库服务器将查找结果通过Wb服务器发送给客户端。
但是,由于网络运营商的客户数量非常多(如数千万级),每一个客户的特征字段也可能非常多(特征字段达数百项甚至更多)。如果针对海量数据按照上述查询方法进行多用户并发的实时查询,在查询服务器和数据库的软硬件环境已达到优化极限的情况下,查询用户很难获得较快的响应速度,导致查询用户的体验较差。
为了提高查询响应速度,使用户的查询体验更好,提出了以下查询优化的方案:
数据库服务器将数据库表进行分隔,按照时间、类型等方式将每个数据库表拆分为多个数据库表,减少每个数据库表的数据量,在单次响应查询请求时查询的数据量较少,以达到快速响应的目的。但是,这种优化方案将数据库表以固定方式拆分,难以适应动态而灵活的查询环境;并且,割裂了数据库表的整体结构,针对多个数据库表频繁关联的数据查询过程反而会造成响应速度降低的问题,同时,数据库表的数量增大也会增加数据库服务器的维护和应用开发的复杂度。
综上所述,在现有的针对海量数据的查询方式下,多用户并行的数据查询时,查询速度较慢,影响用户的查询业务感受。
发明内容
本发明实施例提供一种数据查询方法和查询服务器,以解决针对海量数据的查询方式下,多用户并行的数据查询时查询速度慢的问题。
一种数据查询的方法,所述方法包括:
接收客户端的数据查询请求,所述数据查询请求中携带查询条件;
根据已存的查询条件和查询结果数据的对应关系,确定接收到的数据查询请求中携带的查询条件对应的查询结果数据;
将确定的所述查询结果数据返回给客户端;
确定所述查询条件和查询结果数据的对应关系包括:
在所述设定时长内接收到的全部查询条件中,确定每种相同查询条件的出现概率,以及确定出现概率不小于第一设定概率的查询条件,并针对每个出现概率不小于第一设定概率的查询条件,分别确定该查询条件和为该查询条件在数据库表中进行数据查询后得到的查询结果数据的对应关系;
或者
将所述设定时长划分为多个时间段,并针对每个时间段接收到的查询条件,分别确定每种相同查询条件在各时间段的出现概率,以及确定每种相同查询条件在设定时长内的出现概率,并根据任意相邻的两个时间段中,相同查询条件在后一时间段的出现概率和前一时间段的出现概率之差,确定该相同查询条件在所述设定时长内的平均概率差,针对每种相同查询条件,将相同查询条件在设定时长内的出现概率和平均概率差之和作为该相同查询条件的预测概率,并针对每个预测概率不小于第二设定概率的查询条件,分别确定该查询条件和为该查询条件在数据库表中进行数据查询后得到的查询结果数据的对应关系;
或者
在所述设定时长内接收到的全部查询条件中,确定每种相同查询条件的出现概率,并针对每个出现概率不小于第一设定概率的查询条件,分别确定该查询条件和为该查询条件在数据库表中进行数据查询后得到的查询结果数据的第一对应关系,以及将所述设定时长划分为多个时间段,并针对每个时间段接收到的查询条件,分别确定每种相同查询条件在各时间段的出现概率,并根据任意相邻的两个时间段中,相同查询条件在后一时间段的出现概率和前一时间段的出现概率之差,确定该相同查询条件在所述设定时长内的平均概率差,针对每种相同查询条件,将相同查询条件的平均出现概率和平均概率差之和作为该相同查询条件的预测概率,并针对每个预测概率不小于第二设定概率的查询条件,分别确定该查询条件和为该查询条件在数据库表中进行数据查询后得到的查询结果数据的第二对应关系,确定所述第一对应关系和第二对应关系中相同的查询条件,并将确定的该查询条件和查询结果数据的对应关系作为缓存的查询条件和查询结果数据的对应关系。
一种查询服务器,所述查询服务器包括:
请求接收模块,用于接收客户端的数据查询请求,所述数据查询请求中携带查询条件;
结果查询模块,用于根据已存的查询条件和查询结果数据的对应关系,确定接收到的数据查询请求中携带的查询条件对应的查询结果数据;
结果返回模块,用于将确定的所述查询结果数据返回给客户端;
所述查询服务器还包括:
第一概率确定模块,用于在所述设定时长内接收到的全部查询条件中,确定每种相同查询条件的出现概率;
第一比较模块,用于将每种相同查询条件的出现概率与第一设定概率进行比较,确定出现概率不小于第一设定概率的查询条件;
第一执行模块,用于针对每个出现概率不小于第一设定概率的查询条件,分别确定该查询条件和为该查询条件在数据库表中进行数据查询后得到的查询结果数据的对应关系;
或者
第二概率确定模块,用于将所述设定时长划分为多个时间段,并针对每个时间段接收到的查询条件,分别确定每种相同查询条件在各时间段的出现概率,以及确定每种相同查询条件在设定时长内的出现概率;
第一平均概率差确定模块,用于根据任意相邻的两个时间段中,相同查询条件在后一时间段的出现概率和前一时间段的出现概率之差,确定该相同查询条件在所述设定时长内的平均概率差;
第一预测概率确定模块,用于针对每种相同查询条件,将相同查询条件在设定时长内的出现概率和平均概率差之和作为该相同查询条件的预测概率;
第二比较模块,用于将每种相同查询条件的预测概率与第二设定概率进行比较,确定预测概率不小于第二设定概率的查询条件;
第二执行模块,用于针对每个预测概率不小于第二设定概率的查询条件,分别确定该查询条件和为该查询条件在数据库表中进行数据查询后得到的查询结果数据的对应关系;
或者
第三概率确定模块,用于在所述设定时长内接收到的全部查询条件中,确定每种相同查询条件的出现概率,以及,将所述设定时长划分为多个时间段,并针对每个时间段接收到的查询条件,分别确定每种相同查询条件在各时间段的出现概率;
第二平均概率差确定模块,用于根据任意相邻的两个时间段中,相同查询条件在后一时间段的出现概率和前一时间段的出现概率之差,确定该相同查询条件在所述设定时长内的平均概率差;
第二预测概率确定模块,用于针对每种相同查询条件,将相同查询条件的平均出现概率和平均概率差之和作为该相同查询条件的预测概率;
第三比较模块,用于将每种相同查询条件的出现概率与第一设定概率进行比较,确定出现概率不小于第一设定概率的查询条件,以及,将每种相同查询条件的预测概率与第二设定概率进行比较,确定预测概率不小于第二设定概率的查询条件;
第三执行模块,用于针对每个出现概率不小于第一设定概率的查询条件,分别确定该查询条件和为该查询条件在数据库表中进行数据查询后得到的查询结果数据的第一对应关系,以及针对每个预测概率不小于第二设定概率的查询条件,分别确定该查询条件和为该查询条件在数据库表中进行数据查询后得到的查询结果数据的第二对应关系,并将所述第一对应关系和第二对应关系中相同的查询条件和查询结果数据的对应关系作为缓存的查询条件和查询结果数据的对应关系。
本发明实施例的有益效果如下:
本发明实施例通过预先根据设定时长内,根据各客户端发送的数据查询请求中携带的查询条件和为每个查询条件进行数据查询后得到的查询结果学习查询条件和查询结果数据的对应关系,在接收到客户端发送的数据查询请求后,根据缓存的对应关系直接确定查询结果数据,减少数据查询的时间,提高数据查询的效率。
附图说明
图1为本发明实施例的网络拓扑结构示意图;
图2为本发明实施例一中进行数据查询的方法示意图;
图3为本发明实施例一中第一种自学习自适应技术示意图;
图4为本发明实施例一中第二种自学习自适应技术示意图;
图5为本发明实施例二中进行数据查询的方法示意图;
图6(a)、6(b)、6(c)和6(d)为本发明实施例三中查询服务器结构示意图。
具体实施方式
为了实现本发明目的,本发明实施例提出通过预先对查询条件和查询结果数据的学习和训练生成查询条件和查询结果数据的对应关系,并将该对应关系进行缓存,当有客户端发起数据查询请求时,根据所述对应关系确定该数据查询请求中的查询条件对应的查询结果数据,完成数据查询过程。本发明实施例中的缓存机制可以在进行数据查询时减少对数据库服务器硬盘的读取次数,更多地从内存中读取数据,提高了查询速度。
下面结合说明书附图对本发明实施例进行详细描述。
如图1所示,为本发明实施例的网络拓扑结构,主要涉及客户端、查询服务器(Application Server)和数据库服务器(Database),查询服务器是具有本发明实施例中对客户端的请求进行判断处理的网元,可以是现网中构建的网元,也可以是现网中网元的逻辑部件。查询服务器和数据库服务器可以集成在一起,也可以分别设置,在后续实施例中假设查询服务器和数据库服务器是独立的网元。
实施例一:
如图2所示,为本发明实施例一中进行数据查询的方法示意图,所述方法包括以下步骤:
步骤101:查询服务器预先存储查询条件和为每个查询条件在数据库表中进行数据查询后得到的查询结果数据的对应关系。
在本步骤中,查询服务器可以根据在当前时刻之前的设定时长内,各客户端发送的数据查询请求中携带的查询条件和为每个查询条件在数据库表中进行数据查询后得到的查询结果数据进行学习,确定查询条件和查询结果数据的对应关系,并缓存该对应关系。所述对应关系可以缓存在内存中,也可以缓存在硬盘内。
在本实施例中,如果查询服务器和数据库服务器集成在一起,则所述对应关系可以存储在数据库服务器的内存或硬盘里,也可以存储在独立的缓存区内;如果查询服务器和数据库服务器分别独立设置,则所述对应关系也可以存储在数据库服务器的内存或硬盘里或存储在独立的缓存区内,查询服务器可以对缓存的所述对应关系进行读写操作。
步骤102:查询服务器接收客户端的数据查询请求,所述数据查询请求中携带查询条件。
预先缓存查询条件和查询结果数据的对应关系后,查询服务器可以继续接收客户端发送的数据查询请求。
步骤103:查询服务器根据已缓存的查询条件和查询结果数据的对应关系,判断接收到数据查询请求中携带的查询条件是否存在缓存的查询结果数据;若是,则执行步骤104;否则,执行步骤105。
当查询服务器接收到查询请求后,并不直接将该查询请求中的查询条件生成相应的SQL信令并提交给数据库服务器,而是先判断是否能够根据预先缓存的对应关系为所述数据查询请求找到对应的查询结果数据。
步骤104:查询服务器根据缓存的所述对应关系查找出接收到的数据查询请求中携带的查询条件对应的查询结果数据,并跳转至步骤106。
步骤105:查询服务器根据接收到的数据查询请求中携带的查询条件生成SQL信令,从数据库服务器中获得查询结果数据。
步骤106:查询服务器将查询结果数据返回给客户端。
通过上述步骤101~步骤106的方案,通过对以前数据查询过程的学习生成查询条件和查询结果数据的对应关系,并将该对应关系缓存在内存或硬盘中,在客户端进行数据查询时,可以有效地提高查询效率,与现有技术相比,在相同的数据库服务器环境下,能够快速进行数据查询,缩短查询时间。
在本发明实施例一的方案中,缓存的查询条件和查询结果数据的对应关系可以通过多种方式确定,包括但不限于:采用自学习自适应技术确定所述对应关系,根据业务类型使用决策树进行前瞻性分析确定所述对应关系、根据数据挖掘需求采用回归算法进行前瞻性分析确定所述对应关系、基于概率统计的贝叶斯数学模型且利用已知数据的统计特性进行前瞻性分析确定所述对应关系。
下面对采用自学习自适应技术确定所述对应关系的两种方式进行详细说明。
第一种自学习自适应技术:
如图3所示,为本发明实施例一中第一种自学习自适应技术的方法示意图,本技术采用命中率模型来进行学习,根据各查询条件被调用的次数,采用最高命中率算法来获得最常用的查询条件、查询结果数据等信息,从而以此为基础构建对应关系。
第一种自学习自适应技术包括以下步骤:
步骤201:查询服务器在设定时长内接收到的全部查询条件中,确定每种相同查询条件的出现概率。
假设设定时长为1个季度,该季度中包括3个月,分别为1月、2月和3月。查询服务器在1月收到的查询条件累计6500条,在2月收到的查询条件累计5000条,在3月收到的查询条件累计6000条。
假设当前进行自学习的查询条件是“通话时长”,1月“通话时长”被查询的次数为1000次,2月“通话时长”被查询的次数为800次,3月“通话时长”被查询的次数为900次。“通话时长”作为一种查询条件的出现概率=(1000+800+900)/(6500+5000+6000)=15.43%。
对于其他的查询条件,也可以按照上述方法计算出现概率。
步骤202:查询服务器分别将每种相同查询条件的出现概率和第一设定概率进行比较,确定出现概率不小于设定概率的查询条件。
这里的第一设定概率可以根据经验值确定。
本步骤的目的是找出客户端经常使用的查询条件,用以预测客户端今后也可能会经常使用的查询条件。因此,也可以将每种查询条件的出现概率按照由大到小的顺序排列,确定出现概率排列在前N(N为正整数)个的查询条件作为客户端经常使用的查询条件。
步骤203:查询服务器将确定的查询条件和对应的查询结果数据缓存至内存中。
在本步骤中,可以在数据库表中查找出确定的查询条件对应的查询结果数据,并建立查询条件和查询结果数据的对应关系,并将建立的对应关系缓存至内存中。
本步骤也可以利用建立的所述对应关系更新内存中已缓存的查询条件和查询结果数据对应关系。
例如:内存中已缓存了“通话时长”和查询结果数据的对应关系,但执行步骤202后,发现“通话时长”已不是设定时长内客户端经常使用的查询条件,因此,删除已缓存的“通话时长”和查询结果数据的对应关系;再例如:内存中未缓存“通话时长”和查询结果数据的对应关系,但执行步骤202后,发现“通话时长”在设定时长内是客户端经常使用的查询条件,因此,将“通话时长”和查询结果数据的对应关系写入内存中。
第二种自学习自适应技术:
如图4所示,为本发明实施例一中第二种自学习自适应技术的方法示意图,本技术前瞻性地分析和计算查询条件未来被请求的概率,从而建立查询请求和查询结果数据的对应关系。
第二种自学习自适应技术包括以下步骤:
步骤301:查询服务器将所述设定时长划分为多个时间段,并针对每个时间段接收到的查询条件,分别确定每种相同查询条件在各时间段的出现概率。
假设设定时长为1个季度,该季度中被划分为3个时间段,分别为1月、2月和3月。查询服务器在1月收到的查询条件累计6500条,在2月收到的查询条件累计5000条,在3月收到的查询条件累计6000条。
假设当前进行自学习的查询条件是“通话时长”,1月“通话时长”被查询的次数为1000次,2月“通话时长”被查询的次数为800次,3月“通话时长”被查询的次数为900次。“通话时长”在1月的出现概率=1000/6500=15.38%;“通话时长”在2月的出现概率=800/5000=16%;“通话时长”在3月的出现概率=900/6000=15%。
步骤302:查询服务器确定每种相同查询条件在设定时长内的出现概率。
“通话时长”在1季度的出现概率=(1000+800+900)/(6500+5000+6000)=15.43%。
步骤303:查询服务器根据任意相邻的两个时间段中,相同查询条件在后一时间段的出现概率和前一时间段的出现概率之差,确定该相同查询条件在所述设定时长内的平均概率差。
所述平均概率差通过以下公式确定:
其中:Q表示相同查询条件在所述设定时长内的平均概率差;xi表示相同查询条件在第i个时间段内的出现概率;xi+1-xi表示相邻的两个时间段中,相同查询条件在后一时间段的出现概率和前一时间段的出现概率之差,n表示设定时长内时间段的数量。
“通话时长”在2月的出现概率与1月的出现概率之差x2-x1=0.0062,表示“通话时长”在2月的使用概率高于1月0.62%。“通话时长”在3月的出现概率与2月的出现概率之差x3-x2=-0.001,表示“通话时长”在3月的使用概率低于2月0.1%。因此,“通话时长”在设定时长内的平均概率差=(-0.001+0.0062)/2=-0.0038。
步骤304:查询服务器针对每种相同查询条件,将相同查询条件的平均出现概率和平均概率差之和作为该相同查询条件的预测概率。
“通话时长”的预测概率=-0.0038+0.1543=0.1505。
步骤305:查询服务器将每个查询条件的预测概率与第二设定概率进行比较,确定预测概率不小于第二设定概率的查询条件。
步骤306:查询服务器将确定的查询条件和对应的查询结果数据缓存至内存中。
与第一种自学习自适应技术类似地,第二种自学习自适应技术得到的对应关系可以直接作为缓存的查询条件和对应的查询结果数据的对应关系,也可以利用第二种自学习自适应技术得到的对应关系更新已缓存查询条件和对应的查询结果数据的对应关系。
本发明实施例一的方案也可以综合第一种自学习自适应技术和第二种自学习自适应技术,分别利用这两种自学习自适应技术获得查询条件和查询结果数据的第一对应关系和第二对应关系,确定所述第一对应关系和第二对应关系中相同的查询条件,并将确定的该查询条件和查询结果数据的对应关系作为缓存的查询条件和查询结果数据的对应关系。
利用本发明实施例一的两种自学习自适应技术,可以通过分析建模技术,归纳出客户端最常用和最关注的查询条件和该查询条件对应的查询结果数据,通过在内存缓存的数据中进行数据查询,解决了大数量、多数据库表关联的情况下,多用户实时进行数据查询时的性能瓶颈问题,使客户端进行数据查询时提高查询速度。
实施例二:
本发明实施例二是在实施例一的基础上,将缓存查询过程划分为两级,第一级缓存采用最近访问(last visited)算法缓存查询条件和查询结果数据的对应关系,第二级缓存按照实施例一的方案采用自学习自适应技术缓存查询条件和查询结果数据的对应关系。其中,第一级缓存的数据没有进行自学习自适应技术的处理,只将一段时间内客户端的查询条件和对应的查询结果数据直接缓存,当所述一段时间结束时,或为第一级缓存分配的内存空间饱和时,清空第一级缓存内的对应关系,重新根据客户端的数据查询请求缓存查询条件和查询结果数据的对应关系。
在本发明实施例二中,第一级缓存构成了全局缓存,第二级缓存构成了局部缓存,因此,分别使用第一级缓存和第二级缓存,可以兼顾全局与局部。
如图5所示,本发明实施例二的方案如下:
假设第一级缓存存储的是每天8:00~18:00期间,客户端发送的数据查询请求携带的查询条件和查询结果数据的对应关系。第二级缓存存储的是一个季度内,对客户端发送的数据查询请求携带的查询条件进行自学习自适应后,客户端经常使用的查询条件和对应的查询结果数据。
步骤401:查询服务器接收客户端发送的数据查询请求。
假设本实施例中,客户端在4月2号13:00向查询服务器发送数据查询请求,该查询请求中携带的查询条件是“通话时长”。
步骤402:查询服务器调用第一级缓存,判断第一级缓存中是否存储了数据查询请求中的查询条件对应的查询结果数据,若是,则执行步骤403;否则,执行步骤404。
查询服务器从第一级缓存中查看当天的8:00~13:00期间是否有客户端以“通话时长”为条件进行数据查询。
步骤403:查询服务器从第一级缓存中存储的对应关系中确定查询结果数据,并跳转至步骤409。
如果第一级缓存中有“通话时长”和查询结果数据的对应关系,表示当天早些时候有客户端以“通话时长”为条件进行数据查询,并将查询后的查询结果数据和“通话时长”的对应关系缓存在第一级缓存。
步骤404:查询服务器调用第二级缓存,判断第二级缓存中是否存储了数据查询请求中的查询条件对应的查询结果数据,若是,则执行步骤405;否则,执行步骤406。
步骤405:查询服务器从第二级缓存中存储的对应关系中确定查询结果数据,并跳转至步骤409。
步骤406:查询服务器根据接收到的数据查询请求中携带的查询条件生成SQL信令,从数据库服务器中获得查询结果数据。
步骤407:查询服务器根据步骤406的查询结果数据,更新第一级缓存。
步骤408:查询服务器更新第二季度内接收到的数据查询请求中携带的查询条件的使用次数。
步骤409:查询服务器将查询结果数据返回给客户端。
实施例三:
本发明实施例三提供一种查询服务器,如图6(a)、图6(b)、图6(c)和图6(d)所示。
所述查询服务器包括请求接收模块11、结果查询模块12和结果返回模块13,其中:请求接收模块11用于接收客户端的数据查询请求,所述数据查询请求中携带查询条件;结果查询模块12用于根据已存的查询条件和查询结果数据的对应关系,确定接收到的数据查询请求中携带的查询条件对应的查询结果数据,所述对应关系是在当前时刻之前的设定时长内,根据各客户端发送的数据查询请求中携带的查询条件和为每个查询条件进行数据查询后得到的查询结果数据学习确定的;结果返回模块13用于将确定的所述查询结果数据返回给客户端。
所述结果查询模块12还用于在接收到的查询请求中携带的查询条件和对应的查询几个数据未存储在所述对应关系中时,为接收到的查询请求中携带的查询条件进行数据查询。
本实施例中的查询服务器有多种方式缓存查询条件和查询结果数据的对应关系,包括但不限于以下三种:
第一种方式:
如图6(b)所示,查询服务器还包括第一概率确定模块21、第一比较模块22和第一执行模块23,其中:第一概率确定模块21用于在所述设定时长内接收到的全部查询条件中,确定每种相同查询条件的出现概率;第一比较模块22用于将每种相同查询条件的出现概率与第一设定概率进行比较,确定出现概率不小于第一设定概率的查询条件;第一执行模块23用于针对每个出现概率不小于第一设定概率的查询条件,分别确定该查询条件和为该查询条件在数据库表中进行数据查询后得到的查询结果数据的对应关系。
第二种方式:
如图6(c)所示,查询服务器还包括第二概率确定模块31、第一平均概率差确定模块32、第一预测概率确定模块33、第二比较模块34和第二执行模块35,其中:第二概率确定模块31用于将所述设定时长划分为多个时间段,并针对每个时间段接收到的查询条件,分别确定每种相同查询条件在各时间段的出现概率,以及确定每种相同查询条件在设定时长内的出现概率;第一平均概率差确定模块32用于根据任意相邻的两个时间段中,相同查询条件在后一时间段的出现概率和前一时间段的出现概率之差,确定该相同查询条件在所述设定时长内的平均概率差;第一预测概率确定模块33用于针对每种相同查询条件,将相同查询条件在设定时长内的出现概率和平均概率差之和作为该相同查询条件的预测概率;第二比较模块34用于将每种相同查询条件的预测概率与第二设定概率进行比较,确定预测概率不小于第二设定概率的查询条件;第二执行模块35用于针对每个预测概率不小于第二设定概率的查询条件,分别确定该查询条件和为该查询条件在数据库表中进行数据查询后得到的查询结果数据的对应关系。
所述第一平均概率差确定模块32,还用于通过以下公式确定平均概率差:
其中:Q表示相同查询条件在所述设定时长内的平均概率差;xi表示相同查询条件在第i个时间段内的出现概率;xi+1-xi表示相邻的两个时间段中,相同查询条件在后一时间段的出现概率和前一时间段的出现概率之差,n表示设定时长内时间段的数量。
第三种方式:
如图6(d)所示,查询服务器还包括第三概率确定模块41、第二平均概率差确定模块42、第二预测概率确定模块43、第三比较模块44和第三执行模块45,其中:第三概率确定模块41用于在所述设定时长内接收到的全部查询条件中,确定每种相同查询条件的出现概率,以及,将所述设定时长划分为多个时间段,并针对每个时间段接收到的查询条件,分别确定每种相同查询条件在各时间段的出现概率;第二平均概率差确定模块42用于根据任意相邻的两个时间段中,相同查询条件在后一时间段的出现概率和前一时间段的出现概率之差,确定该相同查询条件在所述设定时长内的平均概率差;第二预测概率确定模块43用于针对每种相同查询条件,将相同查询条件的平均出现概率和平均概率差之和作为该相同查询条件的预测概率;第三比较模块44用于将每种相同查询条件的出现概率与第一设定概率进行比较,确定出现概率不小于第一设定概率的查询条件,以及,将每种相同查询条件的预测概率与第二设定概率进行比较,确定预测概率不小于第二设定概率的查询条件;第三执行模块45用于针对每个出现概率不小于第一设定概率的查询条件,分别确定该查询条件和为该查询条件在数据库表中进行数据查询后得到的查询结果数据的第一对应关系,以及针对每个预测概率不小于第二设定概率的查询条件,分别确定该查询条件和为该查询条件在数据库表中进行数据查询后得到的查询结果数据的第二对应关系,并将所述第一对应关系和第二对应关系中相同的查询条件和查询结果数据的对应关系作为缓存的查询条件和查询结果数据的对应关系。
通过本发明实施例的方法和服务器,由于预先利用自学习自适应方法生成查询条件和查询结果数据的对应关系,并将该对应关系缓存在内存中,因此,在客户端进行数据查询时,可以有效地提高查询效率,与现有技术相比,在相同的数据库服务器环境下,能够快速进行数据查询,缩短查询时间。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (6)
1.一种数据查询的方法,其特征在于,所述方法包括:
接收客户端的数据查询请求,所述数据查询请求中携带查询条件;
根据已存的查询条件和查询结果数据的对应关系,确定接收到的数据查询请求中携带的查询条件对应的查询结果数据;
将确定的所述查询结果数据返回给客户端;
确定所述查询条件和查询结果数据的对应关系包括:
在设定时长内接收到的全部查询条件中,确定每种相同查询条件的出现概率,以及确定出现概率不小于第一设定概率的查询条件,并针对每个出现概率不小于第一设定概率的查询条件,分别确定该查询条件和为该查询条件在数据库表中进行数据查询后得到的查询结果数据的对应关系;
或者
将设定时长划分为多个时间段,并针对每个时间段接收到的查询条件,分别确定每种相同查询条件在各时间段的出现概率,以及确定每种相同查询条件在设定时长内的出现概率,并根据任意相邻的两个时间段中,相同查询条件在后一时间段的出现概率和前一时间段的出现概率之差,确定该相同查询条件在所述设定时长内的平均概率差,针对每种相同查询条件,将相同查询条件在设定时长内的出现概率和平均概率差之和作为该相同查询条件的预测概率,并针对每个预测概率不小于第二设定概率的查询条件,分别确定该查询条件和为该查询条件在数据库表中进行数据查询后得到的查询结果数据的对应关系;
或者
在设定时长内接收到的全部查询条件中,确定每种相同查询条件的出现概率,并针对每个出现概率不小于第一设定概率的查询条件,分别确定该查询条件和为该查询条件在数据库表中进行数据查询后得到的查询结果数据的第一对应关系,以及将所述设定时长划分为多个时间段,并针对每个时间段接收到的查询条件,分别确定每种相同查询条件在各时间段的出现概率,并根据任意相邻的两个时间段中,相同查询条件在后一时间段的出现概率和前一时间段的出现概率之差,确定该相同查询条件在所述设定时长内的平均概率差,针对每种相同查询条件,将相同查询条件的平均出现概率和平均概率差之和作为该相同查询条件的预测概率,并针对每个预测概率不小于第二设定概率的查询条件,分别确定该查询条件和为该查询条件在数据库表中进行数据查询后得到的查询结果数据的第二对应关系,确定所述第一对应关系和第二对应关系中相同的查询条件,并将确定的该查询条件和查询结果数据的对应关系作为缓存的查询条件和查询结果数据的对应关系。
2.如权利要求1所述的方法,其特征在于,所述平均概率差通过以下公式确定:
其中:Q表示相同查询条件在所述设定时长内的平均概率差;xi表示相同查询条件在第i个时间段内的出现概率;xi+1-xi表示相邻的两个时间段中,相同查询条件在后一时间段的出现概率和前一时间段的出现概率之差,n表示设定时长内时间段的数量。
3.如权利要求1所述的方法,其特征在于,所述方法还包括:
在接收到的查询请求中携带的查询条件和对应的查询几个数据未存储在所述对应关系中时,为接收到的查询请求中携带的查询条件进行数据查询。
4.一种数据查询的装置,其特征在于,所述装置包括:
请求接收模块,用于接收客户端的数据查询请求,所述数据查询请求中携带查询条件;
结果查询模块,用于根据已存的查询条件和查询结果数据的对应关系,确定接收到的数据查询请求中携带的查询条件对应的查询结果数据;
结果返回模块,用于将确定的所述查询结果数据返回给客户端;
所述装置还包括:
第一概率确定模块,用于在设定时长内接收到的全部查询条件中,确定每种相同查询条件的出现概率;
第一比较模块,用于将每种相同查询条件的出现概率与第一设定概率进行比较,确定出现概率不小于第一设定概率的查询条件;
第一执行模块,用于针对每个出现概率不小于第一设定概率的查询条件,分别确定该查询条件和为该查询条件在数据库表中进行数据查询后得到的查询结果数据的对应关系;
或者
第二概率确定模块,用于将设定时长划分为多个时间段,并针对每个时间段接收到的查询条件,分别确定每种相同查询条件在各时间段的出现概率,以及确定每种相同查询条件在设定时长内的出现概率;
第一平均概率差确定模块,用于根据任意相邻的两个时间段中,相同查询条件在后一时间段的出现概率和前一时间段的出现概率之差,确定该相同查询条件在所述设定时长内的平均概率差;
第一预测概率确定模块,用于针对每种相同查询条件,将相同查询条件在设定时长内的出现概率和平均概率差之和作为该相同查询条件的预测概率;
第二比较模块,用于将每种相同查询条件的预测概率与第二设定概率进行比较,确定预测概率不小于第二设定概率的查询条件;
第二执行模块,用于针对每个预测概率不小于第二设定概率的查询条件,分别确定该查询条件和为该查询条件在数据库表中进行数据查询后得到的查询结果数据的对应关系;
或者
第三概率确定模块,用于在设定时长内接收到的全部查询条件中,确定每种相同查询条件的出现概率,以及,将所述设定时长划分为多个时间段,并针对每个时间段接收到的查询条件,分别确定每种相同查询条件在各时间段的出现概率;
第二平均概率差确定模块,用于根据任意相邻的两个时间段中,相同查询条件在后一时间段的出现概率和前一时间段的出现概率之差,确定该相同查询条件在所述设定时长内的平均概率差;
第二预测概率确定模块,用于针对每种相同查询条件,将相同查询条件的平均出现概率和平均概率差之和作为该相同查询条件的预测概率;
第三比较模块,用于将每种相同查询条件的出现概率与第一设定概率进行比较,确定出现概率不小于第一设定概率的查询条件,以及,将每种相同查询条件的预测概率与第二设定概率进行比较,确定预测概率不小于第二设定概率的查询条件;
第三执行模块,用于针对每个出现概率不小于第一设定概率的查询条件,分别确定该查询条件和为该查询条件在数据库表中进行数据查询后得到的查询结果数据的第一对应关系,以及针对每个预测概率不小于第二设定概率的查询条件,分别确定该查询条件和为该查询条件在数据库表中进行数据查询后得到的查询结果数据的第二对应关系,并将所述第一对应关系和第二对应关系中相同的查询条件和查询结果数据的对应关系作为缓存的查询条件和查询结果数据的对应关系。
5.如权利要求4所述的装置,其特征在于,
所述第一平均概率差确定模块,还用于通过以下公式确定平均概率差:
其中:Q表示相同查询条件在所述设定时长内的平均概率差;xi表示相同查询条件在第i个时间段内的出现概率;xi+1-xi表示相邻的两个时间段中,相同查询条件在后一时间段的出现概率和前一时间段的出现概率之差,n表示设定时长内时间段的数量。
6.如权利要求4所述的装置,其特征在于,
所述结果查询模块,还用于在接收到的查询请求中携带的查询条件和对应的查询几个数据未存储在所述对应关系中时,为接收到的查询请求中携带的查询条件进行数据查询。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200910238665 CN102081625B (zh) | 2009-11-30 | 2009-11-30 | 一种数据查询的方法及查询服务器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200910238665 CN102081625B (zh) | 2009-11-30 | 2009-11-30 | 一种数据查询的方法及查询服务器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102081625A CN102081625A (zh) | 2011-06-01 |
CN102081625B true CN102081625B (zh) | 2012-12-26 |
Family
ID=44087592
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 200910238665 Active CN102081625B (zh) | 2009-11-30 | 2009-11-30 | 一种数据查询的方法及查询服务器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102081625B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9037752B1 (en) | 2013-11-14 | 2015-05-19 | Sap Se | Remote materialization of low velocity data |
Families Citing this family (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8412721B2 (en) * | 2011-07-29 | 2013-04-02 | International Business Machines Corporation | Efficient data extraction by a remote application |
CN102624583B (zh) * | 2012-02-29 | 2016-06-01 | 武汉虹信通信技术有限责任公司 | 一种海量设备并发实时参数获取的分层设计方法 |
US20150356017A1 (en) * | 2013-01-31 | 2015-12-10 | Hewlett-Packard Development Company L.P. | Predictive cache apparatus and method of cache prediction |
CN103324679B (zh) * | 2013-05-28 | 2017-03-08 | 杭州朗和科技有限公司 | 一种缓存服务器中数据更新的控制方法和设备 |
CN104424258B (zh) * | 2013-08-28 | 2020-06-16 | 腾讯科技(深圳)有限公司 | 多维数据查询的方法、查询服务器、列存储服务器及系统 |
CN103577561B (zh) * | 2013-10-24 | 2017-12-01 | 华为技术有限公司 | 执行计划的存储方法、装置及系统 |
CN103559307A (zh) * | 2013-11-18 | 2014-02-05 | 中国农业银行股份有限公司 | 一种查询的缓存方法及装置 |
CN103955486B (zh) * | 2014-04-14 | 2017-08-01 | 五八同城信息技术有限公司 | 分布式服务系统及其数据更新、数据查询的方法 |
CN103995869B (zh) * | 2014-05-20 | 2017-02-22 | 东北大学 | 一种基于Apriori算法的数据缓存方法 |
CN104866617B (zh) * | 2015-06-09 | 2018-10-12 | 苏州国云数据科技有限公司 | 基于可视化时间筛选器的查询时间相关数据的方法 |
CN106649314A (zh) * | 2015-10-29 | 2017-05-10 | 北京国双科技有限公司 | 数据查询的方法及装置 |
CN105939208B (zh) * | 2015-11-26 | 2019-05-07 | 杭州迪普科技股份有限公司 | 采样数据的传输方法及装置 |
CN105843913A (zh) * | 2016-03-24 | 2016-08-10 | 苏州科技学院 | 一种基于法人经济数据库的统计综合信息查询系统 |
CN106250501B (zh) * | 2016-07-28 | 2019-11-01 | 五八同城信息技术有限公司 | 报表处理方法及报表系统 |
CN108694188B (zh) * | 2017-04-07 | 2023-05-12 | 腾讯科技(深圳)有限公司 | 一种索引数据更新的方法以及相关装置 |
US10574777B2 (en) * | 2017-06-06 | 2020-02-25 | International Business Machines Corporation | Edge caching for cognitive applications |
CN109446172A (zh) * | 2017-10-12 | 2019-03-08 | 贵阳朗玛信息技术股份有限公司 | 日志存储方法、读取方法及装置 |
CN107885828B (zh) * | 2017-11-07 | 2020-01-31 | Oppo广东移动通信有限公司 | 查找匹配对象的方法、装置、存储介质及电子设备 |
CN108509501B (zh) * | 2018-02-28 | 2022-07-26 | 成都国恒空间技术工程股份有限公司 | 一种查询处理方法、服务器及计算机可读存储介质 |
CN109063037A (zh) * | 2018-07-17 | 2018-12-21 | 叶舒婷 | 一种查询方法、服务设备、终端设备以及计算机可读存储介质 |
CN111694849A (zh) * | 2019-03-15 | 2020-09-22 | 上海寒武纪信息科技有限公司 | 存储方法及装置、运算方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6484164B1 (en) * | 2000-03-29 | 2002-11-19 | Koninklijke Philips Electronics N.V. | Data search user interface with ergonomic mechanism for user profile definition and manipulation |
CN1841380A (zh) * | 2005-03-31 | 2006-10-04 | 微软公司 | 用于改进搜索引擎相关性的数据挖掘技术 |
CN1874254A (zh) * | 2005-06-02 | 2006-12-06 | 华为技术有限公司 | 一种基于客户端/服务器端结构的数据浏览方法 |
CN101075304A (zh) * | 2006-05-18 | 2007-11-21 | 河北全通通信有限公司 | 电信行业基于数据仓库的决策支持系统的构造方法 |
-
2009
- 2009-11-30 CN CN 200910238665 patent/CN102081625B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6484164B1 (en) * | 2000-03-29 | 2002-11-19 | Koninklijke Philips Electronics N.V. | Data search user interface with ergonomic mechanism for user profile definition and manipulation |
CN1841380A (zh) * | 2005-03-31 | 2006-10-04 | 微软公司 | 用于改进搜索引擎相关性的数据挖掘技术 |
CN1874254A (zh) * | 2005-06-02 | 2006-12-06 | 华为技术有限公司 | 一种基于客户端/服务器端结构的数据浏览方法 |
CN101075304A (zh) * | 2006-05-18 | 2007-11-21 | 河北全通通信有限公司 | 电信行业基于数据仓库的决策支持系统的构造方法 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9037752B1 (en) | 2013-11-14 | 2015-05-19 | Sap Se | Remote materialization of low velocity data |
Also Published As
Publication number | Publication date |
---|---|
CN102081625A (zh) | 2011-06-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102081625B (zh) | 一种数据查询的方法及查询服务器 | |
CN102521405B (zh) | 支持高速加载的海量结构化数据存储、查询方法和系统 | |
CN110166282B (zh) | 资源分配方法、装置、计算机设备和存储介质 | |
CN102479223B (zh) | 数据查询方法及系统 | |
CN102467570B (zh) | 用于分布式数据仓库的连接查询系统和方法 | |
CN111460024B (zh) | 基于Elasticsearch的实时业务系统 | |
CA2947158A1 (en) | Systems, devices and methods for generating locality-indicative data representations of data streams, and compressions thereof | |
CN102236580B (zh) | 为etl任务分配节点的方法和调度系统 | |
US11048716B1 (en) | Managed virtual warehouses for tasks | |
CN104969213A (zh) | 用于低延迟数据存取的数据流分割 | |
US20100318516A1 (en) | Productive distribution for result optimization within a hierarchical architecture | |
CN103873528A (zh) | 一种为用户分配系统资源的方法与设备 | |
CN105069134A (zh) | 一种Oracle统计信息自动收集方法 | |
CN108509501A (zh) | 一种查询处理方法、服务器及计算机可读存储介质 | |
CN102193929A (zh) | 确定词信息熵及利用词信息熵的搜索方法及其设备 | |
CN104504103A (zh) | 一种车辆轨迹点插入性能优化方法及系统、信息采集器、数据库模型 | |
US9990396B2 (en) | Forecasting query access plan obsolescence | |
US11461335B1 (en) | Optimized processing of data in different formats | |
Saygin et al. | Exploiting data mining techniques for broadcasting data in mobile computing environments | |
CN109154933B (zh) | 分布式数据库系统以及分布和访问数据的方法 | |
CN102779138A (zh) | 实时数据的硬盘存取方法 | |
AU2018354550A1 (en) | Systems and methods for intelligently grouping financial product users into cohesive cohorts | |
WO2023009953A1 (en) | Object dependency tracking in a database system | |
CN102081624B (zh) | 一种数据查询的方法及装置 | |
CN103559307A (zh) | 一种查询的缓存方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |