CN114880368A - 数据查询方法、装置、电子设备及可读存储介质 - Google Patents
数据查询方法、装置、电子设备及可读存储介质 Download PDFInfo
- Publication number
- CN114880368A CN114880368A CN202210589925.9A CN202210589925A CN114880368A CN 114880368 A CN114880368 A CN 114880368A CN 202210589925 A CN202210589925 A CN 202210589925A CN 114880368 A CN114880368 A CN 114880368A
- Authority
- CN
- China
- Prior art keywords
- query
- data
- service
- query request
- requests
- 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
Links
Images
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
- G06F16/2457—Query processing with adaptation to user needs
- G06F16/24578—Query processing with adaptation to user needs using ranking
-
- 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/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
- G06F16/278—Data partitioning, e.g. horizontal or vertical partitioning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/906—Clustering; Classification
-
- 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/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
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)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及人工智能技术,揭露了一种数据查询方法,包括:根据查询类型对数据查询请求集合中的查询请求进行分类,对时间类查询请求集合进行数据分片,得到查询分片集合,对业务类查询请求集合进行任务调度,得到业务查询队列,利用预设的多线程处理方法对查询分片集合中的分片请求执行查询处理,并对查询到的分片数据进行聚合,得到时间查询结果,利用所述多线程处理方法对业务查询队列中的请求执行查询处理,并将查询到的数据作为业务查询结果。此外,本发明还涉及区块链技术,所述时间查询结果可存储在区块链的节点中。本发明还提出一种数据查询装置、电子设备以及可读存储介质。本发明可以解决数据查询效率较低的问题。
Description
技术领域
本发明涉及人工智能技术领域,尤其涉及一种数据查询方法、装置、电子设备及可读存储介质。
背景技术
随着互联网在整个社会的普及,人类社会开始进入了数据时代,各行业对数据的依赖性越来越高,数据的生产以及处理需求不断攀升。互联网公司的应用程序需要对这些数据进行查询,分析,处理,以此来满足用户多样化的需求。
日常工作中我们经常会遇到需要对大量数据进行查询的方法,例如需要查询某市最近一个月地铁乘坐记录,某电商平台最近一年网上购物订单记录等。在这种查询一定时间范围内数据的场景中,数据量大小对这个查询的效率有着非常大的影响,而工作中动辄几百万上千万,甚至是上亿的数据查询场景变得越来越常见。但是目前我们常见的存储数据工具(数据库等),面对这种大量的数据查询时往往需要花费几分钟甚至十几分钟的时间,而且在这段时间内,整个数据库机器的资源(CPU,内存等)都会被这个查询消耗,对其他接口的查询无法及时响应,严重的甚至会造成整个机器崩溃,从而导致数据查询效率较低。
发明内容
本发明提供一种数据查询方法、装置、电子设备及可读存储介质,其主要目的在于解决数据查询效率较低的问题。
为实现上述目的,本发明提供的一种数据查询方法,包括:
获取数据查询请求集合,根据所述数据查询请求集合中查询请求的查询类型对所述数据查询请求集合中的查询请求进行分类,得到多个分类查询请求集合;
对所述多个分类查询请求集合中的时间类查询请求集合进行数据分片,得到查询分片集合;
对所述多个分类查询请求集合中的业务类查询请求集合进行任务调度,得到业务查询队列;
利用预设的多线程处理方法对所述查询分片集合中的分片请求执行查询处理,并对查询到的分片数据进行聚合,得到时间查询结果;
利用所述多线程处理方法对所述业务查询队列中的请求执行查询处理,并将查询到的数据作为业务查询结果。
可选地,所述根据所述数据查询请求集合中查询请求的查询类型对所述数据查询请求集合中的查询请求进行分类,得到多个分类查询请求集合,包括:
解析所述数据查询请求集合中的查询请求,得到请求业务标识;
将所述请求业务标识中包括时间范围标识的对应数据查询请求作为时间类查询请求,汇总所有的时间类查询请求得到时间类查询请求集合;
按照预设的业务分类表将所述请求业务标识中不包括时间范围标识的对应数据查询请求进行分类并作为业务类查询请求,汇总所有的业务类查询请求得到业务类查询请求集合。
可选地,所述对所述多个分类查询请求集合中的时间类查询请求集合进行数据分片,得到查询分片集合,包括:
确定所述时间类查询请求集合中时间范围标识的开始时间及结束时间;
根据所述开始时间及结束时间落入的时间范围匹配预设的分片维度表,并根据匹配到的分片维度对所述时间类查询请求集合中的查询请求进行分片,得到所述查询分片集合。
可选地,所述根据匹配到的分片维度对所述时间类查询请求集合中的查询请求进行分片,得到所述查询分片集合,包括:
基于所述分片维度,利用预设的分片服务中心对所述时间类查询请求集合中的查询请求进行范围分片,得到原始分片集合;
对所述原始分片集合中同一查询请求下的分片请求进行标记,并汇总所有标记的分片请求得到所述查询分片集合。
可选地,所述利用预设的多线程处理方法对所述查询分片集合中的分片请求执行查询处理,并对查询到的分片数据进行聚合,得到时间查询结果,包括:
根据预设的线程池对所述查询分片集合中的分片请求进行线程分发;
利用分发的线程在预设的查询数据库中执行数据查询,得到每个分片请求查询到的分片数据;
利用分片请求中的标记对所述分片数据进行聚合,得到所述时间查询结果。
可选地,所述对所述多个分类查询请求集合中的业务类查询请求集合进行任务调度,得到业务查询队列,包括:
利用预设的目标函数及约束条件对所述业务类查询请求集合中的查询请求任务进行线性规划,并根据规划结果的大小对所述业务类查询请求集合中的任务进行调度;
所述预设的目标函数及约束条件如下所述:
s.t.max(xi)≤L
其中,Pj为第j个任务的重要度,Yj为第j个任务所占的资源,n为所述业务类查询请求集合的数量,z为所述规划结果,xi为第i个时段的任务数,L为时段内最大可运行任务数。
可选地,所述利用分发的线程在预设的查询数据库中执行数据查询之前,所述方法还包括:
根据预设数据库中存储的数据的业务类型,将所述预设数据库划分为多个数据子库;
将所述预设数据库中数据表水平切分为多个数据子表,并根据预设的业务规则将所述数据子表分配至所述数据子库中,汇总所有的数据子库及数据子表,得到所述查询数据库。
为了解决上述问题,本发明还提供一种数据查询装置,所述装置包括:
查询请求分类模块,用于获取数据查询请求集合,根据所述数据查询请求集合中查询请求的查询类型对所述数据查询请求集合中的查询请求进行分类,得到多个分类查询请求集合;
数据分片模块,用于对所述多个分类查询请求集合中的时间类查询请求集合进行数据分片,得到查询分片集合;
任务调度模块,用于对所述多个分类查询请求集合中的业务类查询请求集合进行任务调度,得到业务查询队列;
数据查询模块,用于利用预设的多线程处理方法对所述查询分片集合中的分片请求执行查询处理,并对查询到的分片数据进行聚合,得到时间查询结果,利用所述多线程处理方法对所述业务查询队列中的请求执行查询处理,并将查询到的数据作为业务查询结果。
为了解决上述问题,本发明还提供一种电子设备,所述电子设备包括:
存储器,存储至少一个计算机程序;及
处理器,执行所述存储器中存储的计算机程序以实现上述所述的数据查询方法。
为了解决上述问题,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一个计算机程序,所述至少一个计算机程序被电子设备中的处理器执行以实现上述所述的数据查询方法。
本发明通过查询请求的查询类型对数据查询请求集合中的查询请求进行分类,得到多个分类查询请求集合,并对时间类查询请求集合进行数据分片,得到查询分片集合,从而将大数据量查询任务(即时间类查询请求)分割成了多个小任务,大大减少了单个大任务执行的等待时间,提高了查询效率。并且对业务类查询请求集合进行任务调度,得到业务查询队列,也提高了非大数据量查询任务(即业务类查询请求)的查询效率。因此本发明提出的数据查询方法、装置、电子设备及计算机可读存储介质,可以解决数据查询效率较低的问题。
附图说明
图1为本发明一实施例提供的数据查询方法的流程示意图;
图2为图1中其中一个步骤的详细实施流程示意图;
图3为图1中另一个步骤的详细实施流程示意图;
图4为图1中另一个步骤的详细实施流程示意图;
图5为本发明一实施例提供的数据查询装置的功能模块图;
图6为本发明一实施例提供的实现所述数据查询方法的电子设备的结构示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明实施例提供一种数据查询方法。所述数据查询方法的执行主体包括但不限于服务端、终端等能够被配置为执行本发明实施例提供的该方法的电子设备中的至少一种。换言之,所述数据查询方法可以由安装在终端设备或服务端设备的软件或硬件来执行,所述软件可以是区块链平台。所述服务端包括但不限于:单台服务器、服务器集群、云端服务器或云端服务器集群等。所述服务器可以是独立的服务器,也可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(ContentDelivery Network,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器。
参照图1所示,为本发明一实施例提供的数据查询方法的流程示意图。
在本实施例中,所述数据查询方法包括以下步骤S1-S5:
S1、获取数据查询请求集合,根据所述数据查询请求集合中查询请求的查询类型对所述数据查询请求集合中的查询请求进行分类,得到多个分类查询请求集合。
本发明实施例中,所述数据查询请求集合是指不同业务中对数据进行查询的请求,包括大量数据查询请求及非大量数据查询请求。例如,电商平台中,大量数据查询请求可以为最近一年网上购物订单记录查询,非大量数据查询可以为某一网上购物订单记录查询。
详细地,参照图2所示,所述根据所述数据查询请求集合中查询请求的查询类型对所述数据查询请求集合中的查询请求进行分类,得到多个分类查询请求集合,包括以下步骤S10-S12:
S10、解析所述数据查询请求集合中的查询请求,得到请求业务标识;
S11、将所述请求业务标识中包括时间范围标识的对应数据查询请求作为时间类查询请求,汇总所有的时间类查询请求得到时间类查询请求集合;
S12、按照预设的业务分类表将所述请求业务标识中不包括时间范围标识的对应数据查询请求进行分类并作为业务类查询请求,汇总所有的业务类查询请求得到业务类查询请求集合。
本发明实施例中,所述请求业务标识包括“订单”、“用户名”、“user”等标识,时间范围标识是指查询的时间范围的标识,例如,“startDate”:“2015-01”,“endDate”:“2015-12”。所述预设的业务分类表中包括标识和对应的业务。由于查询一定时间范围内的数据会导致大量的数据查询,往往需要花费更高的资源导致查询效率较低,因此将对应的数据查询请求分类出来,可以提高数据查询的效率。
S2、对所述多个分类查询请求集合中的时间类查询请求集合进行数据分片,得到查询分片集合。
本发明实施例中,由于时间类查询请求需要查询大量的数据,为了提高数据查询的效率,通过数据分片进一步对查询时间范围细化。
具体地,参照图3所示,所述对所述多个分类查询请求集合中的时间类查询请求集合进行数据分片,得到查询分片集合,包括以下步骤S20-S21:
S20、确定所述时间类查询请求集合中时间范围标识的开始时间及结束时间;
S21、根据所述开始时间及结束时间落入的时间范围匹配预设的分片维度表,并根据匹配到的分片维度对所述时间类查询请求集合中的查询请求进行分片,得到所述查询分片集合。
本发明一可选实施例中,所述预设的分片维度表是预先根据分片数据量大小,分片的数量,以及分片查询的时长等因素综合考虑的分片时间维度表,例如,开始时间及结束时间为“startDate”:“2015-01-01”,“endDate”:“2015-01-15”,则对应的分片维度为天,即将查询时间范围按照每天来进行分片。
详细地,所述根据匹配到的分片维度对所述时间类查询请求集合中的查询请求进行分片,得到所述查询分片集合,包括:
基于所述分片维度,利用预设的分片服务中心对所述时间类查询请求集合中的查询请求进行范围分片,得到原始分片集合;
对所述原始分片集合中同一查询请求下的分片请求进行标记,并汇总所有标记的分片请求得到所述查询分片集合。
本发明实施例中,所述范围分片是指根据字段的取值将数据分成多个数据块(chunk),例如,根据时间维度X进行分片,X的取值范围为[minKey,maxKey],将整个取值范围划分为多个chunk,例如,通过范围分片得到[2015-01-01-00:00,2015-01-02-00:00]、[2015-01-02-00:00,2015-01-03-00:00]等多个时间范围的分片请求。所述预设的分片服务中心可以自定义调整分片维度并进行分片。
本发明通过将大数据量查询任务分割成了多个小任务,大大减少了单个大任务执行的等待时间,同时也避免了执行单个大任务造成机器CPU飙高,拖垮数据库的情形。并且可以灵活调整分片大小,满足不同场景的需要,避免了大数据量任务查询失败的情况。
S3、对所述多个分类查询请求集合中的业务类查询请求集合进行任务调度,得到业务查询队列。
本发明实施例中,由于不同业务的重要性不同、所占资源不同等,因此需要对查询请求进行任务调度,提高数据查询的准确性。
详细地,所述对所述多个分类查询请求集合中的业务类查询请求集合进行任务调度,得到业务查询队列,包括:
利用预设的目标函数及约束条件对所述业务类查询请求集合中的查询请求任务进行线性规划,并根据规划结果的大小对所述业务类查询请求集合中的任务进行调度;
所述预设的目标函数及约束条件如下所述:
s.t.max(xi)≤L
其中,Pj为第j个任务的重要度,Yj为第j个任务所占的资源,n为所述业务类查询请求集合的数量,z为所述规划结果,xi为第i个时段的任务数,L为时段内最大可运行任务数。
本发明实施例中,线性规划(Linear Programming,简记LP)是指在线性等式或不等式的约束条件下,求解线性目标函数的最大值或最小值的方法。通过线性规划可提前计算好每个时间段内资源的运行效率情况,达到保障重点查询任务优先运行,实现合理调度的目的。
S4、利用预设的多线程处理方法对所述查询分片集合中的分片请求执行查询处理,并对查询到的分片数据进行聚合,得到时间查询结果。
本发明实施例中,所述预设的多线程处理方法可以为JAVA多线程处理等。同时对分片任务通过多线程处理,提高了整个流程的处理效率。
进一步地,参照图4所示,所述利用预设的多线程处理方法对所述查询分片集合中的分片请求执行查询处理,并对查询到的分片数据进行聚合,得到时间查询结果,包括以下步骤S40-S42:
S40、根据预设的线程池对所述查询分片集合中的分片请求进行线程分发;
S41、利用分发的线程在预设的查询数据库中执行数据查询,得到每个分片请求查询到的分片数据;
S42、利用分片请求中的标记对所述分片数据进行聚合,得到所述时间查询结果。
本发明一可选实施例中,预设的线程池就是一个容纳多个线程的容器,池中的线程可以反复使用,省去了频繁创建线程对象的操作,节省了大量的时间和资源。首先判断线程池是否存在空闲线程,若存在则使用,若不存在空闲线程且线程池未满的情况下,则创建线程并放入线程池,然后使用,若不存在空闲线程且线程池已满的情况下,则等待线程池存在空闲线程。
本发明另一可选实施例中,所述利用分发的线程在预设的查询数据库中执行数据查询之前,所述方法还包括:
根据预设数据库中存储的数据的业务类型,将所述预设数据库划分为多个数据子库;
将所述预设数据库中数据表水平切分为多个数据子表,并根据预设的业务规则将所述数据子表分配至所述数据子库中,汇总所有的数据子库及数据子表,得到所述查询数据库。
本发明一可选实施例中,所述业务类型与请求业务标识中的业务相对应,其中,所述水平切分是指按照表内数据内在的逻辑关系,将同一个表中的数据按不同的条件分散到多个数据子库或多个数据子表中,每个数据子表中只包含一部分数据,从而使得单个数据子表的数据量变小,达到分布式的效果,提高查询效率。
S5、利用所述多线程处理方法对所述业务查询队列中的请求执行查询处理,并将查询到的数据作为业务查询结果。
本发明实施例中,由于业务查询队列中的请求未经过数据分片,因此直接通过多线程处理方法,在查询数据库对所述业务查询队列中的请求进行查询处理,得到的查询数据即为业务查询结果。
本发明通过查询请求的查询类型对数据查询请求集合中的查询请求进行分类,得到多个分类查询请求集合,并对时间类查询请求集合进行数据分片,得到查询分片集合,从而将大数据量查询任务(即时间类查询请求)分割成了多个小任务,大大减少了单个大任务执行的等待时间,提高了查询效率。并且对业务类查询请求集合进行任务调度,得到业务查询队列,也提高了非大数据量查询任务(即业务类查询请求)的查询效率。因此本发明提出的数据查询方法,可以解决数据查询效率较低的问题。
如图5所示,是本发明一实施例提供的数据查询装置的功能模块图。
本发明所述数据查询装置100可以安装于电子设备中。根据实现的功能,所述数据查询装置100可以包括查询请求分类模块101、数据分片模块102、任务调度模块103及数据查询模块104。本发明所述模块也可以称之为单元,是指一种能够被电子设备处理器所执行,并且能够完成固定功能的一系列计算机程序段,其存储在电子设备的存储器中。
在本实施例中,关于各模块/单元的功能如下:
所述查询请求分类模块101,用于获取数据查询请求集合,根据所述数据查询请求集合中查询请求的查询类型对所述数据查询请求集合中的查询请求进行分类,得到多个分类查询请求集合;
所述数据分片模块102,用于对所述多个分类查询请求集合中的时间类查询请求集合进行数据分片,得到查询分片集合;
所述任务调度模块103,用于对所述多个分类查询请求集合中的业务类查询请求集合进行任务调度,得到业务查询队列;
所述数据查询模块104,用于利用预设的多线程处理方法对所述查询分片集合中的分片请求执行查询处理,并对查询到的分片数据进行聚合,得到时间查询结果,利用所述多线程处理方法对所述业务查询队列中的请求执行查询处理,并将查询到的数据作为业务查询结果。
详细地,所述数据查询装置100各模块的具体实施方式如下:
步骤一、获取数据查询请求集合,根据所述数据查询请求集合中查询请求的查询类型对所述数据查询请求集合中的查询请求进行分类,得到多个分类查询请求集合。
本发明实施例中,所述数据查询请求集合是指不同业务中对数据进行查询的请求,包括大量数据查询请求及非大量数据查询请求。例如,电商平台中,大量数据查询请求可以为最近一年网上购物订单记录查询,非大量数据查询可以为某一网上购物订单记录查询。
详细地,所述根据所述数据查询请求集合中查询请求的查询类型对所述数据查询请求集合中的查询请求进行分类,得到多个分类查询请求集合,包括:
解析所述数据查询请求集合中的查询请求,得到请求业务标识;
将所述请求业务标识中包括时间范围标识的对应数据查询请求作为时间类查询请求,汇总所有的时间类查询请求得到时间类查询请求集合;
按照预设的业务分类表将所述请求业务标识中不包括时间范围标识的对应数据查询请求进行分类并作为业务类查询请求,汇总所有的业务类查询请求得到业务类查询请求集合。
本发明实施例中,所述请求业务标识包括“订单”、“用户名”、“user”等标识,时间范围标识是指查询的时间范围的标识,例如,“startDate”:“2015-01”,“endDate”:“2015-12”。所述预设的业务分类表中包括标识和对应的业务。由于查询一定时间范围内的数据会导致大量的数据查询,往往需要花费更高的资源导致查询效率较低,因此将对应的数据查询请求分类出来,可以提高数据查询的效率。
步骤二、对所述多个分类查询请求集合中的时间类查询请求集合进行数据分片,得到查询分片集合。
本发明实施例中,由于时间类查询请求需要查询大量的数据,为了提高数据查询的效率,通过数据分片进一步对查询时间范围细化。
具体地,所述对所述多个分类查询请求集合中的时间类查询请求集合进行数据分片,得到查询分片集合,包括:
确定所述时间类查询请求集合中时间范围标识的开始时间及结束时间;
根据所述开始时间及结束时间落入的时间范围匹配预设的分片维度表,并根据匹配到的分片维度对所述时间类查询请求集合中的查询请求进行分片,得到所述查询分片集合。
本发明一可选实施例中,所述预设的分片维度表是预先根据分片数据量大小,分片的数量,以及分片查询的时长等因素综合考虑的分片时间维度表,例如,开始时间及结束时间为“startDate”:“2015-01-01”,“endDate”:“2015-01-15”,则对应的分片维度为天,即将查询时间范围按照每天来进行分片。
详细地,所述根据匹配到的分片维度对所述时间类查询请求集合中的查询请求进行分片,得到所述查询分片集合,包括:
基于所述分片维度,利用预设的分片服务中心对所述时间类查询请求集合中的查询请求进行范围分片,得到原始分片集合;
对所述原始分片集合中同一查询请求下的分片请求进行标记,并汇总所有标记的分片请求得到所述查询分片集合。
本发明实施例中,所述范围分片是指根据字段的取值将数据分成多个数据块(chunk),例如,根据时间维度X进行分片,X的取值范围为[minKey,maxKey],将整个取值范围划分为多个chunk,例如,通过范围分片得到[2015-01-01-00:00,2015-01-02-00:00]、[2015-01-02-00:00,2015-01-03-00:00]等多个时间范围的分片请求。所述预设的分片服务中心可以自定义调整分片维度并进行分片。
本发明通过将大数据量查询任务分割成了多个小任务,大大减少了单个大任务执行的等待时间,同时也避免了执行单个大任务造成机器CPU飙高,拖垮数据库的情形。并且可以灵活调整分片大小,满足不同场景的需要,避免了大数据量任务查询失败的情况。
步骤三、对所述多个分类查询请求集合中的业务类查询请求集合进行任务调度,得到业务查询队列。
本发明实施例中,由于不同业务的重要性不同、所占资源不同等,因此需要对查询请求进行任务调度,提高数据查询的准确性。
详细地,所述对所述多个分类查询请求集合中的业务类查询请求集合进行任务调度,得到业务查询队列,包括:
利用预设的目标函数及约束条件对所述业务类查询请求集合中的查询请求任务进行线性规划,并根据规划结果的大小对所述业务类查询请求集合中的任务进行调度;
所述预设的目标函数及约束条件如下所述:
s.t.max(xi)≤L
其中,Pj为第j个任务的重要度,Yj为第j个任务所占的资源,n为所述业务类查询请求集合的数量,z为所述规划结果,xi为第i个时段的任务数,L为时段内最大可运行任务数。
本发明实施例中,线性规划(Linear Programming,简记LP)是指在线性等式或不等式的约束条件下,求解线性目标函数的最大值或最小值的方法。通过线性规划可提前计算好每个时间段内资源的运行效率情况,达到保障重点查询任务优先运行,实现合理调度的目的。
步骤四、利用预设的多线程处理方法对所述查询分片集合中的分片请求执行查询处理,并对查询到的分片数据进行聚合,得到时间查询结果。
本发明实施例中,所述预设的多线程处理方法可以为JAVA多线程处理等。同时对分片任务通过多线程处理,提高了整个流程的处理效率。
进一步地,所述利用预设的多线程处理方法对所述查询分片集合中的分片请求执行查询处理,并对查询到的分片数据进行聚合,得到时间查询结果,包括:
根据预设的线程池对所述查询分片集合中的分片请求进行线程分发;
利用分发的线程在预设的查询数据库中执行数据查询,得到每个分片请求查询到的分片数据;
利用分片请求中的标记对所述分片数据进行聚合,得到所述时间查询结果。
本发明一可选实施例中,预设的线程池就是一个容纳多个线程的容器,池中的线程可以反复使用,省去了频繁创建线程对象的操作,节省了大量的时间和资源。首先判断线程池是否存在空闲线程,若存在则使用,若不存在空闲线程且线程池未满的情况下,则创建线程并放入线程池,然后使用,若不存在空闲线程且线程池已满的情况下,则等待线程池存在空闲线程。
本发明另一可选实施例中,所述利用分发的线程在预设的查询数据库中执行数据查询之前,所述方法还包括:
根据预设数据库中存储的数据的业务类型,将所述预设数据库划分为多个数据子库;
将所述预设数据库中数据表水平切分为多个数据子表,并根据预设的业务规则将所述数据子表分配至所述数据子库中,汇总所有的数据子库及数据子表,得到所述查询数据库。
本发明一可选实施例中,所述业务类型与请求业务标识中的业务相对应,其中,所述水平切分是指按照表内数据内在的逻辑关系,将同一个表中的数据按不同的条件分散到多个数据子库或多个数据子表中,每个数据子表中只包含一部分数据,从而使得单个数据子表的数据量变小,达到分布式的效果,提高查询效率。
步骤五、利用所述多线程处理方法对所述业务查询队列中的请求执行查询处理,并将查询到的数据作为业务查询结果。
本发明实施例中,由于业务查询队列中的请求未经过数据分片,因此直接通过多线程处理方法,在查询数据库对所述业务查询队列中的请求进行查询处理,得到的查询数据即为业务查询结果。
本发明通过查询请求的查询类型对数据查询请求集合中的查询请求进行分类,得到多个分类查询请求集合,并对时间类查询请求集合进行数据分片,得到查询分片集合,从而将大数据量查询任务(即时间类查询请求)分割成了多个小任务,大大减少了单个大任务执行的等待时间,提高了查询效率。并且对业务类查询请求集合进行任务调度,得到业务查询队列,也提高了非大数据量查询任务(即业务类查询请求)的查询效率。因此本发明提出的数据查询装置,可以解决数据查询效率较低的问题。
如图6所示,是本发明一实施例提供的实现数据查询方法的电子设备的结构示意图。
所述电子设备可以包括处理器10、存储器11、通信接口12和总线13,还可以包括存储在所述存储器11中并可在所述处理器10上运行的计算机程序,如数据查询程序。
其中,所述存储器11至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、移动硬盘、多媒体卡、卡型存储器(例如:SD或DX存储器等)、磁性存储器、磁盘、光盘等。所述存储器11在一些实施例中可以是电子设备的内部存储单元,例如该电子设备的移动硬盘。所述存储器11在另一些实施例中也可以是电子设备的外部存储设备,例如电子设备上配备的插接式移动硬盘、智能存储卡(Smart Media Card,SMC)、安全数字(SecureDigital,SD)卡、闪存卡(Flash Card)等。进一步地,所述存储器11还可以既包括电子设备的内部存储单元也包括外部存储设备。所述存储器11不仅可以用于存储安装于电子设备的应用软件及各类数据,例如数据查询程序的代码等,还可以用于暂时地存储已经输出或者将要输出的数据。
所述处理器10在一些实施例中可以由集成电路组成,例如可以由单个封装的集成电路所组成,也可以是由多个相同功能或不同功能封装的集成电路所组成,包括一个或者多个中央处理器(Central Processing Unit,CPU)、微处理器、数字处理芯片、图形处理器及各种控制芯片的组合等。所述处理器10是所述电子设备的控制核心(Control Unit),利用各种接口和线路连接整个电子设备的各个部件,通过运行或执行存储在所述存储器11内的程序或者模块(例如数据查询程序等),以及调用存储在所述存储器11内的数据,以执行电子设备的各种功能和处理数据。
所述通信接口12用于上述电子设备与其他设备之间的通信,包括网络接口和用户接口。可选地,所述网络接口可以包括有线接口和/或无线接口(如WI-FI接口、蓝牙接口等),通常用于在该电子设备与其他电子设备之间建立通信连接。所述用户接口可以是显示器(Display)、输入单元(比如键盘(Keyboard)),可选地,用户接口还可以是标准的有线接口、无线接口。可选地,在一些实施例中,显示器可以是LED显示器、液晶显示器、触控式液晶显示器以及OLED(Organic Light-Emitting Diode,有机发光二极管)触摸器等。其中,显示器也可以适当的称为显示屏或显示单元,用于显示在电子设备中处理的信息以及用于显示可视化的用户界面。
所述总线13可以是外设部件互连标准(Peripheral Component Interconnect,简称PCI)总线或扩展工业标准结构(Extended Industry Standard Architecture,简称EISA)总线等。该总线13可以分为地址总线、数据总线、控制总线等。所述总线13被设置为实现所述存储器11以及至少一个处理器10等之间的连接通信。
图6仅示出了具有部件的电子设备,本领域技术人员可以理解的是,图6示出的结构并不构成对所述电子设备的限定,可以包括比图示更少或者更多的部件,或者组合某些部件,或者不同的部件布置。
例如,尽管未示出,所述电子设备还可以包括给各个部件供电的电源(比如电池),优选地,电源可以通过电源管理装置与所述至少一个处理器10逻辑相连,从而通过电源管理装置实现充电管理、放电管理、以及功耗管理等功能。电源还可以包括一个或一个以上的直流或交流电源、再充电装置、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。所述电子设备还可以包括多种传感器、蓝牙模块、Wi-Fi模块等,在此不再赘述。
进一步地,所述电子设备还可以包括网络接口,可选地,所述网络接口可以包括有线接口和/或无线接口(如WI-FI接口、蓝牙接口等),通常用于在该电子设备与其他电子设备之间建立通信连接。
可选地,该电子设备还可以包括用户接口,用户接口可以是显示器(Display)、输入单元(比如键盘(Keyboard)),可选地,用户接口还可以是标准的有线接口、无线接口。可选地,在一些实施例中,显示器可以是LED显示器、液晶显示器、触控式液晶显示器以及OLED(Organic Light-Emitting Diode,有机发光二极管)触摸器等。其中,显示器也可以适当的称为显示屏或显示单元,用于显示在电子设备中处理的信息以及用于显示可视化的用户界面。
应该了解,所述实施例仅为说明之用,在专利申请范围上并不受此结构的限制。
所述电子设备中的所述存储器11存储的数据查询程序是多个指令的组合,在所述处理器10中运行时,可以实现:
获取数据查询请求集合,根据所述数据查询请求集合中查询请求的查询类型对所述数据查询请求集合中的查询请求进行分类,得到多个分类查询请求集合;
对所述多个分类查询请求集合中的时间类查询请求集合进行数据分片,得到查询分片集合;
对所述多个分类查询请求集合中的业务类查询请求集合进行任务调度,得到业务查询队列;
利用预设的多线程处理方法对所述查询分片集合中的分片请求执行查询处理,并对查询到的分片数据进行聚合,得到时间查询结果;
利用所述多线程处理方法对所述业务查询队列中的请求执行查询处理,并将查询到的数据作为业务查询结果。
具体地,所述处理器10对上述指令的具体实现方法可参考附图对应实施例中相关步骤的描述,在此不赘述。
进一步地,所述电子设备集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读存储介质中。所述计算机可读存储介质可以是易失性的,也可以是非易失性的。例如,所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)。
本发明还提供一种计算机可读存储介质,所述可读存储介质存储有计算机程序,所述计算机程序在被电子设备的处理器所执行时,可以实现:
获取数据查询请求集合,根据所述数据查询请求集合中查询请求的查询类型对所述数据查询请求集合中的查询请求进行分类,得到多个分类查询请求集合;
对所述多个分类查询请求集合中的时间类查询请求集合进行数据分片,得到查询分片集合;
对所述多个分类查询请求集合中的业务类查询请求集合进行任务调度,得到业务查询队列;
利用预设的多线程处理方法对所述查询分片集合中的分片请求执行查询处理,并对查询到的分片数据进行聚合,得到时间查询结果;
利用所述多线程处理方法对所述业务查询队列中的请求执行查询处理,并将查询到的数据作为业务查询结果。
在本发明所提供的几个实施例中,应该理解到,所揭露的设备,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能模块的形式实现。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。
因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附关联图标记视为限制所涉及的权利要求。
本发明实施例可以基于人工智能技术对相关的数据进行获取和处理。其中,人工智能(Artificial Intelligence,AI)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用***。
人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互***、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、机器人技术、生物识别技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。
本发明所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。
此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。***权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第二等词语用来表示名称,而并不表示任何特定的顺序。
最后应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或等同替换,而不脱离本发明技术方案的精神和范围。
Claims (10)
1.一种数据查询方法,其特征在于,所述方法包括:
获取数据查询请求集合,根据所述数据查询请求集合中查询请求的查询类型对所述数据查询请求集合中的查询请求进行分类,得到多个分类查询请求集合;
对所述多个分类查询请求集合中的时间类查询请求集合进行数据分片,得到查询分片集合;
对所述多个分类查询请求集合中的业务类查询请求集合进行任务调度,得到业务查询队列;
利用预设的多线程处理方法对所述查询分片集合中的分片请求执行查询处理,并对查询到的分片数据进行聚合,得到时间查询结果;
利用所述多线程处理方法对所述业务查询队列中的请求执行查询处理,并将查询到的数据作为业务查询结果。
2.如权利要求1所述的数据查询方法,其特征在于,所述根据所述数据查询请求集合中查询请求的查询类型对所述数据查询请求集合中的查询请求进行分类,得到多个分类查询请求集合,包括:
解析所述数据查询请求集合中的查询请求,得到请求业务标识;
将所述请求业务标识中包括时间范围标识的对应数据查询请求作为时间类查询请求,汇总所有的时间类查询请求得到时间类查询请求集合;
按照预设的业务分类表将所述请求业务标识中不包括时间范围标识的对应数据查询请求进行分类并作为业务类查询请求,汇总所有的业务类查询请求得到业务类查询请求集合。
3.如权利要求2中所述的数据查询方法,其特征在于,所述对所述多个分类查询请求集合中的时间类查询请求集合进行数据分片,得到查询分片集合,包括:
确定所述时间类查询请求集合中时间范围标识的开始时间及结束时间;
根据所述开始时间及结束时间落入的时间范围匹配预设的分片维度表,并根据匹配到的分片维度对所述时间类查询请求集合中的查询请求进行分片,得到所述查询分片集合。
4.如权利要求3所述的数据查询方法,其特征在于,所述根据匹配到的分片维度对所述时间类查询请求集合中的查询请求进行分片,得到所述查询分片集合,包括:
基于所述分片维度,利用预设的分片服务中心对所述时间类查询请求集合中的查询请求进行范围分片,得到原始分片集合;
对所述原始分片集合中同一查询请求下的分片请求进行标记,并汇总所有标记的分片请求得到所述查询分片集合。
5.如权利要求1所述的数据查询方法,其特征在于,所述利用预设的多线程处理方法对所述查询分片集合中的分片请求执行查询处理,并对查询到的分片数据进行聚合,得到时间查询结果,包括:
根据预设的线程池对所述查询分片集合中的分片请求进行线程分发;
利用分发的线程在预设的查询数据库中执行数据查询,得到每个分片请求查询到的分片数据;
利用分片请求中的标记对所述分片数据进行聚合,得到所述时间查询结果。
7.如权利要求5所述的数据查询方法,其特征在于,所述利用分发的线程在预设的查询数据库中执行数据查询之前,所述方法还包括:
根据预设数据库中存储的数据的业务类型,将所述预设数据库划分为多个数据子库;
将所述预设数据库中数据表水平切分为多个数据子表,并根据预设的业务规则将所述数据子表分配至所述数据子库中,汇总所有的数据子库及数据子表,得到所述查询数据库。
8.一种数据查询装置,其特征在于,所述装置包括:
查询请求分类模块,用于获取数据查询请求集合,根据所述数据查询请求集合中查询请求的查询类型对所述数据查询请求集合中的查询请求进行分类,得到多个分类查询请求集合;
数据分片模块,用于对所述多个分类查询请求集合中的时间类查询请求集合进行数据分片,得到查询分片集合;
任务调度模块,用于对所述多个分类查询请求集合中的业务类查询请求集合进行任务调度,得到业务查询队列;
数据查询模块,用于利用预设的多线程处理方法对所述查询分片集合中的分片请求执行查询处理,并对查询到的分片数据进行聚合,得到时间查询结果,利用所述多线程处理方法对所述业务查询队列中的请求执行查询处理,并将查询到的数据作为业务查询结果。
9.一种电子设备,其特征在于,所述电子设备包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行如权利要求1至7中任意一项所述的数据查询方法。
10.一种计算机可读存储介质,存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7中任意一项所述的数据查询方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210589925.9A CN114880368A (zh) | 2022-05-26 | 2022-05-26 | 数据查询方法、装置、电子设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210589925.9A CN114880368A (zh) | 2022-05-26 | 2022-05-26 | 数据查询方法、装置、电子设备及可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114880368A true CN114880368A (zh) | 2022-08-09 |
Family
ID=82678538
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210589925.9A Pending CN114880368A (zh) | 2022-05-26 | 2022-05-26 | 数据查询方法、装置、电子设备及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114880368A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115952202A (zh) * | 2023-02-24 | 2023-04-11 | 北京锐服信科技有限公司 | 一种查询方法 |
CN117349323A (zh) * | 2023-12-05 | 2024-01-05 | 苏州元脑智能科技有限公司 | 数据库的数据处理方法及装置、存储介质及电子设备 |
-
2022
- 2022-05-26 CN CN202210589925.9A patent/CN114880368A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115952202A (zh) * | 2023-02-24 | 2023-04-11 | 北京锐服信科技有限公司 | 一种查询方法 |
CN115952202B (zh) * | 2023-02-24 | 2023-08-22 | 北京锐服信科技有限公司 | 一种基于高速缓存的大数据分片查询方法 |
CN117349323A (zh) * | 2023-12-05 | 2024-01-05 | 苏州元脑智能科技有限公司 | 数据库的数据处理方法及装置、存储介质及电子设备 |
CN117349323B (zh) * | 2023-12-05 | 2024-02-27 | 苏州元脑智能科技有限公司 | 数据库的数据处理方法及装置、存储介质及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111428458A (zh) | 通用报表生成方法、装置及计算机可读存储介质 | |
CN112541745A (zh) | 用户行为数据分析方法、装置、电子设备及可读存储介质 | |
CN112115152B (zh) | 数据增量更新及查询方法、装置、电子设备及存储介质 | |
CN114880368A (zh) | 数据查询方法、装置、电子设备及可读存储介质 | |
CN112418798A (zh) | 信息审核方法、装置、电子设备及存储介质 | |
CN112417503A (zh) | 岗位权限授权方法、装置、电子设备及存储介质 | |
CN112231417A (zh) | 数据分类方法、装置、电子设备及存储介质 | |
CN112115145A (zh) | 数据采集方法、装置、电子设备及存储介质 | |
CN113868528A (zh) | 资讯推荐方法、装置、电子设备及可读存储介质 | |
CN112256783A (zh) | 数据导出方法、装置、电子设备及存储介质 | |
CN114881616A (zh) | 业务流程执行方法、装置、电子设备及存储介质 | |
CN114491047A (zh) | 多标签文本分类方法、装置、电子设备及存储介质 | |
CN111985194A (zh) | 数据存储方法、装置、电子设备及存储介质 | |
CN113434542A (zh) | 数据关系识别方法、装置、电子设备及存储介质 | |
CN115314570B (zh) | 基于协议开发框架的数据下发方法、装置、设备及介质 | |
CN114817408B (zh) | 调度资源识别方法、装置、电子设备及存储介质 | |
CN113918305B (zh) | 节点调度方法、装置、电子设备及可读存储介质 | |
CN112328656B (zh) | 基于中台架构的服务查询方法、装置、设备及存储介质 | |
CN114996386A (zh) | 业务角色识别方法、装置、设备及存储介质 | |
CN111553133B (zh) | 报表生成方法、装置、电子设备及存储介质 | |
CN113918296A (zh) | 模型训练任务调度执行方法、装置、电子设备及存储介质 | |
CN114490137A (zh) | 业务数据实时统计方法、装置、电子设备及可读存储介质 | |
CN113449037A (zh) | 基于ai的sql引擎调用方法、装置、设备及介质 | |
CN111651167A (zh) | 调度任务依赖关系识别方法、装置及计算机可读存储介质 | |
CN114819590B (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 |