CN110096489A - 一种数据查询方法、系统、装置及电子设备 - Google Patents

一种数据查询方法、系统、装置及电子设备 Download PDF

Info

Publication number
CN110096489A
CN110096489A CN201910377737.8A CN201910377737A CN110096489A CN 110096489 A CN110096489 A CN 110096489A CN 201910377737 A CN201910377737 A CN 201910377737A CN 110096489 A CN110096489 A CN 110096489A
Authority
CN
China
Prior art keywords
data
query
inquiry
inquiry request
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.)
Pending
Application number
CN201910377737.8A
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.)
Advanced New Technologies Co Ltd
Advantageous New Technologies Co Ltd
Original Assignee
Alibaba Group Holding 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 Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201910377737.8A priority Critical patent/CN110096489A/zh
Publication of CN110096489A publication Critical patent/CN110096489A/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/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • 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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本说明书实施例公开了一种数据查询方法、系统、装置及电子设备,接收携带用户标识的数据查询请求,所述数据查询请求包括查询时间范围;估算所述查询时间范围内的查询数据量;根据所述查询数据量确定对所述数据查询请求的拆分数量,使得根据所述拆分数量拆分所述数据查询请求得到查询子请求,所述查询子请求所对应的查询数据量不超过对所述查询子请求进行数据查询的数据库负载;利用与所述用户标识对应的历史查询行为数据对所述拆分数量进行调整;根据调整的拆分数量将所述数据查询请求拆分,使得数据库根据所述调整的拆分数量得到的查询子请求进行数据查询。

Description

一种数据查询方法、系统、装置及电子设备
技术领域
本说明书实施例涉及计算机技术领域,尤其涉及一种数据查询方法、系统、装置及电子设备。
背景技术
用户在每天的日常生活中会产生各种各样的数据,这些数据存储在数据库中,对于需要核对存储的数据的准确性的用户来说,经常会遇到需要查询各种存储的数据的情况。
在现有技术中,用户通过终端向数据库发送数据查询请求,数据库通过估算该数据查询请求所对应的查询时间范围内的查询数据量,若该查询时间范围内的查询数据量超过数据库负载,则将该数据查询请求拆分成多个查询子请求,数据库对该查询子请求依次进行数据查询。
发明内容
有鉴于此,本说明书实施例提供了一种数据查询方法、系统、装置及电子设备,用于解决现有技术中数据库难以承受数据量过大的数据查询请求、且无法满足用户查询需求的问题。
本说明书实施例采用下述技术方案:
本说明书实施例提供一种数据查询方法,包括:
接收携带用户标识的数据查询请求,所述数据查询请求包括查询时间范围;
估算所述查询时间范围内的查询数据量;
根据所述查询数据量确定对所述数据查询请求的拆分数量,使得根据所述拆分数量拆分所述数据查询请求得到查询子请求,所述查询子请求所对应的查询数据量不超过对所述查询子请求进行数据查询的数据库负载;
利用与所述用户标识对应的历史查询行为数据对所述拆分数量进行调整;
根据调整的拆分数量将所述数据查询请求拆分,使得数据库根据所述调整的拆分数量得到的查询子请求进行数据查询。
本说明书实施例还提供一种数据查询系统,包括:
查询服务器,接收携带用户标识和查询时间范围的数据查询请求,估算所述查询时间范围内的查询数据量,根据所述查询数据量确定对所述数据查询请求的拆分数量,利用与所述用户标识对应的历史查询行为数据对所述拆分数量进行调整,根据调整的拆分数量将所述数据查询请求拆分,使得拆分得到的查询子请求所对应的查询数据量不超过对所述查询子请求进行数据查询的数据库负载;
数据库,对基于所述调整的拆分数量拆分得到的所述查询子请求进行数据查询。
本说明书实施例还提供一种数据查询装置,包括:
接收模块,接收携带用户标识的数据查询请求,所述数据查询请求包括查询时间范围;
估算模块,估算所述查询时间范围内的查询数据量;
确定模块,根据所述查询数据量确定对所述数据查询请求的拆分数量,使得根据所述拆分数量拆分所述数据查询请求得到查询子请求,所述查询子请求所对应的查询数据量不超过对所述查询子请求进行数据查询的数据库负载;
调整模块,利用与所述用户标识对应的历史查询行为数据对所述拆分数量进行调整;
拆分模块,根据调整的拆分数量将所述数据查询请求拆分,使得数据库根据所述调整的拆分数量得到的查询子请求进行数据查询。
本说明书实施例还提供一种电子设备,包括至少一个处理器及存储器,存储器存储有程序,并且被配置成至少一个处理器执行以下步骤:
接收携带用户标识的数据查询请求,所述数据查询请求包括查询时间范围;
估算所述查询时间范围内的查询数据量;
根据所述查询数据量确定对所述数据查询请求的拆分数量,使得根据所述拆分数量拆分所述数据查询请求得到查询子请求,所述查询子请求所对应的查询数据量不超过对所述查询子请求进行数据查询的数据库负载;
利用与所述用户标识对应的历史查询行为数据对所述拆分数量进行调整;
根据调整的拆分数量将所述数据查询请求拆分,使得数据库根据所述调整的拆分数量得到的查询子请求进行数据查询。
本说明书实施例采用的上述至少一个技术方案能够达到以下有益效果:
通过对查询时间范围内的查询数据量进行估算,根据该查询数据量确定对数据查询请求的拆分数量,使得拆分得到的查询子请求对应的查询数据量不超过对该查询子请求进行数据查询的数据库负载;然后根据历史查询行为数据对拆分数量进行调整,从而能够快速的得到查询结果,实现数据查询。
这样,当用户的查询数据量过大而超出数据库的承受能力时,能够避免出现查询超时的问题而影响用户体验度的情况;另外,通过结合历史查询行为数据对数据查询请求的拆分数量进行调整,使得对数据查询请求的处理能够满足用户的数据查询需求,提高用户体验度和数据查询效率。
附图说明
此处所说明的附图用来提供对本说明书实施例的进一步理解,构成本说明书实施例的一部分,本说明书的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本说明书实施例提供的一种数据查询系统的结构示意图;
图2为本说明书实施例提供的一种数据查询系统的结构示意图;
图3为本说明书实施例提供的一种数据查询系统的结构示意图;
图4为本说明书实施例提供的一种数据查询系统的结构示意图;
图5为本说明书实施例提供的一种数据查询方法的流程示意图;
图6为本说明书实施例提供的一种数据查询方法的时序图;
图7为本说明书实施例提供的一种数据查询装置的结构示意图。
具体实施方式
现有技术在数据查询过程中,数据库对所有用户的数据查询请求的拆分均采用相同的拆分规则,没有结合用户的历史查询行为数据,无法考虑用户的数据查询需求,容易造成数据库的不稳定,影响数据查询效率。
因此,本说明书实施例提供了一种数据查询方法、系统、装置及电子设备,通过根据查询时间范围内的查询数据量确定对数据查询请求的拆分数量,然后根据历史查询行为数据对拆分数量进行调整,从而能够快速的得到查询结果,实现数据查询。这样,当用户的查询数据量过大而超出数据库的承受能力时,能够避免出现查询超时的问题而影响用户体验度的情况;另外,通过结合历史查询行为数据对数据查询请求的拆分数量进行调整,使得对数据查询请求的处理能够满足用户的数据查询需求,提高用户体验度。
为使本申请的目的、技术方案和优点更加清楚,下面将结合本说明书具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
以下结合附图,详细说明本说明书各实施例提供的技术方案。
图1为本说明书实施例提供的一种数据查询系统的结构示意图。
本说明书实施例提供的数据查询系统可以包括终端1A、查询服务器1B和数据库1C。
终端1A可以向查询服务器1B发送携带用户标识的数据查询请求,并从查询服务器1B接收所述数据查询请求所对应的查询结果。
查询服务器1B可以接收携带用户标识和查询时间范围的数据查询请求,估算所述查询时间范围内的查询数据量,根据所述查询数据量确定对所述数据查询请求的拆分数量,利用与所述用户标识对应的历史查询行为数据对所述拆分数量进行调整,根据调整的拆分数量将所述数据查询请求拆分,使得拆分得到的查询子请求所对应的查询数据量不超过对所述查询子请求进行数据查询的数据库负载。
数据库1C可以对基于所述调整的拆分数量拆分得到的所述查询子请求进行数据查询,并向查询服务器1B发送查询子请求对应的查询结果。
查询服务器1B还可以根据查询子请求对应的查询结果得到数据查询请求所对应的查询结果。
在本说明书实施例中,数据可以理解为用户在执行特定的事件的过程中产生的行为数据,具体可以是交易商品数据、交易明细、物流数据、订单数据、运动数据等,在此不做具体限定。
用户可以是上述数据的产生方,具体可以是进行交易的商户和买家等,在此不做具体限定。
需要说明的是,查询服务器1B和数据库1C可以为一体式服务器或者分体式服务器,在此不做具体限定。
图2为本说明书实施例提供的一种数据查询系统的结构示意图。
本说明书实施例提供的数据查询系统可以包括终端2A、查询服务器2B、数据库2C和用户查询行为模型2D。
用户查询行为模型2D,可以存储至少一种时间粒度所对应的历史查询数据量,所述历史查询数据量是根据指定历史时间段内的至少一次数据查询请求所得到的查询数据量进行统计得到,使得所述查询服务器2B从所述用户查询行为模型2D获取与所述查询时间范围的时间粒度对应的历史查询数据量,根据所述历史查询数据量估算所述查询时间范围内的所述查询数据量。
用户查询行为模型2D可以利用与用户标识对应的历史查询行为数据,根据指定历史时间段内的至少一次数据查询请求所得到的查询数据量进行统计得到至少一个时间粒度所对应的历史查询数据量。
图3为本说明书实施例提供的一种数据查询系统的结构示意图。
本说明书实施例提供的数据查询系统可以包括终端3A、查询服务器3B、数据库3C、用户查询行为模型3D和数据库监控模块3E。
数据库监测模块3E,可以监测所述数据库3C的性能指标,使得查询服务器3B根据监测到的所述性能指标确定接收所述查询子请求的数据库,使所述数据库的负载大于所述查询子请求对应的所述查询数据量。
在本说明书实施例中,数据库3C的性能指标可以理解为表征数据库3C运行能力和性能的参数,具体可以是运行状态、负载能力、响应时间、吞吐量、流量等参数,在此不做具体限定。
图4为本说明书实施例提供的一种数据查询系统的结构示意图。
所述数据查询系统包括终端4A、查询服务器4B、集群数据库4C、商户模型分析模块4D和数据库监控模块4E。本说明书实施例以商户作为具体用户进行数据查询。
查询服务器4B包括拆分判断单元421、拆分单元422、DAO(Data Access Objects,数据库访问对象)扩展单元423、子请求分发单元424、生命周期管理单元425、查询结果处理单元426和筛选单元427。
查询服务器2B可以通过DAO扩展单元423与现有数据库连接,利用DAO扩展单元423,可以实现现有数据库的扩展,而不需要更改太多的接口类型。
DAO是一个面向对象的数据库接口,位于业务逻辑和数据库资源之间,实现对数据库资源的访问,通俗的讲,就是将数据操作封装起来,对外提供相应的接口。
通过DAO扩展单元423与现有数据库连接,可以执行通用入参所定义的任意条件的参数和指定SQL(Structured Query Language,结构化查询语言)的输入,还可以返回通用查询结果,以此支持各接口的查询子请求均可适配执行。
这样,查询服务器4B和现有数据库的连接可以避免重新做一套各接口实现连接,避免对现有数据库接口的侵入式改写,提供查询服务器4B统一解决方案,在业务逻辑和数据库之间增加查询层,即查询服务器4B,现有数据库以及新增集群数据库4C的查询接口均支持扩展接入,可以合理的自动分配数据查询请求进入,进行数据查询过程。
集群数据库4C可以由多个机房组成,如机房A、机房B或者其他机房,每个机房中均包括多个单机数据库,如数据库1、数据库2…和数据库n。集群数据库4C中的每个数据库所存储的数据内容是相同的,可以对同一商户的不同查询子请求在不同数据库中同时进行数据查询。
商户模型分析模块4D包括商户历史查询行为分析单元411和商户历史查询数据分析单元412,通过商户模型分析模块4D可以得到商户查询行为模型。
数据库监控模块4E包括集群数据库状态监测单元431和单机报活插件432,其中,单机报活插件432可以包括性能指标监控单元433和性能指标上报单元434。
S401:终端4A向查询服务器4B发送携带商户标识和查询时间范围的数据查询请求。
在具体应用场景中,商户可以在终端4A的浏览器页面或者数据查询应用输入或者选择数据查询请求,以通过终端4A向查询服务器4B发送数据查询请求。
S403:查询服务器4B根据接收的商户标识从商户模型分析模块4D获取与所述商户标识对应的历史查询数据量和历史查询频率,所述历史查询数据量与所述查询时间范围的时间粒度对应。
拆分判断单元421根据获取的所述历史查询数据量估算所述查询时间范围内的查询数据量,判断所述查询数据量是否超过数据库负载。
若否,则通过DAO扩展单元423利用现有数据库对该数据查询请求进行数据查询。
若是,则确定对所述数据查询请求的拆分数量。
商户历史查询行为分析单元411可以根据与所述商户标识对应的历史查询行为数据对商户的历史查询行为进行分析,得到与所述商户标识对应的历史查询频率,以表征商户的数据查询需求和习惯。
商户历史查询数据分析单元412可以根据与所述商户标识对应的历史查询行为数据对商户的历史查询数据进行分析,得到与所述商户标识对应的历史查询数据量。
S405:拆分单元422根据获取的与商户标识对应的历史查询频率对拆分数量进行调整,根据调整的拆分数量对数据查询请求进行拆分。
S407:子请求分发单元424从拆分单元422获取根据调整的拆分数量拆分得到的查询子请求的属性信息,所述属性信息可以包括查询子请求的数量、每个查询子请求所对应的查询时间范围和查询数据量。
S409:筛选单元427从数据库监控模块4E获取集群数据库4C的每个数据库的性能指标,根据获取的所述性能指标对不能满足查询子请求所对应的查询数据量的数据库进行筛选,将筛选结果发送给子请求分发单元424。
获取集群数据库4C中每个单机数据库的性能指标,可以利用集群数据库状态监测单元431和单机报活插件432对数据库进行监控获取。
集群数据库状态监测单元431可以对机房中的单机数据库的运行状态进行实时监控,以实时得到机房中还可以进行数据查询的单机数据库信息。
单机报活插件432可以通过性能指标监控单元433对每个单机数据库的性能指标进行实时监控;可以通过性能指标上报单元434实时上报给筛选单元427。
通过对每个数据库的性能指标进行实时监控,查询服务器4B可以实时得到每个可运行的单机数据库的性能指标,将性能指标偏低的数据库筛选掉,以实现对每个查询子请求的有效查询处理。
通过商户模型分析模块4D提供的通用的基于商户所在业务模型,动态进行数据查询请求的拆分。具体的,根据商户的历史查询数据量,结合实时数据库监测的查询条件,动态的拆分为多个查询子请求,保障各查询子请求所对应的查询数据量平均,避免出现单个查询子请求的任务量过大而造成查询瓶颈,影响整体效率。
S411:子请求分发单元424根据接收的筛选结果将查询子请求发送给集群数据库4C中的数据库进行数据查询。
在数据查询过程中,生命周期管理单元425可以对进行数据查询的数据库的查询进程和查询状态进行监控管理,使得每个数据库可以在较短的时间完成数据查询,保证整体查询效率。
S413:在数据库完成数据查询之后,由子请求分发单元424接收每个查询子请求的查询结果,将接收到的查询结果发送给查询结果处理单元426。
查询结果处理单元426可以对接收到的查询结果进行合并处理,得到数据查询请求对应的查询结果,将数据查询请求对应的查询结果发送给商户。
对于现有数据库,单日超过20w~40w查询数据量,数据库就已超时,通过DAO扩展单元423增加查询服务器4B后,日均交易量305w的商户查询单日交易量时,查询服务器4B将该商户的数据查询请求拆分成16个查询子请求,每个查询子请求的查询时间范围自动解析为20分钟至1小时等不同的时间范围,共5s查询完毕,符合预期。
单日5w交易量中型商户按月对账,增加查询服务器4B后,查询3s左右返回商户查询结果;单日800w交易量的大型商户按日对账,查询7s内返回商户查询结果,均符合预期。
这样,当用户的查询数据量过大而超出数据库的承受能力时,能够避免出现查询超时的问题而影响用户体验度的情况;另外,通过结合历史查询行为数据对数据查询请求的拆分数量进行调整,使得对数据查询请求的处理能够满足用户的数据查询需求,提高用户体验度。
图5为本说明书实施例提供的一种数据查询方法的流程示意图。
S501:接收携带用户标识的数据查询请求,所述数据查询请求包括查询时间范围。
在本说明书实施例中,数据查询请求可以理解为用户针对自身的数据查询需求通过终端向服务端发送的获取对应的数据的请求,如可以是用户对一段时间范围内的交易明细的查询。
查询时间范围可以理解为用户对需要查询的数据的时间段的限定,如可以是查询某一天、某一周、某一个月或者其他时间范围内的数据量。
用户在通过终端发送数据查询请求时,可以指定查询时间范围和查询事件。具体的,用户可以在终端上通过下拉框的形式选择需要的查询事件和查询时间范围,还可以通过输入的方式输入需要的查询事件和查询时间范围,在此不做具体限定。
查询事件可以理解为用户对需要查询的数据的类型的限定,如可以是查询交易明细数据、交易总量数据或者其他类型的数据。
在具体应用场景中,终端还可以根据用户的历史查询习惯设置默认的查询时间范围和查询事件,如默认查询前一天、前一周或者其他时间范围内的交易明细数据。在这种情况下,用户可以通过默认查询设置直接发送数据查询请求。
S503:估算所述查询时间范围内的查询数据量。
估算查询时间范围内的查询数据量,可以根据判断所述查询数据量是否大于所述预设的数据库负载确定是否对所述数据查询请求进行拆分。
作为一种应用实施例,估算所述查询时间范围内的查询数据量,包括:
确定所述查询时间范围所对应的时间粒度;
获取所述时间粒度所对应的历史查询数据量,所述历史查询数据量是根据指定历史时间段内的至少一次数据查询请求所得到的查询数据量进行统计得到;
根据所获取的所述历史查询数据量估算在所述查询时间范围内的所述查询数据量。
在具体应用场景中,历史查询数据量可以是根据指定历史时间段内的至少一次数据查询请求所得到的查询数据量进行统计得到的平均值、最大值、中位数或者其他统计值。
历史查询数据量还可以是根据数据库日志估算的在指定历史时间段内的数据量级。
在本说明书实施例中,数据量级可以理解为用户在执行事件的过程中所产生的数据在数据库中存储的总量级,具体可以是万量级、十万量级、百万量级、千万量级或者其他量级,在此不做具体限定。
指定历史时间段可以理解为在接收到数据查询请求时近期的一段时间,如可以是接收到数据查询请求之前的一个月、一个季度、一年或者其他历史时间段,通过获取接收到数据查询请求近期的一段时间内的历史查询数据量,可以更准确的估算查询时间范围内的查询数据量。
作为一种应用实施例,获取所述时间粒度所对应的历史查询数据量,包括:
根据用户查询行为模型获取所述时间粒度所对应的所述历史查询数据量。
用户查询行为模型可以利用与用户标识对应的历史查询行为数据,根据指定历史时间段内的至少一次数据查询请求所得到的查询数据量进行统计得到所述历史查询数据量。
作为一种应用实施例,获取与所述时间粒度对应的所述历史查询数据量,可以包括:
根据所述历史查询行为数据确定在指定历史时间段内的至少一次数据查询请求所得到的历史查询结果;
利用所述历史查询结果及所述至少一次数据查询请求所对应的查询时间范围,确定在至少一种预设时间粒度的历史查询数据量;
确定与所述查询时间范围所对应的时间粒度对应的所述历史查询数据量。
在具体应用场景中,预设时间粒度可以是一个月、一周、一天或者其他时间粒度,在此不做具体限定。
S505:根据所述查询数据量确定对所述数据查询请求的拆分数量,使得根据所述拆分数量拆分所述数据查询请求得到查询子请求,所述查询子请求所对应的查询数据量不超过对所述查询子请求进行数据查询的数据库负载。
在本说明书实施例中,拆分数量可以理解为根据查询数据量对数据查询请求进行拆分所得到的查询子请求的数量。
在具体应用场景中,所述拆分数量可以是零,即数据查询请求的查询数据量不超过数据库负载,在这种情况下,可以不对数据查询请求进行拆分,数据库可以对数据查询请求进行查询。
所述拆分数量可以是大于1的正整数,即数据查询请求的查询数据量超过数据库负载,在这种情况下,可以将数据查询请求拆分成至少两个查询子请求,使得数据库对至少两个查询子请求进行查询。
数据库负载可以理解为数据库的数据查询承受能力,具体可以是数据库可以承受的查询数据的量级。
作为一种应用实施例,根据所述查询数据量确定对所述数据查询请求的拆分数量,包括:
判断所述查询数据量是否大于数据库负载;
若是,则根据所述查询数据量确定对所述数据查询请求的所述拆分数量,使基于确定的所述拆分数量拆分得到查询子请求,所述查询子请求所对应的查询数据量不超过对所述查询子请求进行数据查询的数据库负载。
在具体应用场景中,可以利用预设的拆分规则,根据所述查询数据量确定对所述数据查询请求的所述拆分数量。
通过判断查询数据量是否大于数据库负载,判断数据库负载是否满足数据查询请求所对应的查询数据量的查询需求,从而确定是否要对数据查询请求进行拆分,避免出现数据查询超时的情况。
预设的拆分规则可以理解为对数据查询请求的默认拆分策略,利用预设的拆分规则可以根据查询数据量确定该数据查询请求的拆分数量,使得拆分得到的每个查询子请求所对应的查询数据量不超过对该查询子请求进行数据查询的数据库负载。
S507:利用与所述用户标识对应的历史查询行为数据对所述拆分数量进行调整。
在本说明书实施例中,历史查询行为数据可以理解为与用户相关的数据查询历史记录信息,可以是用户自身的历史查询记录或者是用户所属行业的历史查询记录。
历史查询行为数据可以以日志的形式存储在数据库中,具体可以包括请求查询的时间、数据查询请求所对应的查询时间范围和查询事件、历史查询结果、查询结果返回时间或者其他历史查询行为数据,在此不做具体限定。
作为一种应用实施例,利用与所述用户标识对应的历史查询行为数据对所述拆分数量进行调整,可以包括:
根据与所述用户标识对应的历史查询行为数据确定所述用户标识所属用户的历史查询频率;
利用所述用户标识所属用户的历史查询频率对所述拆分数量进行调整。
与所述用户标识对应的历史查询行为数据,可以是根据所述用户标识获取用户所属行业信息,然后根据用户标识从数据库日志中获取用户的历史查询行为数据;根据用户所属行业信息从数据库日志中获取用户所属行业的历史查询行为数据。
作为一种应用实施例,根据与所述用户标识对应的历史查询行为数据确定所述用户标识所属用户的历史查询频率,可以包括:
确定截止到所述接收携带用户标识的数据查询请求时的目标历史时间段;
根据与所述用户标识对应的历史查询行为数据确定所述用户标识所属用户在所述目标历史时间段内的历史查询频率。
在本说明书实施例中,目标历史时间段可以理解为在接收数据查询请求之前的指定的近期目标时间范围,具体可以是在接收数据查询请求之前的一周、一个月、一个季度或者其他指定的目标时间范围。
通过根据在目标历史时间段内的历史查询行为数据确定用户的历史查询频率,可以确定在接收数据查询请求时近期的用户对于数据查询的需求和习惯。
作为一种应用实施例,根据与所述用户标识对应的历史查询行为数据确定所述用户标识所属用户的历史查询频率,包括如下至少一种方式:
根据所述用户所属行业的历史查询行为数据确定所述用户所属行业的历史查询频率;
根据所述用户标识所属用户的历史查询数据确定所述用户标识所属用户的历史查询频率。
在具体应用场景中,根据历史查询行为数据确定用户或者用户所属行业的历史查询频率,可以是对历史查询行为数据进行分析统计处理,分析用户和用户所属行业的数据查询需求,得到用户的历史查询频率和用户所属行业的历史查询频率。
利用所述用户标识所属用户的历史查询频率可以表征用户的数据查询习惯和数据查询需求;利用所述用户所属行业的历史查询频率可以间接表征用户的数据查询习惯和数据查询需求;以此对拆分数量进行调整,如增大拆分数量或者减小拆分数量,满足用户的数据查询需求,提高用户体验度和数据查询效率。
作为另外一种应用实施例,根据与所述用户标识对应的历史查询行为数据确定所述用户标识所属用户的历史查询频率,包括:
确定所述用户所属行业的历史查询频率的第一权重;
确定所述用户标识所属用户的历史查询频率的第二权重;
根据所述第一权重和所述第二权重确定所述用户的历史查询频率。
通过根据用户所属行业的历史查询频率的第一权重和用户标识所属用户的历史查询频率的第二权重来确定用户的历史查询频率,同时结合用户所属行业和用户的数据查询需求,最终确定用户的历史查询频率。
在具体应用场景中,第一权重和第二权重可以利用预设的频率处理规则进行确定。预设的频率处理规则可以是根据用户所属行业的数据查询需求和用户自身的数据查询需求来确定各自的权重,最后根据权重来确定用户的历史查询频率。
作为一种应用实施例,利用所述用户标识对应用户的历史查询频率对所述拆分数量进行调整,包括:
判断所述用户标识所属用户的历史查询频率是否大于阈值;
根据判断结果对所述拆分数量进行调整。
阈值可以理解为判断历史查询频率高低的频率数值,通过判断用户的历史查询频率的高低,确定用户的数据查询需求和数据查询习惯。
若所述判断结果为用户的历史查询频率大于阈值,表明用户的数据查询需求较大,则增大所述拆分数量。
若所述判断结果为用户的历史查询频率小于阈值,表明用户的数据查询需求较小,则减小所述拆分数量。
在具体应用场景中,对拆分数量进行调整,可以根据用户的数据查询需求和数据查询习惯增大拆分数量、减小拆分数量或者维持该拆分数量不变,如对数据查询需求较大的用户增大拆分数量,提高数据查询效率;对数据查询需求较大的用户增大拆分数量,降低数据查询效率,维持数据库的性能指标稳定。
如对于零售行业的商户,商户在近期的历史查询频率较高,表明该商户的数据查询需求偏向于实时收单对账,应增大拆分数量以提供更高效率的数据查询支持。
对于航旅行业的商户,商户在近期的历史查询频率较低,每次的查询时间范围较大,表明该商户的数据查询需求偏向于较长时间范围内的收支汇总查询,可以减小拆分数量以满足该商户的数据查询需求。
作为一种应用实施例,根据与所述用户标识对应的历史查询行为数据确定所述用户标识所属用户的历史查询频率,可以包括:
根据用户查询行为模型得到所述用户标识所属用户的历史查询频率,所述用户查询行为模型是根据与所述用户标识对应的历史查询行为数据确定的。
根据与用户标识对应的历史查询行为数据可以确定用户查询行为模型,根据用户查询行为模型可以确定通过对历史查询行为数据分析得到的历史查询频率。
作为另外一种应用实施例,还可以通过判断用户的历史查询频率是否大于用户所属行业的历史查询频率,确定对拆分数量进行调整的依据。
若用户的历史查询频率大于用户所属行业的历史查询频率,表明用户的历史查询频率较大,而用户所属行业的历史查询频率较小,用户的数据查询需求较大,则可以根据用户的历史查询频率增大拆分数量,提高数据查询效率。
若用户的历史查询频率小于用户所属行业的历史查询频率,表明用户的历史查询频率较小,而用户所属行业的历史查询频率较大,用户的数据查询需求较小,则可以根据用户所属行业的历史查询频率减小拆分数量,降低数据查询效率,以维持数据库的性能指标稳定。
对于第一次进行数据查询的新用户而言,利用用户所属行业的数据查询需求和数据查询习惯映射用户本身的数据查询需求和数据查询习惯,可以很好的结合用户的数据查询需求调整拆分数量,既能满足用户体验需求,又能维持数据库性能指标稳定。
S509:根据调整的拆分数量将所述数据查询请求拆分,使得数据库根据所述调整的拆分数量得到的查询子请求进行数据查询。
需要说明的是,在本说明书实施例中,拆分得到的查询子请求所对应的查询时间范围之和完全覆盖数据查询请求所对应的查询时间范围。
根据上述步骤S505和步骤S507,若调整的拆分数量为0,则表明数据查询请求的查询数据量较小,不超过数据库负载,可以不进行拆分即可利用数据库进行数据查询。
若调整的拆分数量是大于1的正整数,则表明数据查询请求的查询数据量较大,超过数据库的负载,需要进行拆分查询,以避免查询超时的情况。
作为一种应用实施例,在根据调整的拆分数量对所述数据查询请求进行拆分后,还可以包括:
将基于所述调整的拆分数量拆分得到的所述查询子请求发送给数据库进行数据查询。
在将基于所述调整的拆分数量拆分得到的所述查询子请求发送给数据库进行数据查询之前,还包括:
监测集群式数据库中各个数据库的性能指标;
根据监测到的所述性能指标确定接收所述查询子请求对应的数据库。
通过对数据库的性能指标进行监测,以获取数据库的实时负载,从而可以利用满足查询子请求的查询数据量的查询需求对应的数据库进行查询,避免将查询子请求发送给性能指标偏差的数据库进行数据查询,无法按时完成查询子请求的数据查询,影响数据查询请求的整体查询效率。
在这种情况下,可以采用数据库集群对拆分得到的查询子请求分别进行查询,如可以采用Hadoop集群数据库,以提高数据查询效率。
Hadoop集群是一种分布式系统基础架构,实现了一个分布式文件系统(HadoopDistributed File System,简称HDFS),为海量的数据提供了存储和计算功能;Hadoop集群中的每个数据库均是对等的,即每个数据库中存储的数据内容是相同的,可以对同一用户的不同查询子请求同时进行数据查询。
在具体应用场景中,对于历史查询频率较大的用户,可以将该用户的查询子请求发送到性能指标较好的数据库进行数据查询,以缩短数据查询时间,提高数据查询效率和用户体验度。
向所述数据库发送所述查询子请求,可以是向一个数据库发送至少一个查询子请求。
为保证数据查询效率,一般情况下,一个数据库对应查询一个查询子请求。若数据库的性能指标可以满足多个查询子请求对应的查询数据量的查询需求,可以向该数据库发送多个查询子请求。
作为一种应用实施例,在向所述数据库发送所述查询子请求后,还可以包括:
接收来自所述数据库的与所述查询子请求对应的查询结果;
对接收到的所述查询结果进行处理,得到与所述数据查询请求对应的查询结果;
将与所述数据查询请求对应的查询结果发送给所述用户标识所属用户的终端。
数据库对查询子请求进行查询,得到的是查询子请求所对应的查询时间范围内的查询结果。在具体应用场景中,可以对接收的查询结果进行合并处理,以得到数据查询请求所对应查询时间范围内的查询结果。
本说明书实施例提供的一种数据查询方法,通过根据查询时间范围内的查询数据量确定对数据查询请求的拆分数量,然后根据历史查询行为数据对拆分数量进行调整,从而能够快速的得到查询结果,实现数据查询。
这样,当用户的查询数据量过大而超出数据库的承受能力时,能够避免出现查询超时的问题而影响用户体验度的情况;另外,通过结合历史查询行为数据对数据查询请求的拆分数量进行调整,使得对数据查询请求的处理能够满足用户的数据查询需求和数据查询习惯,提高用户体验度和查询效率。
图6为本说明书实施例提供的一种数据查询方法的时序图,其中,终端6A的执行步骤由搭载在终端6A上的数据查询应用执行。
S601:终端6A接收用户输入的数据查询请求。
S603:终端6A向查询服务器6B发送携带用户标识的所述数据查询请求。
S605:查询服务器6B根据接收的所述数据查询请求,确定所述数据查询请求所对应的查询时间范围和查询事件。
S607:查询服务器6B根据所述用户标识从集群数据库6C中获取与所述用户标识对应的数据存储量级。
S609:查询服务器6B根据获取的数据存储量级估算所述查询时间范围内的查询数据量。
S611:查询服务器6B根据查询数据量确定对数据查询请求的拆分数量,使得基于所述拆分数量得到查询子请求,所述查询子请求所对应的查询数据量不超过对所述查询子请求进行数据查询的数据库负载。
S613:查询服务器6B从集群数据库6C中获取与用户标识对应的历史查询行为数据,所述历史行为数据包括用户的历史查询行为数据和用户所在行业的历史查询行为数据。
在这种情况下,以用户所在行业的历史查询行为数据代表用户的历史查询行为数据,以此来分析用户的数据查询习惯和数据查询需求。
S615:查询服务器6B根据获取的历史行为数据确定与用户标识对应的历史查询频率。
用户的历史查询频率可以表征用户的数据查询习惯和数据查询需求,以此来对拆分数量进行调整。
S617:查询服务器6B根据所述历史查询频率对拆分数量进行调整。
S619:查询服务器6B根据调整的拆分数量将数据查询请求拆分成多个查询子请求。
S621:查询服务器6B获取集群数据库6C中每个单机数据库的性能指标。
S623:查询服务器6B根据获取的每个数据库的性能指标,将查询子请求发送到对应的数据库中进行查询,使得数据库的性能指标能够满足查询子请求的数据查询需求。
在具体应用场景中,查询服务器6B利用P2P(peer to peer,对等网络)的方式向数据库发送查询子请求,使得每个数据库均能对同一用户的不同查询子请求同时进行数据查询。
S625:集群数据库6C中的数据库根据接收的查询子请求分别进行数据查询。
S627:集群数据库6C向查询服务器6B发送每个查询子请求所对应的查询结果。
S629:查询服务器6B对接收到的查询结果进行合并处理,得到数据查询请求所对应的查询结果。
S631:查询服务器6B向终端6A返回数据查询请求所对应的查询结果。
本说明书实施例提供的一种数据查询方法,查询服务器6B通过根据查询时间范围内的查询数据量确定对数据查询请求的拆分数量,然后根据历史查询行为数据对拆分数量进行调整,从而集群数据库6C能够快速对基于调整的拆分数量得到查询子请求进行数据查询,得到查询结果。
这样,当用户的查询数据量过大而超出数据库负载的承受能力时,能够避免出现查询超时的问题而影响用户体验度的情况;另外,通过结合历史查询行为数据对数据查询请求的拆分数量进行调整,使得对数据查询请求的处理能够满足用户的数据查询需求,提高用户体验度和数据查询效率。
图7为本说明书实施例提供的一种数据查询装置的结构示意图。
接收模块702,接收携带用户标识的数据查询请求,所述数据查询请求包括查询时间范围;
估算模块704,估算所述查询时间范围内的查询数据量;
确定模块706,根据所述查询数据量确定对所述数据查询请求的拆分数量,使得根据所述拆分数量拆分所述数据查询请求得到查询子请求,所述查询子请求所对应的查询数据量不超过对所述查询子请求进行数据查询的数据库负载;
调整模块708,利用与所述用户标识对应的历史查询行为数据对所述拆分数量进行调整;
拆分模块710,根据调整的拆分数量将所述数据查询请求拆分,使得数据库根据所述调整的拆分数量得到的查询子请求进行数据查询。
本说明书实施例提供的一种数据查询装置,通过根据查询时间范围内的查询数据量确定对数据查询请求的拆分数量,然后根据历史查询行为数据对拆分数量进行调整,从而能够快速的得到查询结果,实现数据查询。
这样,当用户的查询数据量过大而超出查询数据库的承受能力时,能够避免出现查询超时的问题而影响用户体验度的情况;另外,通过结合历史查询行为数据对数据查询请求的拆分数量进行调整,使得对数据查询请求的处理能够满足用户的数据查询需求,提高用户体验度。
基于同一发明构思,本说明书实施例还提供一种电子设备,包括至少一个处理器及存储器,存储器存储有程序,并且被配置成由至少一个处理器执行以下步骤:
接收携带用户标识的数据查询请求,所述数据查询请求包括查询时间范围;
估算所述查询时间范围内的查询数据量;
根据所述查询数据量确定对所述数据查询请求的拆分数量,使得根据所述拆分数量拆分所述数据查询请求得到查询子请求,所述查询子请求所对应的查询数据量不超过对所述查询子请求进行数据查询的数据库负载;
利用与所述用户标识对应的历史查询行为数据对所述拆分数量进行调整;
根据调整的拆分数量将所述数据查询请求拆分,使得数据库根据所述调整的拆分数量得到的查询子请求进行数据查询。
其中,处理器的其他功能还可以参见上述实施例中记载的内容,这里不再一一赘述。
基于同一发明构思,本说明书实施例还提供一种计算机可读存储介质,包括与电子设备结合使用的程序,程序可被处理器执行以完成以下步骤:
接收携带用户标识的数据查询请求,所述数据查询请求包括查询时间范围;
估算所述查询时间范围内的查询数据量;
根据所述查询数据量确定对所述数据查询请求的拆分数量,使得根据所述拆分数量拆分所述数据查询请求得到查询子请求,所述查询子请求所对应的查询数据量不超过对所述查询子请求进行数据查询的数据库负载;
利用与所述用户标识对应的历史查询行为数据对所述拆分数量进行调整;
根据调整的拆分数量将所述数据查询请求拆分,使得数据库根据所述调整的拆分数量得到的查询子请求进行数据查询。
其中,处理器的其他功能还可以参见上述实施例中记载的内容,这里不再一一赘述。
在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进),还是软件上的改进(例如,对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(Programmable Logic Device,PLD)(例如现场可编程门阵列(Field ProgrammableGate Array,FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(Hardware Description Language,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware DescriptionLanguage)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(RubyHardware Description Language)等,目前最普遍使用的是VHDL(Very-High-SpeedIntegrated Circuit Hardware Description Language)与Verilog。本领域技术人员也应该清楚,只需要将本说明书实施例中提供的方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:ARC 625D、Atmel AT91SAM、Microchip PIC18F26K20以及Silicone Labs C8051F320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
上述说明书实施例所阐明的系统、装置、模块或单元,具体可以由计算机芯片或者实体设备实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
为了描述的方便,描述以上装置时以功能分为各种模块或单元分别描述。当然,在实施本申请时可以把各模块或各单元的功能在同一个或多个软件和/或硬件中实现。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、装置、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解为可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求保护范围之内。

Claims (17)

1.一种数据查询方法,包括:
接收携带用户标识的数据查询请求,所述数据查询请求包括查询时间范围;
估算所述查询时间范围内的查询数据量;
根据所述查询数据量确定对所述数据查询请求的拆分数量,使得根据所述拆分数量拆分所述数据查询请求得到查询子请求,所述查询子请求所对应的查询数据量不超过对所述查询子请求进行数据查询的数据库负载;
利用与所述用户标识对应的历史查询行为数据对所述拆分数量进行调整;
根据调整的拆分数量将所述数据查询请求拆分,使得数据库根据所述调整的拆分数量得到的查询子请求进行数据查询。
2.如权利要求1所述的方法,利用与所述用户标识对应的历史查询行为数据对所述拆分数量进行调整,包括:
根据与所述用户标识对应的历史查询行为数据确定所述用户标识所属用户的历史查询频率;
利用所述用户标识所属用户的历史查询频率对所述拆分数量进行调整。
3.如权利要求2所述的方法,根据与所述用户标识对应的历史查询行为数据确定所述用户标识所属用户的历史查询频率,包括:
确定截止到所述接收携带用户标识的数据查询请求时的目标历史时间段;
根据与所述用户标识对应的历史查询行为数据确定所述用户标识所属用户在所述目标历史时间段内的历史查询频率。
4.如权利要求2所述的方法,根据与所述用户标识对应的历史查询行为数据确定所述用户标识所属用户的历史查询频率,包括如下至少一种方式:
根据所述用户所属行业的历史查询行为数据确定所述用户所属行业的历史查询频率;
根据所述用户标识所属用户的历史查询数据确定所述用户标识所属用户的历史查询频率。
5.如权利要求2所述的方法,利用所述用户标识对应用户的历史查询频率对所述拆分数量进行调整,包括:
判断所述用户标识所属用户的历史查询频率是否大于阈值;
根据判断结果对所述拆分数量进行调整。
6.如权利要求2所述的方法,根据与所述用户标识对应的历史查询行为数据确定所述用户标识所属用户的历史查询频率,包括:
根据用户查询行为模型得到所述用户标识所属用户的历史查询频率,所述用户查询行为模型是根据与所述用户标识对应的历史查询行为数据确定的。
7.如权利要求1所述的方法,估算所述查询时间范围内的查询数据量,包括:
确定所述查询时间范围所对应的时间粒度;
获取所述时间粒度所对应的历史查询数据量,所述历史查询数据量是根据指定历史时间段内的至少一次数据查询请求所得到的查询数据量进行统计得到;
根据所获取的所述历史查询数据量估算在所述查询时间范围内的所述查询数据量。
8.如权利要求7所述的方法,获取所述时间粒度所对应的历史查询数据量,包括:
根据用户查询行为模型获取所述时间粒度所对应的所述历史查询数据量。
9.如权利要求1所述的方法,根据所述查询数据量确定对所述数据查询请求的拆分数量,包括:
判断所述查询数据量是否大于数据库负载;
若是,则根据所述查询数据量确定对所述数据查询请求的所述拆分数量,使基于确定的所述拆分数量拆分得到查询子请求,所述查询子请求所对应的查询数据量不超过对所述查询子请求进行数据查询的数据库负载。
10.如权利要求1所述的方法,在根据调整的拆分数量将所述数据查询请求拆分之后,还包括:
将基于所述调整的拆分数量拆分得到的所述查询子请求发送给数据库进行数据查询。
11.如权利要求10所述的方法,在将基于所述调整的拆分数量拆分得到的所述查询子请求发送给数据库进行数据查询之前,还包括:
监测集群式数据库中各个数据库的性能指标;
根据监测到的所述性能指标确定接收所述查询子请求对应的数据库。
12.如权利要求1所述的方法,在向所述数据库发送所述查询子请求后,还包括:
接收来自所述数据库的与所述查询子请求对应的查询结果;
对接收的所述查询结果进行处理,得到与所述数据查询请求对应的查询结果;
将与所述数据查询请求对应的查询结果发送给所述用户标识所属用户的终端。
13.一种数据查询系统,包括:
查询服务器,接收携带用户标识和查询时间范围的数据查询请求,估算所述查询时间范围内的查询数据量,根据所述查询数据量确定对所述数据查询请求的拆分数量,利用与所述用户标识对应的历史查询行为数据对所述拆分数量进行调整,根据调整的拆分数量将所述数据查询请求拆分,使得拆分得到的查询子请求所对应的查询数据量不超过对所述查询子请求进行数据查询的数据库负载;
数据库,对基于所述调整的拆分数量拆分得到的所述查询子请求进行数据查询。
14.如权利要求13所述的系统,所述系统还包括:
用户查询行为模型,存储至少一种时间粒度所对应的历史查询数据量,所述历史查询数据量是根据指定历史时间段内的至少一次数据查询请求所得到的查询数据量进行统计得到,使得所述查询服务器从所述用户查询行为模型获取与所述查询时间范围的时间粒度对应的历史查询数据量,根据所述历史查询数据量估算所述查询时间范围内的所述查询数据量。
15.一种数据查询装置,包括:
接收模块,接收携带用户标识的数据查询请求,所述数据查询请求包括查询时间范围;
估算模块,估算所述查询时间范围内的查询数据量;
确定模块,根据所述查询数据量确定对所述数据查询请求的拆分数量,使得根据所述拆分数量拆分所述数据查询请求得到查询子请求,所述查询子请求所对应的查询数据量不超过对所述查询子请求进行数据查询的数据库负载;
调整模块,利用与所述用户标识对应的历史查询行为数据对所述拆分数量进行调整;
拆分模块,根据调整的拆分数量将所述数据查询请求拆分,使得数据库根据所述调整的拆分数量得到的查询子请求进行数据查询。
16.如权利要求15所述的装置,利用与所述用户标识对应的历史查询行为数据对所述拆分数量进行调整,包括:
根据与所述用户标识对应的历史查询行为数据确定所述用户标识所属用户的历史查询频率;
利用所述用户标识所属用户的历史查询频率对所述拆分数量进行调整。
17.一种电子设备,包括至少一个处理器及存储器,存储器存储有程序,并且被配置成至少一个处理器执行以下步骤:
接收携带用户标识的数据查询请求,所述数据查询请求包括查询时间范围;
估算所述查询时间范围内的查询数据量;
根据所述查询数据量确定对所述数据查询请求的拆分数量,使得根据所述拆分数量拆分所述数据查询请求得到查询子请求,所述查询子请求所对应的查询数据量不超过对所述查询子请求进行数据查询的数据库负载;
利用与所述用户标识对应的历史查询行为数据对所述拆分数量进行调整;
根据调整的拆分数量将所述数据查询请求拆分,使得数据库根据所述调整的拆分数量得到的查询子请求进行数据查询。
CN201910377737.8A 2019-04-30 2019-04-30 一种数据查询方法、系统、装置及电子设备 Pending CN110096489A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910377737.8A CN110096489A (zh) 2019-04-30 2019-04-30 一种数据查询方法、系统、装置及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910377737.8A CN110096489A (zh) 2019-04-30 2019-04-30 一种数据查询方法、系统、装置及电子设备

Publications (1)

Publication Number Publication Date
CN110096489A true CN110096489A (zh) 2019-08-06

Family

ID=67447207

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910377737.8A Pending CN110096489A (zh) 2019-04-30 2019-04-30 一种数据查询方法、系统、装置及电子设备

Country Status (1)

Country Link
CN (1) CN110096489A (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111125719A (zh) * 2019-12-25 2020-05-08 中信百信银行股份有限公司 一种提升代码安全检测效率的方法、装置、计算机设备、和可读存储介质
CN111177478A (zh) * 2019-12-24 2020-05-19 北京明略软件系统有限公司 一种查询方法、装置及系统
CN112100138A (zh) * 2020-09-16 2020-12-18 北京天融信网络安全技术有限公司 一种日志查询方法、装置、存储介质和电子设备
CN112286961A (zh) * 2020-09-29 2021-01-29 苏宁云计算有限公司 Sql优化查询方法及装置
CN112433851A (zh) * 2020-11-23 2021-03-02 广州技象科技有限公司 一种物联网资源调度方法、装置、设备及存储介质
CN112445818A (zh) * 2019-08-30 2021-03-05 拉扎斯网络科技(上海)有限公司 用于数据库系统的数据查询方法、装置、电子设备及介质
CN113609168A (zh) * 2021-07-14 2021-11-05 远景智能国际私人投资有限公司 数据导出方法、装置、终端以及可读存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103559300A (zh) * 2013-11-13 2014-02-05 曙光信息产业(北京)有限公司 数据的查询方法和查询装置
CN104123288A (zh) * 2013-04-24 2014-10-29 阿里巴巴集团控股有限公司 一种数据查询方法及装置
CN104731951A (zh) * 2015-03-31 2015-06-24 北京奇艺世纪科技有限公司 一种数据查询方法及装置
CN106407190A (zh) * 2015-07-27 2017-02-15 阿里巴巴集团控股有限公司 一种事件记录查询方法及装置
CN106547784A (zh) * 2015-09-22 2017-03-29 阿里巴巴集团控股有限公司 一种数据拆分存储方法及装置
US10055421B1 (en) * 2017-04-14 2018-08-21 Xactly Corporation Pre-execution query optimization

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104123288A (zh) * 2013-04-24 2014-10-29 阿里巴巴集团控股有限公司 一种数据查询方法及装置
CN103559300A (zh) * 2013-11-13 2014-02-05 曙光信息产业(北京)有限公司 数据的查询方法和查询装置
CN104731951A (zh) * 2015-03-31 2015-06-24 北京奇艺世纪科技有限公司 一种数据查询方法及装置
CN106407190A (zh) * 2015-07-27 2017-02-15 阿里巴巴集团控股有限公司 一种事件记录查询方法及装置
US20180137169A1 (en) * 2015-07-27 2018-05-17 Alibaba Group Holding Limited Querying a database
CN106547784A (zh) * 2015-09-22 2017-03-29 阿里巴巴集团控股有限公司 一种数据拆分存储方法及装置
US10055421B1 (en) * 2017-04-14 2018-08-21 Xactly Corporation Pre-execution query optimization

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112445818A (zh) * 2019-08-30 2021-03-05 拉扎斯网络科技(上海)有限公司 用于数据库系统的数据查询方法、装置、电子设备及介质
CN111177478A (zh) * 2019-12-24 2020-05-19 北京明略软件系统有限公司 一种查询方法、装置及系统
CN111125719A (zh) * 2019-12-25 2020-05-08 中信百信银行股份有限公司 一种提升代码安全检测效率的方法、装置、计算机设备、和可读存储介质
CN111125719B (zh) * 2019-12-25 2023-10-24 中信百信银行股份有限公司 一种提升代码安全检测效率的方法、装置、计算机设备、和可读存储介质
CN112100138A (zh) * 2020-09-16 2020-12-18 北京天融信网络安全技术有限公司 一种日志查询方法、装置、存储介质和电子设备
CN112286961A (zh) * 2020-09-29 2021-01-29 苏宁云计算有限公司 Sql优化查询方法及装置
CN112286961B (zh) * 2020-09-29 2022-11-18 苏宁云计算有限公司 Sql优化查询方法及装置
CN112433851A (zh) * 2020-11-23 2021-03-02 广州技象科技有限公司 一种物联网资源调度方法、装置、设备及存储介质
CN113609168A (zh) * 2021-07-14 2021-11-05 远景智能国际私人投资有限公司 数据导出方法、装置、终端以及可读存储介质
CN113609168B (zh) * 2021-07-14 2024-01-05 远景智能国际私人投资有限公司 数据导出方法、装置、终端以及可读存储介质

Similar Documents

Publication Publication Date Title
CN110096489A (zh) 一种数据查询方法、系统、装置及电子设备
US20190073366A1 (en) System and method for client-side calculation in a multidimensional database environment
CN104951446A (zh) 大数据处理方法及平台
CN108090225A (zh) 数据库实例的运行方法、装置、系统及计算机可读存储介质
Taft et al. P-store: An elastic database system with predictive provisioning
CN110321214A (zh) 一种数据查询方法、装置及设备
CN108683692A (zh) 一种业务请求处理方法及装置
Tos et al. A performance and profit oriented data replication strategy for cloud systems
US20120303325A1 (en) Inferring effects of configuration on performance
CN102880542A (zh) 云计算服务评测系统及评测方法
Heilig et al. Managing cloud-based big data platforms: a reference architecture and cost perspective
CN107038127A (zh) 应用系统及其缓存控制方法和装置
US20130346436A1 (en) Simulation Techniques for Predicting In-Memory Database Systems Performance
CN111177562B (zh) 一种目标对象的推荐排序处理方法、装置及服务器
CN110311933A (zh) 一种均衡业务流量的方法、装置、设备及存储介质
CN115456801B (zh) 个人信用的人工智能大数据风控系统、方法和存储介质
US20050197936A1 (en) Monte Carlo grid scheduling algorithm selection optimization
CN113672660B (zh) 一种数据查询方法、装置及设备
CN115248815A (zh) 预测查询处理
Kang et al. A real-time database testbed and performance evaluation
CN114860799A (zh) 数据仓库的质量检测方法和装置
CN106919643A (zh) 行情数据的写入、读取以及行情数据的读写方法和系统
Li et al. Cloud Instance Resources Prediction Based on Hidden Markov Model
CN109213451A (zh) 云数据系统中存储资源的管理方法和装置
Taft Elastic database systems

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
TA01 Transfer of patent application right

Effective date of registration: 20200930

Address after: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Applicant after: Innovative advanced technology Co.,Ltd.

Address before: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Applicant before: Advanced innovation technology Co.,Ltd.

Effective date of registration: 20200930

Address after: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Applicant after: Advanced innovation technology Co.,Ltd.

Address before: A four-storey 847 mailbox in Grand Cayman Capital Building, British Cayman Islands

Applicant before: Alibaba Group Holding Ltd.

TA01 Transfer of patent application right
RJ01 Rejection of invention patent application after publication

Application publication date: 20190806

RJ01 Rejection of invention patent application after publication