CN116662376A - 数据查询方法、装置、电子设备及存储介质 - Google Patents
数据查询方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN116662376A CN116662376A CN202310956886.6A CN202310956886A CN116662376A CN 116662376 A CN116662376 A CN 116662376A CN 202310956886 A CN202310956886 A CN 202310956886A CN 116662376 A CN116662376 A CN 116662376A
- Authority
- CN
- China
- Prior art keywords
- query
- preset
- data
- resource
- request
- 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
- 238000000034 method Methods 0.000 title claims abstract description 90
- 238000012545 processing Methods 0.000 claims abstract description 26
- 238000004458 analytical method Methods 0.000 claims abstract description 24
- 230000008569 process Effects 0.000 description 21
- 238000010586 diagram Methods 0.000 description 15
- 238000007726 management method Methods 0.000 description 8
- 238000004364 calculation method Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 6
- 241000233805 Phoenix Species 0.000 description 5
- 238000004590 computer program Methods 0.000 description 4
- 238000012546 transfer Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000002776 aggregation Effects 0.000 description 2
- 238000004220 aggregation Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000011217 control strategy Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000003745 diagnosis Methods 0.000 description 2
- 238000001914 filtration Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 238000012163 sequencing technique Methods 0.000 description 2
- 230000005856 abnormality Effects 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
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
-
- 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/2282—Tablespace storage structures; Management thereof
-
- 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/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/505—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/547—Remote procedure calls [RPC]; Web services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/544—Remote
-
- 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)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供一种数据查询方法、装置、电子设备及存储介质,该方法包括:接收客户端发送的本次查询请求;生成本次查询请求对应的查询计划;基于查询计划查询数据库,并基于本次查询时间获取数据库对应的目标查询数据行数;本次查询时间为基于查询计划查询数据库以得到查询结果所经历的时间;根据目标查询数据行数和查询指标信息进行资源消耗分析处理,得到本次查询请求所消耗的资源数量;获取与账号标识信息对应的剩余资源配额,基于剩余资源配额和本次查询请求所消耗的资源数量之间的资源差异信息,对客户端的查询频率进行控制。本申请能够提升查询频率控制的效率和精度,从而提升数据查询体验和数据查询效率。
Description
技术领域
本申请属于计算机技术领域,具体涉及一种数据查询方法、装置、电子设备及存储介质。
背景技术
为了保护报表查询系统,避免无限制的查询对系统带来的冲击和资源浪费,可以引入频率控制模块对查询进行限制,相关技术通常以每天或者每小时为一个单位时间,为每个客户端账号设置一个查询次数N,其中,N为一个固定值。在某一个场景下,如果客户端账号在单位时间内的查询次数达到了N,则会对客户端账号的查询进行限制,待到下一个单位时间后,才会允许客户端账号进行再次查询。
然而,对于广告系统的广告主而言,不同的广告主投放的广告数量是有差距的,不同的广告数量的查询代价不同,不同的查询类型的查询代价也不相同,统一使用单位时间内的查询次数作为查询频率控制的基础,往往需要设置较低的频率控制阈值,而较低的频率控制阈值的设置将会限制一些不会对系统产生资源压力的查询请求,使得系统资源在查询过程中的使用不合理,从而降低查询频率的控制效率和控制精度,进而降低数据查询体验和数据查询效率。
发明内容
为了解决上述技术问题,本申请提供一种数据查询方法、装置、电子设备及存储介质。
一方面,本申请提出了一种数据查询方法,所述方法包括:
接收客户端发送的本次查询请求;所述本次查询请求中携带有查询指标信息和账号标识信息,所述账号标识信息为所述客户端对应的账号的标识信息;
生成所述本次查询请求对应的查询计划;
基于所述查询计划查询数据库,并基于本次查询时间获取所述数据库对应的目标查询数据行数;所述本次查询时间为基于所述查询计划查询所述数据库以得到查询结果所经历的时间;
根据所述目标查询数据行数和所述查询指标信息进行资源消耗分析处理,得到所述本次查询请求所消耗的资源数量;
获取与所述账号标识信息对应的剩余资源配额,基于所述剩余资源配额和所述本次查询请求所消耗的资源数量之间的资源差异信息,对所述客户端的查询频率进行控制;所述剩余资源配额为基于预设资源配额确定得到,所述预设资源配额为基于接收查询请求的服务器所消耗的中央处理器资源和内存资源确定得到。
另一方面,本申请提出了一种数据查询装置,所述装置包括:
本次查询请求接收模块,用于接收客户端发送的本次查询请求;所述本次查询请求中携带有查询指标信息和账号标识信息,所述账号标识信息为所述客户端对应的账号的标识信息;
查询计划生成模块,用于生成所述本次查询请求对应的查询计划;
查询模块,用于基于所述查询计划查询数据库,并基于本次查询时间获取所述数据库对应的目标查询数据行数;所述本次查询时间为基于所述查询计划查询所述数据库以得到查询结果所经历的时间;
消耗分析模块,用于根据所述目标查询数据行数和所述查询指标信息进行资源消耗分析处理,得到所述本次查询请求所消耗的资源数量;
频率控制模块,用于获取与所述账号标识信息对应的剩余资源配额,基于所述剩余资源配额和所述本次查询请求所消耗的资源数量之间的资源差异信息,对所述客户端的查询频率进行控制;所述剩余资源配额为基于预设资源配额确定得到,所述预设资源配额为基于接收查询请求的服务器所消耗的中央处理器资源和内存资源确定得到。
在一个可选的实施例中,所述查询模块,包括:
第一查询数据行数获取单元,用于在确定所述本次查询时间小于预设时间阈值的情况下,获取基于所述查询计划查询所述数据库所得到的目标查询数据行数。
在一个可选的实施例中,所述查询模块,包括:
第二查询数据行数获取单元,用于在确定所述本次查询时间大于或等于预设时间阈值的情况下,获取超时查询数据行数;所述超时查询数据行数为所述服务器在预设负载下的第一预设时间段内查询所述数据库所得到的数据行数;
查询数据行数确定单元,用于确定所述超时查询数据行数为所述目标查询数据行数。
在一个可选的实施例中,所述查询计划生成模块,包括:
查询并发数获取单元,用于从预设全局存储中获取与所述账号标识信息对应的查询并发数;
生成单元,用于在所述查询并发数小于预设并发数阈值的情况下,将所述预设全局存储中的查询并发数加1,并生成所述本次查询请求对应的查询计划。
在一个可选的实施例中,所述装置还包括:
查询结果发送模块,用于在确定所述本次查询时间小于预设时间阈值的情况下,发送所述查询结果至所述客户端,并将所述预设全局存储中的查询并发数减1。
在一个可选的实施例中,所述频率控制模块,包括:
剩余资源配额获取单元,用于从预设全局存储中获取与所述账号标识信息对应的剩余资源配额;
其中,所述剩余资源配额为基于预设资源配额和历史消耗资源数量之间的差值确定得到;所述预设资源配额为在所述服务器所需的中央处理器的负载资源为第一预设负载、且内存的负载资源为第二预设负载的情况下,基于查询请求次数、平均查询数据行数、平均指标数量和客户端数量确定得到;所述查询请求次数为所述服务器在第二预设时间段内所接收到的查询请求的次数;所述平均查询数据行数为所述服务器在所述第二预设时间段内基于每次接收到的查询请求,查询所述数据库所得到的查询数据行数的均值;所述平均指标数量为每次接收到的查询请求中携带的查询指标信息所对应的指标数量的均值;所述客户端数量为在所述第二预设时间段内,向所述服务器发送查询请求的客户端的数量;
所述历史消耗资源数量为基于历史查询数据行数和所述客户端的历史查询请求中携带的历史查询指标信息确定得到,所述历史查询数据行数为基于历史查询时间获取得到,所述历史查询时间为基于历史查询计划查询所述数据库以得到历史查询结果所经历的时间,所述历史查询计划为与所述历史查询请求对应的查询计划。
在一个可选的实施例中,所述消耗分析模块,用于确定所述查询指标信息对应的指标数量与所述目标查询数据行数的乘积,得到所述本次查询请求所消耗的资源数量。
在一个可选的实施例中,所述频率控制模块,还包括:
差值确定单元,用于确定所述剩余资源配额和所述本次查询请求所消耗的资源数量之间的差值,得到所述资源差异信息;
查询请求接收单元,用于在所述资源差异信息大于0的情况下,接收所述客户端发送的下一次查询请求,并基于所述下一次查询请求查询所述数据库;
查询请求拒绝单元,用于在所述资源差异信息小于或等于0的情况下,拒绝所述客户端发送的下一次查询请求。
在一个可选的实施例中,所述装置还包括:
查询超时信息发送单元,用于在确定所述本次查询时间大于或等于预设时间阈值的情况下,发送查询超时信息至所述客户端。
另一方面,本申请提出了一种数据查询的电子设备,所述电子设备包括处理器和存储器,存储器中存储有至少一条指令或至少一段程序,至少一条指令或至少一段程序由处理器加载并执行以实现如上述所述的数据查询方法。
另一方面,本申请提出了一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条指令或至少一段程序,所述至少一条指令或所述至少一段程序由处理器加载并执行以实现如上述所述的数据查询方法。
另一方面,本申请提出了一种计算机程序产品,包括计算机程序,所述计算机程序所述计算机程被处理器执行时实现如上述所述的数据查询方法。
本申请实施例提出一种数据查询方法、装置、电子设备及存储介质,该方法通过接收客户端发送的、携带有客户端的账号标识信息和查询指标信息的本次查询请求;生成本次查询请求对应的查询计划;基于查询计划查询数据库,并基于本次查询时间获取数据库对应的目标查询数据行数;根据目标查询数据行数和查询指标信息进行资源消耗分析处理,得到本次查询请求所消耗的资源数量;获取与账号标识信息对应的剩余资源配额,基于剩余资源配额和本次查询请求所消耗的资源数量之间的资源差异信息,对客户端的查询频率进行控制,实现了将本次查询请求对应的本次查询时间、目标查询数据行数、查询指标信息核算为本次查询请求所消耗的资源数量,即核算为查询代价,使用查询代价对客户端的查询频率进行控制,提升了查询频率控制的效率和精度,从而提升了数据查询体验和数据查询效率,降低了服务器、存储、带宽等资源在数据查询过程中的消耗。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案和优点,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它附图。
图1是根据一示例性实施例示出的一种数据查询方法的实施环境示意图。
图2是根据一示例性实施例示出的一种数据查询方法的流程示意图一。
图3是根据一示例性实施例示出的一种基于查询计划查询数据库的流程示意图。
图4是根据一示例性实施例示出的一种数据查询方法的流程示意图二。
图5是根据一示例性实施例示出的一种控制查询并发数的流程示意图。
图6是根据一示例性实施例示出的一种生成本次查询请求所消耗的资源数量的流程示意图。
图7是根据一示例性实施例示出的一种广告管理平台示意图。
图8是根据一示例性实施例示出的一种数据报表示意图。
图9是根据一示例性实施例示出的一种数据查询装置的框图。
图10是根据一示例性实施例提供的一种服务器的硬件结构框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
需要说明的是,本申请实施例的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请实施例的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或服务器不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
图1是根据一示例性实施例示出的一种数据查询方法的实施环境示意图。如图1所示,该实施环境至少可以包括客户端01和服务器02,该客户端01和服务器02之间可以通过有线或无线通信方式进行直接或间接地连接,本申请实施例在此不做限制。
具体地,该服务器02可以用于接收客户端发送的本次查询请求,并对客户端的查询频率进行控制。可选地,该服务器02可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(Content DeliveryNetwork,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器。
具体地,该客户端01可以用于向服务器02发送查询请求;以及用于展示数据查询结果。可选地,该客户端01可以包括但不限于手机、电脑、智能语音交互设备、智能家电、车载终端、飞行器等。
需要说明的是,图1仅仅是一种示例。在其他场景中,还可以包括其他实施环境。
图2是根据一示例性实施例示出的一种数据查询方法的流程示意图一。该方法可以用于图1中的实施环境中。本说明书提供了如实施例或流程图上述的方法操作步骤,但基于常规或者无创造性的劳动可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的系统或服务器产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境)。具体的如图2所示,该方法可以包括:
S101.接收客户端发送的本次查询请求;本次查询请求中携带有查询指标信息和账号标识信息,账号标识信息为客户端对应的账号的标识信息。
可选地,该查询指标信息表征本次查询请求所查询的目标。在广告投放的报表查询领域,该查询指标信息可以包括但不限于:曝光量、点击量、点击率、点击均价等。
可选地,该客户端可以为具有查询功能的各种终端。在广告投放的报表查询领域,该客户端可以为广告投放终端。该客户端对应的账号可以为投放广告的广告主。该账号标识信息用于指示身份信息,其用于唯一标识该客户端对应的账号。例如,该账号标识信息可以为客户端对应的账号的身份证标识号(Identity document,Id)。
可选地,客户端可以通过远程过程调用(Remote Procedure Call,RPC)协议向服务器发送查询请求。其中,远程过程调用的原理为:第三方的客户程序通过接口调用服务内部的标准或自定义函数。在一种实施方式中,客户端可以通过页面,使用远程过程调用协议向服务器发送本次查询请求。在另一种实施方式中,客户端也可以通过超文本传输协议(Hypertext Transfer Protocol,HTTP),使用远程过程调用协议向服务器发送本次查询请求。
需要说明的是,该本次查询请求中还可以携带有日期、groupby、排序、查询语句等条件。其中,groupby指的是对数据按照哪个字段进行分组,或者哪几个字段进行分组。
S103.生成本次查询请求对应的查询计划。
S105.基于查询计划查询数据库,并基于本次查询时间获取数据库对应的目标查询数据行数;本次查询时间为基于查询计划查询数据库以得到查询结果所经历的时间。
可选地,服务器可以生成本次查询请求对应的查询计划,并基于查询计划查询数据库得到查询结果。
以下,以服务器为报表服务器,该报表服务器具体为HBase服务器为例,对生成本次查询请求对应的查询计划,并基于查询计划查询数据库得到查询结果的过程进行说明,其中,HBase是一个分布式的、面向列的开源数据库。
图3是根据一示例性实施例示出的一种基于查询计划查询数据库的流程示意图,如图3所示,在广告投放的报表查询领域,进行数据查询的客户端对应的账号可以为投放广告的广告主,查询的形式可以包括广告主投放终端进行请求和广告主使用超文本传输协议进行请求两种方式。即客户端可以通过页面向HBase服务器发送本次查询请求。也可以通过超文本传输协议向HBase服务器发送本次查询请求。广告主发送的本次查询请求会发送到统一的网关服务,网关服务将本次查询请求转发至HBase服务器进行数据查询。数据查询主要会经历两个阶段(第一阶段和第二阶段)。
第一阶段包括查询请求解析、查询计划生成、结果数据封装等,第一阶段主要通过RPC服务来进行,提供查询数据库前的准备和结果集整理等功能。第二阶段包括通过生成的查询计划扫描数据库,拿到查询结果的过程。其中,查询的两个阶段对应的查询代价为:
第一阶段:第一阶段中的查询代价主要为查询计划生成的代价,第一阶段主要消耗的资源为:RPC连接池、查询计划生成服务的中央处理器(Central Processing Unit,CPU)、内存等资源。其中,连接池是创建和管理一个连接的缓冲池的技术,这些连接准备好后,将会被任何需要它们的线程使用。第二阶段:第二阶段中的查询代价主要为数据库数据扫描、结果聚合的代价。第二阶段主要消耗数据库端的CPU、内存、输入/输出(Input/Output,IO)等资源。
可选地,第一阶段中生成查询计划的过程可以包括:
解析查询语句,生成查询语法树。
对查询语法树进行语义分析,生成语义分析树。
通过查询优化器对语义分析树进行优化,生成最优的查询计划。
其中,查询计划包括一系列的操作步骤,每个步骤对应一个算子操作,例如扫描表、过滤数据、排序等。查询计划的生成过程可以涉及到多个优化器,包括语法分析器、语义分析器、查询优化器等。执行计划决定了查询的查询数据行数,查询指标信息则是查询数据行数中的数据,查询指标信息所对应的查询指标的多少会影响聚合、排序性能。
可选地,第二阶段中通过查询计划从数据库得到查询结果的过程可以包括:
客户端调用HBase的应用程序编程接口(Application Programming Interface,API)向HBase服务器发送本次查询请求,本次查询请求中携带有查询指标信息、查询语句、日期、groupby、排序等信息。客户端发送的本次查询请求会被封装成一个RPC请求对象,并发送到统一的网关服务,网关服务将本次查询请求转发至HBase服务器。
HBase服务器接收到客户端的本次查询请求后,可以将本次查询请求解析成一个查询对象,该查询对象包括查询语句、过滤条件、扫描范围等信息。
查询对象会被传递给查询引擎,查询引擎根据查询对象生成查询计划。查询计划被编译成可执行的代码,并发送到HBaseRegionServer节点执行。其中,HBaseRegionServer节点是HBase服务器核心的组件,主要负责用户数据写入、读取等基础操作。
HBaseRegionServer节点执行查询计划,对数据进行扫描、过滤、排序等操作,最终生成查询结果。
在这个过程中,RPC协议起到了传输请求和响应数据的作用。客户端和服务器通过网络建立连接,通过序列化和反序列化等技术将数据封装成二进制格式,然后在网络上传输。RPC协议可以使用多种传输协议,例如,传输控制协议/网际协议(TransmissionControl Protocol/Internet Protocol,TCP/IP)、HTTP、用户数据报协议(User DatagramProtocol,UDP)等,具体使用哪种协议取决于应用程序的需求。
该实施例中,服务器可以获取基于查询计划查询数据库得到查询结果所经历的时间,得到本次查询时间,并基于本次查询时间获取数据库对应的目标查询数据行数。其中,目标查询数据行数为本次查询过程中查询数据库所得到的查询行数,或者为预设查询行数。该预设查询行数根据实际业务需求进行设置,在此不做具体限定。
需要说明的是,该查询结果的类型根据查询领域确定,在此不做具体限定。示例性地,在广告投放的报表查询领域,该查询结果的类型为数据报表。
S107.根据目标查询数据行数和查询指标信息进行资源消耗分析处理,得到本次查询请求所消耗的资源数量。
S109.获取与账号标识信息对应的剩余资源配额,基于剩余资源配额和本次查询请求所消耗的资源数量之间的资源差异信息,对客户端的查询频率进行控制;剩余资源配额为基于预设资源配额确定得到,预设资源配额为基于接收查询请求的服务器所消耗的中央处理器资源和内存资源确定得到。
该实施例中,针对第二阶段的频率控制,对于查询过程中产生的查询代价可以通过目标查询数据行数和查询指标信息确定得到,即服务器中的频率控制模块可以对目标查询数据行数和查询指标信息进行资源消耗分析处理,得到本次查询请求所消耗的资源数量。其中,资源消耗分析处理可以理解为查询代价确定的过程,本次查询请求所消耗的资源数量可以理解为本次查询的查询代价。
其中,以目标查询数据行数和查询指标信息为基础确定得到第二阶段的查询代价的理由如下:第一,在广告投放的报表查询领域,报表查询数据引擎主要为OLAP或者KV架构,不同类型的广告主关注的指标是不同的,每次查询的指标数量也是不同的,查询的指标数量对于查询的性能影响是很大的。第二,为了支持报表的翻页效果,所有的查询请求得到的查询结果都是需要排序的,排序的查询代价也是由查询数据行数来决定的。因此,以目标查询数据行数和查询指标信息为基础确定得到第二阶段的查询代价,能够提高第二阶段的查询代价的确定精度,从而提高查询频率控制的精度。其中,OLAP是一种软件,用于对来自数据仓库、数据集市的大量数据进行高速多维分析。KV指的是一种数据存储的设计模式,其中“KV”代表“键值”(Key-Value)。KV设计是将数据存储为键值对的形式,其中每个键都唯一标识一个值。
查询频率控制思想可以为在某个时间周期内,为客户端对应的账号赋予查询的配额(Quota)值,即预先为该账号标识信息对应的账号赋予预设资源配额,并根据该预设资源配额生成与账号标识信息对应的剩余资源配额。该Quota值可以指的是:为客户端对应的账号所分配的查询代价配额。可选地,该预设资源配额为基于接收查询请求的服务器所消耗的中央处理器资源和内存资源确定得到。例如,在广告投放的报表查询领域,可以根据满足现有的广告主报表查询服务等级协议(SLA)所需的CPU资源和内存资源计算该预设资源配额。其中,新增广告主的Quota值或者扩大Quota值需要增加对应的服务器资源。需要说明的是,某个时间周期可以根据实际业务需求进行设置,在此不做具体限定。例如,某个时间周期可以为单位时间、某个预设时间段等。
该实施例中,该剩余资源配额为基于预设资源配额和历史消耗资源数量之间的差值确定得到。其中,历史消耗资源数量为基于历史查询数据行数和客户端的历史查询请求中携带的历史查询指标信息确定得到,历史查询数据行数为基于历史查询时间获取得到,历史查询时间为基于历史查询计划查询数据库以得到历史查询结果所经历的时间,历史查询计划为与历史查询请求对应的查询计划。历史查询计划的生成过程与本次查询请求对应的查询计划的生成过程类似,具体请参见上述步骤S103,在此不做赘述。历史查询数据行数的获取过程与目标查询数据行数的获取过程类似,具体请参见上述步骤S105,在此不做赘述。在计算得到账号标识信息对应的剩余资源配额之后,即可根据该剩余资源配额对客户端的查询频率进行控制。例如,频率控制模块根据广告主本次查询请求所消耗的资源数量,从预设资源配额中扣除相应的Quota值,即扣除本次查询请求所消耗的资源数量,在本周期内Quota值使用完时,开始拒绝下一次查询请求,直到下个周期恢复后才能继续查询。
需要说明的是,不同的客户端对应的账号(例如,不同的广告主)可以具有相同的Quota值,即具有相同的预设资源配额,由此报表查询服务器能够更加公平地为广告主提供查询服务,从而提高查询频率控制的精度和可靠性,进而提高客户端对应的账号的数据查询体验和数据查询效率。
本申请实施例通过接收客户端发送的本次查询请求,本次查询请求中携带有客户端的账号标识信息和查询指标信息;生成本次查询请求对应的查询计划;基于查询计划查询数据库,并基于本次查询时间获取数据库对应的目标查询数据行数;根据目标查询数据行数和查询指标信息进行资源消耗分析处理,得到本次查询请求所消耗的资源数量;获取与账号标识信息对应的剩余资源配额,基于剩余资源配额和本次查询请求所消耗的资源数量之间的资源差异信息,对客户端的查询频率进行控制,一方面实现了将本次查询请求对应的本次查询时间、目标查询数据行数、查询指标信息核算为本次查询请求所消耗的资源数量,即核算为查询代价,使用查询代价对客户端的查询频率进行控制,提升了查询频率控制的效率和精度,从而提升了数据查询体验和数据查询效率,另一方面降低了服务器、存储、带宽等资源在数据查询过程中的消耗,使得系统资源的消耗在查询过程更加合理,另一方面提高了计算服务器、存储、带宽等资源的消耗成本的便捷性和准确性。
图4是根据一示例性实施例示出的一种数据查询方法的流程示意图二,如图4所示,在一个可选的实施例中,在上述步骤S103中,上述生成本次查询请求对应的查询计划,可以包括:
S1031.从预设全局存储中获取与账号标识信息对应的查询并发数。
S1033.在查询并发数小于预设并发数阈值的情况下,将预设全局存储中的查询并发数加1,并生成本次查询请求对应的查询计划。
针对第一阶段的频率控制,当一个查询进行时,连接池、CPU、内存等资源会被占用,查询结束后才释放,所以可以通过限制查询并发数的方式来进行查询频率控制。在广告投放的报表查询领域,由于服务器对应的系统采用的是分布式系统,可以引入一个预设全局存储来存储客户端的查询并发数。可选地,该预设全局存储可以包括但不限于:关系型数据库管理系统(mysql)、远程字典服务(Remote Dictionary Server,Redis)、HBase等。
在其他实施方式中,若服务器对应的系统为非分布式系统,也可以采用系统内存来存储查询并发数。
图5是根据一示例性实施例示出的一种控制查询并发数的流程示意图,如图5所示,在上述步骤S1031-S1033中,服务器中的频率控制模块解析账号标识信息,从预设全局存储中获取与账号标识信息对应的当前的查询并发数,判断当前的查询并发数是否大于或等于预设并发数阈值,在确定该当前的查询并发数小于预设并发数阈值的情况下,第一阶段的频率控制为:将预设全局存储中的查询并发数加1,并生成本次查询请求对应的查询计划,以根据该查询计划查询数据库得到查询结果。例如,预设全局存储中存储的当前的查询并发数为5,预设并发数阈值为10,此时当前的查询并发数小于预设并发数阈值,则将预设全局存储中存储的当前的查询并发数加1,使得预设全局存储中存储的当前的查询并发数更新为6,同时根据该查询计划查询数据库得到查询结果。
需要说明的是,该预设并发数阈值可以根据实际需求进行设置,在此不做具体限定。
在一个可选的实施例中,上述方法还可以包括:
在查询并发数大于或等于预设并发数阈值的情况下,拒绝执行生成本次查询请求对应的查询计划的操作。
该实施例中,继续如图5所示,在确定该当前的查询并发数大于或等于预设并发数阈值的情况下,第一阶段的频率控制为:直接拒绝本次查询请求,不进入第一阶段的查询。例如,预设全局存储中存储的当前的查询并发数为15,预设并发数阈值为10,此时当前的查询并发数大于预设并发数阈值,则直接拒绝本次查询请求,不进入第一阶段的查询。
由此,能够通过限制查询并发数的方式来进行查询频率控制,减少第一阶段的查询对连接池、CPU、内存等资源的占用情况,使得系统资源的消耗在查询过程更加合理,从而提高查询频率控制的精度和效率,进而提高数据查询体验和数据查询效率。
在一个可选的实施例中,上述方法还可以包括:
在确定本次查询时间小于预设时间阈值的情况下,发送查询结果至客户端,并将预设全局存储中的查询并发数减1。
该实施例中,在确定本次查询时间小于预设时间阈值的情况下,可以确定本次查询请求为符合第一阶段的频率控制要求的查询请求,对于符合第一阶段的频率控制要求的查询请求,可以将查询结果发送至客户端,由于能够将查询结果发送至客户端,则本次查询过程可以结束,相应地可以将预设全局存储中的查询并发数减1,以便预留出查询并发数供其他查询请求进行查询,进一步减少第一阶段的查询对连接池、CPU、内存等资源的占用情况,进一步使得系统资源的消耗在查询过程中更加合理,从而提升了查询频率控制的效率和精度,进而提升了数据查询体验和数据查询效率。
在一个可选的实施例中,在上述步骤S105中,上述基于本次查询时间获取数据库对应的目标查询数据行数,可以包括:
在确定本次查询时间小于预设时间阈值的情况下,获取基于查询计划查询数据库所得到目标查询数据行数。
图6是根据一示例性实施例示出的一种生成本次查询请求所消耗的资源数量的流程示意图,如图6所示,服务器可以解析账号标识信息,判断本次查询时间是否小于预设时间阈值,在确定本次查询时间小于预设时间阈值的情况下,可以确定本次查询请求为符合第一阶段的频率控制要求的查询请求,则在基于查询计划查询数据库的第二阶段,可以记录本次查询的查询数据行数,得到目标查询数据行数。
在一种实施方式中,可以通过Phoenix中的getHBaseRowCount方法来获取基于查询计划查询数据库所得到的查询数据行数。具体可以为:
创建HBaseRowCountIterator接口,PhoenixResultSet要求实现这个接口,记录每次查询操作的查询数据行数,并写入scanMetricsHolder,getResultSet阶段把scanMetricsHolder中的指标数据(Metrics)汇总过来,得到目标查询数据行数。其中,Phoenix是一款高性能、事件驱动型的微服务框架。getHBaseRowCount方法指的是获取HBase统计表行数的方法。该HBaseRowCountIterator接口指的是HBase统计表行数迭代器接口。PhoenixResultSet指的是Phoenix中的数据库结果集的数据表。scanMetricsHolder指的是扫描指标器。getResultSet指的是获取数据库结果集的数据表。
在另一种实施方式中,还可以通过修改数据库引擎来获取目标查询数据行数。即使用其他数据库,例如mysql、clickhouse等,按照上述getHBaseRowCount方法修改其他数据库的引擎,以获取目标查询数据行数。其中,clickhouse指的是一个数据库管理系统,它允许在运行时创建表和数据库、加载数据和运行查询,而无需重新配置或重启服务。
需要说明的是,该预设时间阈值可以根据实际业务需求进行设置,在此不做具体限定。例如,该预设时间阈值为10s。
该实施例中,在确定本次查询时间小于预设时间阈值的情况下,可以确定本次查询请求为符合第一阶段的频率控制要求的查询请求,对于符合第一阶段的频率控制要求的查询请求,可以直接将基于查询计划查询数据库所得到的查询数据行数,作为目标查询数据行数,提高了目标查询数据行数的获取精度和获取效率,从而提高了本次查询请求所消耗的资源数量的确定效率和确定精度,进而提高了对客户端的查询频率进行控制的效率和精度。
在一个可选的实施例中,在上述步骤S105中,上述基于本次查询时间获取数据库对应的目标查询数据行数,还可以包括:
在确定本次查询时间大于或等于预设时间阈值的情况下,获取超时查询数据行数;超时查询数据行数为服务器在预设负载下的第一预设时间段内查询数据库所得到的数据行数。
确定超时查询数据行数为目标查询数据行数。
需要说明的是,并非所有的查询请求都能够按时返回查询结果,在判断本次查询时间大于或等于预设时间阈值的情况下,确定本次查询请求没有按时返回查询结果,则服务器可以将本次查询请求确定为超时查询请求,超时查询请求是无效的请求,其是获取不到数据库的查询数据行数的,且其往往会对服务器造成较大的资源压力。基于此,可以获取预先设置的超时查询数据行数,将该超时查询数据行数作为目标查询数据行数,并使用超时查询数据行数来计算本次查询请求的查询代价。
可选地,该超时查询数据行数为服务器在预设负载下的第一预设时间段内查询数据库所得到的数据行数,并使用超时查询数据行数来计算本次查询请求的查询代价。需要说明的是,该预设负载和第一预设时间段可以根据实际业务需求进行设置,在此不做具体限定。示例性地,该预设负载可以为50%,该第一预设时间段可以为10s,即将服务器在负载50%的情况下,在10s内查询数据库所得到的查询数据行数作为超时查询数据行数,通过超时查询数据行数来估算出超时查询对服务器的资源压力影响。示例性地,该预设负载可以包括但不限于:CPU负载、内存负载等。
该实施例中,由于超时查询请求获取不到数据库的查询数据行数,可以将服务器在预设负载下的第一预设时间段内查询数据库所得到的数据行数作为超时查询数据行数,并使用超时查询数据行数来计算本次查询请求的查询代价,由于服务器在预设负载下的第一预设时间段内查询数据库所得到的数据行数,能够在很大程度上反应服务器所能够承担的资源压力,因此,将服务器在预设负载下的第一预设时间段内查询数据库所得到的数据行数作为超时查询数据行数,提高了目标查询数据行数的获取精度和获取效率,从而提高了本次查询请求所消耗的资源数量的确定效率和确定精度,进而提高了对客户端的查询频率进行控制的精度。此外,将服务器在预设负载下的第一预设时间段内查询数据库所得到的数据行数作为超时查询数据行数,以计算查询代价,降低了超时查询给服务器所带来的资源压力,减少了对查询计划生成服务、连接池等资源的消耗。
在一个可选的实施例中,上述方法还可以包括:
在确定本次查询时间大于或等于预设时间阈值的情况下,发送查询超时信息至客户端。
该实施例中,在确定本次查询时间大于或等于预设时间阈值的情况下,确定本次查询请求没有按时返回查询结果,服务器可以主动停止本次查询,并返回查询超时信息给客户端,以告知客户端本次查询请求出现超时异常,从而进一步提高数据查询体验。
在一个可选的实施例中,中央处理器资源可以包括中央处理器的负载资源,内存资源可以包括内存的负载资源。则在上述步骤S109中,上述获取与账号标识信息对应的剩余资源配额,可以包括:
从预设全局存储中获取与账号标识信息对应的剩余资源配额;
其中,剩余资源配额为基于预设资源配额和历史消耗资源数量之间的差值确定得到;预设资源配额为在服务器所需的中央处理器的负载资源为第一预设负载、且内存的负载资源为第二预设负载的情况下,基于查询请求次数、平均查询数据行数、平均指标数量和客户端数量确定得到;查询请求次数为服务器在第二预设时间段内所接收到的查询请求的次数;平均查询数据行数为服务器在第二预设时间段内基于每次接收到的查询请求,查询数据库所得到的查询数据行数的均值;平均指标数量为每次接收到的查询请求中携带的查询指标信息所对应的指标数量的均值;客户端数量为在第二预设时间段内,向服务器发送查询请求的客户端的数量。
该实施例中,可以预先在预设全局存储中存储与各个客户端的账号标识信息对应的剩余资源配额。并从该预设全局存储中获取与本次查询请求中携带的账号标识信息对应的剩余资源配额。继续如图6所示,在获取得到剩余资源配额之后,为了提高查询频率控制的精度,服务器可以首先判断剩余资源配额是否为0,若是,则直接结束查询流程,若否,执行判断本次查询时间是否小于预设时间阈值,以确定本次查询请求所消耗的资源数量的操作。
其中,剩余资源配额为基于预设资源配额和历史消耗资源数量之间的差值确定得到,即客户端的每一次查询均会消耗对应的历史消耗资源数量,从预设资源配额中扣除每一次查询所消耗的历史消耗资源数量,得到当前剩余的剩余资源配额。
可选地,预设资源配额为在服务器所需的中央处理器的负载资源为第一预设负载、且内存的负载资源为第二预设负载的情况下,基于查询请求次数、平均查询数据行数、平均指标数量和客户端数量确定得到。示例性地,该预设资源配额=查询请求次数×平均查询数据行数×平均指标数量/客户数量。
需要说明的是,该第一预设负载、第二预设负载、第二预设时间段均可以根据实际业务需求设置,在此不做具体限定。例如,该第一预设负载可以为60%,该第二预设负载可以为50%,该第二预设时间段可以为1小时等。
在一种实施方式中,查询请求次数为服务器在第二预设时间段内所接收到的查询请求的次数;平均查询数据行数为服务器基于第二预设时间段内每次接收到的查询请求,查询数据库所得到的查询数据行数的均值;平均指标数量为第二预设时间段内每次接收到的查询请求中携带的查询指标信息所对应的指标数量的均值;客户端数量为在第二预设时间段内,向服务器发送查询请求的客户端的数量。
例如,服务器在第二预设时间段内所接收到的查询请求的次数为3次,分别为第一次查询请求、第二次查询请求和第三次查询请求。第一次查询请求、第二次查询请求和第三次查询请求查询数据库所得到的查询数据行数分别为查询数据行数1、查询数据行数2和查询数据行数3,则平均查询数据行数为查询数据行数1、查询数据行数2和查询数据行数3的均值。第一次查询请求、第二次查询请求查询和第三次查询请求中各自携带的查询指标信息所对应的指标数量分别为指标数量1、指标数量2和指标数量3,则平均指标数量为指标数量1、指标数量2和指标数量3的均值。该第二预设时间段内,向服务器发送查询请求的客户端的数量为3个,则预设资源配额=3×(查询数据行数1、查询数据行数2和查询数据行数3的均值)×(指标数量1、指标数量2和指标数量3的均值)/3。
在另一种实施方式中,该平均查询数据行数还可以指的是:平均查询数据行数为服务器基于第二预设时间段内每次接收到的查询请求,查询数据库所得到的查询数据行数的加权平均值。该平均指标数量还可以指的是:第二预设时间段内每次接收到的查询请求中携带的查询指标信息所对应的指标数量的加权平均值。
由于服务器采用的是分布式系统,通过预设全局存储剩余资源配额,并从预设全局存储中获取与账号标识信息对应的剩余资源配额,能够提高剩余资源配额的存储和获取的效率,从而提高数据查询的便捷性和效率;此外,在服务器所需的中央处理器的负载资源为第一预设负载、且内存的负载资源为第二预设负载的情况下,基于查询请求次数、平均查询数据行数、平均指标数量和客户端数量确定预设资源配额,使得预设资源配额的确定能够充分考虑查询请求、查询数据行数、指标数量和客户端数量的影响,从而使得预设资源配额的确定更加符合实际业务需求,能够适用于各个客户端对应的账号,进而提升了查询频率控制的准确率以及客户端的查询体验。
在一个可选的实施例中,在上述步骤S107中,上述根据目标查询数据行数和查询指标信息进行资源消耗分析处理,得到本次查询请求所消耗的资源数量,可以包括:
确定查询指标信息对应的指标数量与目标查询数据行数的乘积,得到本次查询请求所消耗的资源数量。
该实施例中,可以将查询指标信息对应的指标数量与目标查询数据行数的乘积,作为本次查询请求所消耗的资源数量,即本次查询请求所消耗的资源数量=目标查询数据行数×查询指标信息对应的指标数量。由于不同类型的广告主关注的指标不同,每次查询的指标数量也不同,查询的指标数量对于查询的性能影响是很大的,查询结果排序的查询代价也是由查询数据行数来决定的,因此以目标查询数据行数与查询指标信息对应的指标数量的乘积为基础确定本次查询请求所消耗的资源数量,能够准描述本次查询代价,提高本次查询代价的确定精度,从而提高查询频率控制的精度,进而降低查询过程对系统资源的消耗。
在其他实施方式中,还可以评估目标查询数据行数和查询指标信息对应的指标数量分别对资源消耗的贡献度,并根据该贡献度,计算目标查询数据行数对应的资源贡献权重1,以及查询指标信息对应的指标数量的资源贡献权重2,则本次查询请求所消耗的资源数量=(资源贡献权重1×目标查询数据行数)×(资源贡献权重2×查询指标信息对应的指标数量)。
在一个可选的实施例中,继续如图4所示,在上述步骤S109中,上述获取与账号标识信息对应的剩余资源配额,基于剩余资源配额和本次查询请求所消耗的资源数量之间的资源差异信息,对客户端的查询频率进行控制,可以包括:
S1091.确定剩余资源配额和本次查询请求所消耗的资源数量之间的差值,得到资源差异信息。
S1093.在资源差异信息大于0的情况下,接收述客户端发送的下一次查询请求,并基于下一次查询请求查询数据库。
S1095.在资源差异信息小于或等于0的情况下,拒绝客户端发送的下一次查询请求。
该实施例中,在确定得到剩余资源配额和本次查询请求所消耗的资源数量之后,可以计算二者的差值,得到资源差异信息。在该资源差异信息大于0的情况下,表明客户端本周期内Quota值未使用完,则第二阶段的查询频率控制策略可以为:接收述客户端发送的下一次查询请求,并基于下一次查询请求查询数据库。在资源差异信息小于或等于0的情况下,表明客户端本周期内Quota值已经使用完,则第二阶段的查询频率控制策略可以为:拒绝客户端发送的下一次查询请求,直到下个周期恢复后才能继续查询报表服务。
由此,实现了使用查询代价对客户端的查询频率进行控制,即使用查询代价进行多策略的查询频率控制,提高了查询频率控制的效率、精度以及多样性,从而提高了数据查询体验和数据查询效率;同时降低了对服务器、存储、带宽等资源的消耗,提高了计算服务器、存储、带宽等资源的消耗成本的便捷性和准确性,从而可以有效控制广告投放管理平台的使用情况。其中,“多策略”指的是资源差异信息大于0,或者小于或等于0的情况下,可以采用不同的查询频率控制策略。
本申请实施例可以应用于各种提供数据分析、BI能力的产品当中,例如,广告投放系统的投放报表、广告诊断分析的诊断报表等。其中,BI是指商业智能,是从数据中有效地提取信息,从信息中及时的发现知识,从而为决策提供支持的一种技术。
例如,可以提供一个广告投放管理平台,广告运营商可以通过投放管理平台对投放的广告进行管理,以及查询广告投放情况。图7是根据一示例性实施例示出的一种广告管理平台示意图,图8是根据一示例性实施例示出的一种数据报表示意图。如图7所示,客户端对应的账号可以在广告管理平台中选取查询数据、查询时间维度、查询指标等信息,客户端响应于该选取操作向服务器发送数据查询请求,该数据查询请求中携带有客户端对应的账号所选取的信息,服务器基于接收到的查询请求,按照上述步骤S101-S109的方式进行查询,得到如图8所示的数据报表。其中,图7中的“xx”指的是客户端对应的账号在广告管理平台中选取的各种数据,图8中的“xx”指的是数据报表中的各种数据。
图9是根据一示例性实施例示出的一种数据查询装置的框图,如图9所示,该数据查询装置包括:
本次查询请求接收模块201,用于接收客户端发送的本次查询请求;所述本次查询请求中携带有查询指标信息和账号标识信息,所述账号标识信息为所述客户端对应的账号的标识信息;
查询计划生成模块203,用于生成所述本次查询请求对应的查询计划;
查询模块205,用于基于所述查询计划查询数据库,并基于本次查询时间获取所述数据库对应的目标查询数据行数;所述本次查询时间为基于所述查询计划查询所述数据库以得到查询结果所经历的时间;
消耗分析模块207,用于根据所述目标查询数据行数和所述查询指标信息进行资源消耗分析处理,得到所述本次查询请求所消耗的资源数量;
频率控制模块209,用于获取与所述账号标识信息对应的剩余资源配额,基于所述剩余资源配额和所述本次查询请求所消耗的资源数量之间的资源差异信息,对所述客户端的查询频率进行控制;所述剩余资源配额为基于预设资源配额确定得到,所述预设资源配额为基于接收查询请求的服务器所消耗的中央处理器资源和内存资源确定得到。
在一个可选的实施例中,所述查询模块,包括:
第一查询数据行数获取单元,用于在确定所述本次查询时间小于预设时间阈值的情况下,获取基于所述查询计划查询所述数据库所得到的目标查询数据行数。
在一个可选的实施例中,所述查询模块,包括:
第二查询数据行数获取单元,用于在确定所述本次查询时间大于或等于预设时间阈值的情况下,获取超时查询数据行数;所述超时查询数据行数为所述服务器在预设负载下的第一预设时间段内查询所述数据库所得到的数据行数;
查询数据行数确定单元,用于确定所述超时查询数据行数为所述目标查询数据行数。
在一个可选的实施例中,所述查询计划生成模块,包括:
查询并发数获取单元,用于从预设全局存储中获取与所述账号标识信息对应的查询并发数;
生成单元,用于在所述查询并发数小于预设并发数阈值的情况下,将所述预设全局存储中的查询并发数加1,并生成所述本次查询请求对应的查询计划。
在一个可选的实施例中,所述装置还包括:
查询结果发送模块,用于在确定所述本次查询时间小于预设时间阈值的情况下,发送所述查询结果至所述客户端,并将所述预设全局存储中的查询并发数减1。
在一个可选的实施例中,所述装置还包括:
拒绝执行模块,用于在所述查询并发数大于或等于所述预设并发数阈值的情况下,拒绝执行生成所述本次查询请求对应的查询计划的操作。
在一个可选的实施例中,所述频率控制模块,包括:
剩余资源配额获取单元,用于从预设全局存储中获取与所述账号标识信息对应的剩余资源配额;
其中,所述剩余资源配额为基于预设资源配额和历史消耗资源数量之间的差值确定得到;所述预设资源配额为在所述服务器所需的中央处理器的负载资源为第一预设负载、且内存的负载资源为第二预设负载的情况下,基于查询请求次数、平均查询数据行数、平均指标数量和客户端数量确定得到;所述查询请求次数为所述服务器在第二预设时间段内所接收到的查询请求的次数;所述平均查询数据行数为所述服务器在第二预设时间段内基于每次接收到的查询请求,查询所述数据库所得到的查询数据行数的均值;所述平均指标数量为每次接收到的查询请求中携带的查询指标信息所对应的指标数量的均值;所述客户端数量为在所述第二预设时间段内,向所述服务器发送查询请求的客户端的数量;
所述历史消耗资源数量为基于历史查询数据行数和所述客户端的历史查询请求中携带的历史查询指标信息确定得到,所述历史查询数据行数为基于历史查询时间获取得到,所述历史查询时间为基于历史查询计划查询所述数据库以得到历史查询结果所经历的时间,所述历史查询计划为与所述历史查询请求对应的查询计划。
在一个可选的实施例中,所述消耗分析模块,用于确定所述查询指标信息对应的指标数量与所述目标查询数据行数的乘积,得到所述本次查询请求所消耗的资源数量。
在一个可选的实施例中,所述频率控制模块,还包括:
差值确定单元,用于确定所述剩余资源配额和所述本次查询请求所消耗的资源数量之间的差值,得到所述资源差异信息;
查询请求接收单元,用于在所述资源差异信息大于0的情况下,接收所述客户端发送的下一次查询请求,并基于所述下一次查询请求查询所述数据库;
查询请求拒绝单元,用于在所述资源差异信息小于或等于0的情况下,拒绝所述客户端发送的下一次查询请求。
在一个可选的实施例中,所述装置还包括:
查询超时信息发送单元,用于在确定所述本次查询时间大于或等于预设时间阈值的情况下,发送查询超时信息至所述客户端。
需要说明的是,本申请实施例提供的装置实施例与上述方法实施例基于相同的发明构思。
本申请实施例还提供了一种数据查询的电子设备,该电子设备包括处理器和存储器,存储器中存储有至少一条指令或至少一段程序,至少一条指令或至少一段程序由处理器加载并执行以实现如上述任一实施例提供的数据查询方法。
本申请的实施例还提供了一种计算机可读存储介质,该计算机可读存储介质可设置于终端之中以保存用于实现方法实施例中一种数据查询方法的至少一条指令或至少一段程序,至少一条指令或至少一段程序由处理器加载并执行以实现如上述方法实施例提供的数据查询方法。
可选地,在本说明书实施例中,存储介质可以位于计算机网络的多个网络服务器中的至少一个网络服务器。可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
本说明书实施例存储器可用于存储软件程序以及模块,处理器通过运行存储在存储器的软件程序以及模块,从而执行各种功能应用程序以及数据处理。存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、功能所需的应用程序等;存储数据区可存储根据设备的使用所创建的数据等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器还可以包括存储器控制器,以提供处理器对存储器的访问。
本申请实施例还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述方法实施例提供的数据查询方法。
本申请实施例所提供的数据查询方法的实施例可以在终端、服务器或者类似的运算装置中执行。以运行在服务器上为例,图10是根据一示例性实施例提供的一种服务器的硬件结构框图。如图10所示,该服务器300可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(Central Processing Units,CPU)310(中央处理器310可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器330,一个或一个以上存储应用程序323或数据322的存储介质320(例如一个或一个以上海量存储设备)。其中,存储器330和存储介质320可以是短暂存储或持久存储。存储在存储介质320的程序可以包括一个或一个以上模块,每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器310可以设置为与存储介质320通信,在服务器300上执行存储介质320中的一系列指令操作。服务器300还可以包括一个或一个以上电源360,一个或一个以上有线或无线网络接口350,一个或一个以上输入输出接口340,和/或,一个或一个以上操作系统321,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。
输入输出接口340可以用于经由一个网络接收或者发送数据。上述的网络具体实例可包括服务器300的通信供应商提供的无线网络。在一个实例中,输入输出接口340包括一个网络适配器(Network Interface Controller,NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,输入输出接口340可以为射频(RadioFrequency,RF)模块,其用于通过无线方式与互联网进行通讯。
本领域普通技术人员可以理解,图10所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,服务器300还可包括比图10中所示更多或者更少的组件,或者具有与图10所示不同的配置。
需要说明的是:上述本申请实施例先后顺序仅仅为了描述,不代表实施例的优劣。且上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置和服务器实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上仅为本申请的较佳实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (12)
1.一种数据查询方法,其特征在于,所述方法包括:
接收客户端发送的本次查询请求;所述本次查询请求中携带有查询指标信息和账号标识信息,所述账号标识信息为所述客户端对应的账号的标识信息;
生成所述本次查询请求对应的查询计划;
基于所述查询计划查询数据库,并基于本次查询时间获取所述数据库对应的目标查询数据行数;所述本次查询时间为基于所述查询计划查询所述数据库以得到查询结果所经历的时间;
根据所述目标查询数据行数和所述查询指标信息进行资源消耗分析处理,得到所述本次查询请求所消耗的资源数量;
获取与所述账号标识信息对应的剩余资源配额,基于所述剩余资源配额和所述本次查询请求所消耗的资源数量之间的资源差异信息,对所述客户端的查询频率进行控制;所述剩余资源配额为基于预设资源配额确定得到,所述预设资源配额为基于接收查询请求的服务器所消耗的中央处理器资源和内存资源确定得到。
2.根据权利要求1所述的数据查询方法,其特征在于,所述基于本次查询时间获取所述数据库对应的目标查询数据行数,包括:
在确定所述本次查询时间小于预设时间阈值的情况下,获取基于所述查询计划查询所述数据库所得到的目标查询数据行数。
3.根据权利要求1所述的数据查询方法,其特征在于,所述基于本次查询时间获取所述数据库对应的目标查询数据行数,包括:
在确定所述本次查询时间大于或等于预设时间阈值的情况下,获取超时查询数据行数;所述超时查询数据行数为所述服务器在预设负载下的第一预设时间段内查询所述数据库所得到的数据行数;
确定所述超时查询数据行数为所述目标查询数据行数。
4.根据权利要求1至3中任一项所述的数据查询方法,其特征在于,所述生成所述本次查询请求对应的查询计划,包括:
从预设全局存储中获取与所述账号标识信息对应的查询并发数;
在所述查询并发数小于预设并发数阈值的情况下,将所述预设全局存储中的查询并发数加1,并生成所述本次查询请求对应的查询计划。
5.根据权利要求4所述的数据查询方法,其特征在于,所述方法还包括:
在确定所述本次查询时间小于预设时间阈值的情况下,发送所述查询结果至所述客户端,并将所述预设全局存储中的查询并发数减1。
6.根据权利要求4所述的数据查询方法,其特征在于,所述获取与所述账号标识信息对应的剩余资源配额,包括:
从预设全局存储中获取与所述账号标识信息对应的剩余资源配额;
其中,所述剩余资源配额为基于预设资源配额和历史消耗资源数量之间的差值确定得到;所述预设资源配额为在所述服务器所需的中央处理器的负载资源为第一预设负载、且内存的负载资源为第二预设负载的情况下,基于查询请求次数、平均查询数据行数、平均指标数量和客户端数量确定得到;所述查询请求次数为所述服务器在第二预设时间段内所接收到的查询请求的次数;所述平均查询数据行数为所述服务器在所述第二预设时间段内基于每次接收到的查询请求,查询所述数据库所得到的查询数据行数的均值;所述平均指标数量为每次接收到的查询请求中携带的查询指标信息所对应的指标数量的均值;所述客户端数量为在所述第二预设时间段内,向所述服务器发送查询请求的客户端的数量;
所述历史消耗资源数量为基于历史查询数据行数和所述客户端的历史查询请求中携带的历史查询指标信息确定得到,所述历史查询数据行数为基于历史查询时间获取得到,所述历史查询时间为基于历史查询计划查询所述数据库以得到历史查询结果所经历的时间,所述历史查询计划为与所述历史查询请求对应的查询计划。
7.根据权利要求4所述的数据查询方法,其特征在于,所述根据所述目标查询数据行数和所述查询指标信息进行资源消耗分析处理,得到所述本次查询请求所消耗的资源数量,包括:
确定所述查询指标信息对应的指标数量与所述目标查询数据行数的乘积,得到所述本次查询请求所消耗的资源数量。
8.根据权利要求4所述的数据查询方法,其特征在于,所述基于所述剩余资源配额和所述本次查询请求所消耗的资源数量之间的资源差异信息,对所述客户端的查询频率进行控制,包括:
确定所述剩余资源配额和所述本次查询请求所消耗的资源数量之间的差值,得到所述资源差异信息;
在所述资源差异信息大于0的情况下,接收所述客户端发送的下一次查询请求,并基于所述下一次查询请求查询所述数据库;
在所述资源差异信息小于或等于0的情况下,拒绝所述客户端发送的下一次查询请求。
9.根据权利要求4所述的数据查询方法,其特征在于,所述方法还包括:
在确定所述本次查询时间大于或等于预设时间阈值的情况下,发送查询超时信息至所述客户端。
10.一种数据查询装置,其特征在于,所述装置包括:
本次查询请求接收模块,用于接收客户端发送的本次查询请求;所述本次查询请求中携带有查询指标信息和账号标识信息,所述账号标识信息为所述客户端对应的账号的标识信息;
查询计划生成模块,用于生成所述本次查询请求对应的查询计划;
查询模块,用于基于所述查询计划查询数据库,并基于本次查询时间获取所述数据库对应的目标查询数据行数;所述本次查询时间为基于所述查询计划查询所述数据库以得到查询结果所经历的时间;
消耗分析模块,用于根据所述目标查询数据行数和所述查询指标信息进行资源消耗分析处理,得到所述本次查询请求所消耗的资源数量;
频率控制模块,用于获取与所述账号标识信息对应的剩余资源配额,基于所述剩余资源配额和所述本次查询请求所消耗的资源数量之间的资源差异信息,对所述客户端的查询频率进行控制;所述剩余资源配额为基于预设资源配额确定得到,所述预设资源配额为基于接收查询请求的服务器所消耗的中央处理器资源和内存资源确定得到。
11.一种数据查询的电子设备,其特征在于,所述电子设备包括处理器和存储器,所述存储器中存储有至少一条指令或至少一段程序,所述至少一条指令或所述至少一段程序由所述处理器加载并执行如权利要求1至9中任一项所述的数据查询方法。
12.一种计算机可读存储介质,其特征在于,所述存储介质中存储有至少一条指令或至少一段程序,所述至少一条指令或至少一段程序由处理器加载并执行以实现如权利要求1至9中任一项所述的数据查询方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310956886.6A CN116662376B (zh) | 2023-08-01 | 2023-08-01 | 数据查询方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310956886.6A CN116662376B (zh) | 2023-08-01 | 2023-08-01 | 数据查询方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116662376A true CN116662376A (zh) | 2023-08-29 |
CN116662376B CN116662376B (zh) | 2024-02-13 |
Family
ID=87722835
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310956886.6A Active CN116662376B (zh) | 2023-08-01 | 2023-08-01 | 数据查询方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116662376B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117931847A (zh) * | 2024-03-22 | 2024-04-26 | 恒生电子股份有限公司 | 数据处理系统及方法 |
CN118093616A (zh) * | 2024-04-23 | 2024-05-28 | 深圳市奇迅新游科技股份有限公司 | 数据处理方法、终端设备及计算机可读存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050234900A1 (en) * | 2004-04-14 | 2005-10-20 | International Business Machines Corporation | Query workload statistics collection in a database management system |
CN111222157A (zh) * | 2019-10-30 | 2020-06-02 | 支付宝(杭州)信息技术有限公司 | 区块链隐私数据的查询方法及装置 |
CN114564499A (zh) * | 2022-02-09 | 2022-05-31 | 华南理工大学 | 一种轻量级的金融数据查询、量化策略开发和回测方法及装置 |
WO2023029752A1 (zh) * | 2021-08-31 | 2023-03-09 | 深圳市兆珑科技有限公司 | 数据查询方法、装置、服务器及计算机可读存储介质 |
CN116467336A (zh) * | 2023-04-07 | 2023-07-21 | 苏州浪潮智能科技有限公司 | 数据处理方法及装置、电子设备、存储介质 |
-
2023
- 2023-08-01 CN CN202310956886.6A patent/CN116662376B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050234900A1 (en) * | 2004-04-14 | 2005-10-20 | International Business Machines Corporation | Query workload statistics collection in a database management system |
CN111222157A (zh) * | 2019-10-30 | 2020-06-02 | 支付宝(杭州)信息技术有限公司 | 区块链隐私数据的查询方法及装置 |
WO2023029752A1 (zh) * | 2021-08-31 | 2023-03-09 | 深圳市兆珑科技有限公司 | 数据查询方法、装置、服务器及计算机可读存储介质 |
CN114564499A (zh) * | 2022-02-09 | 2022-05-31 | 华南理工大学 | 一种轻量级的金融数据查询、量化策略开发和回测方法及装置 |
CN116467336A (zh) * | 2023-04-07 | 2023-07-21 | 苏州浪潮智能科技有限公司 | 数据处理方法及装置、电子设备、存储介质 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117931847A (zh) * | 2024-03-22 | 2024-04-26 | 恒生电子股份有限公司 | 数据处理系统及方法 |
CN118093616A (zh) * | 2024-04-23 | 2024-05-28 | 深圳市奇迅新游科技股份有限公司 | 数据处理方法、终端设备及计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN116662376B (zh) | 2024-02-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN116662376B (zh) | 数据查询方法、装置、电子设备及存储介质 | |
CN109656963B (zh) | 元数据获取方法、装置、设备及计算机可读存储介质 | |
CN102300011B (zh) | 在无队列呼叫中心中用于填充及维护数据结构的自动机制 | |
CN102300009A (zh) | 用于无队列呼叫中心的视图及衡量标准 | |
CN108509523A (zh) | 区块链数据的结构化处理方法、设备及可读存储介质 | |
CN101694665A (zh) | 一种异构数据源数据查询方法及装置 | |
CN102223453A (zh) | 高性能无队列呼叫中心 | |
CN106155812A (zh) | 一种对虚拟主机的资源管理的方法、装置、系统及电子设备 | |
CN107528761A (zh) | 一种微信公众号自动回复信息的方法和系统 | |
CN110781180B (zh) | 一种数据筛选方法和数据筛选装置 | |
CN110955674B (zh) | 基于java服务的异步导出方法及组件 | |
CN113590433B (zh) | 数据管理方法、数据管理系统和计算机可读存储介质 | |
US11620284B2 (en) | Backend data aggregation system and method | |
CN110188258B (zh) | 使用爬虫获取外部数据的方法及装置 | |
CN116700929A (zh) | 基于人工智能的任务批量处理方法及系统 | |
CN112100260A (zh) | 一种基于接口引擎的多应用数据融合的方法及系统 | |
CN102013066B (zh) | 电子交易服务平台 | |
CN115827646A (zh) | 索引配置方法、装置和电子设备 | |
CN114265866A (zh) | 流式数据处理方法、规则插件、流式数据处理模块及系统 | |
CN108243348B (zh) | 一种流处理请求分配服务器 | |
CN115277835A (zh) | 信息推送方法、装置、存储介质及电子设备 | |
CN110909072A (zh) | 一种数据表建立方法、装置及设备 | |
US20230049322A1 (en) | Information processing method, device, system, and computer-readable storage medium | |
CN114168595A (zh) | 一种数据分析方法及装置 | |
CN113297358A (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 |