CN117891835A - 一种数据存储及查询方法、系统、设备及存储介质 - Google Patents
一种数据存储及查询方法、系统、设备及存储介质 Download PDFInfo
- Publication number
- CN117891835A CN117891835A CN202311535925.1A CN202311535925A CN117891835A CN 117891835 A CN117891835 A CN 117891835A CN 202311535925 A CN202311535925 A CN 202311535925A CN 117891835 A CN117891835 A CN 117891835A
- Authority
- CN
- China
- Prior art keywords
- storage
- storage area
- index
- stored index
- stored
- 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
- 238000000034 method Methods 0.000 title claims abstract description 58
- 238000013500 data storage Methods 0.000 title claims abstract description 40
- 230000005012 migration Effects 0.000 claims abstract description 60
- 238000013508 migration Methods 0.000 claims abstract description 60
- 238000004590 computer program Methods 0.000 claims description 17
- 230000006870 function Effects 0.000 claims description 16
- 238000004364 calculation method Methods 0.000 claims description 6
- 230000007704 transition Effects 0.000 claims description 6
- 238000010586 diagram Methods 0.000 description 15
- 238000012545 processing Methods 0.000 description 10
- 230000008569 process Effects 0.000 description 5
- 230000008030 elimination Effects 0.000 description 4
- 238000003379 elimination reaction Methods 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000007726 management method Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000003203 everyday effect Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种数据存储及查询方法、系统、设备及存储介质,所述方法包括:将待存索引存储到数据库的第一存储区域,所述数据库包括所述第一存储区域和第二存储区域,所述第一存储区域的存取速度和存储成本均高于所述第二存储区域;在满足存储数据迁移条件的情况下,基于目标线性规划模型,分别更新所述第一存储区域中各已存索引的第一应存时长,以及所述第二存储区域中各已存索引的第二应存时长;根据更新的第一应存时长和更新的第二应存时长,确定是否将各所述已存索引迁移到所述第二存储区域,以及将所述第二存储区域中各已存索引删除,并执行。利用本发明公开的方法,可以实现在控制存储成本的基础上提高数据查询效率。
Description
技术领域
本发明涉及计算机技术领域,具体涉及一种数据存储及查询方法、系统、设备及存储介质。
背景技术
在当今的数字化时代,企业依赖于应用程序的日志来监控、分析和优化其运营。这些日志数据量巨大,往往达到TB(TeraByte,太字节)或PB(PetaByte,拍字节)级别。为了快速检索和查询这些数据,许多企业采用了如Elasticsearch这样的高性能搜索引擎。尽管Elasticsearch本身是高性能的,但由于日志数据量的持续增长和复杂的查询需求,查询响应时间逐渐变慢,有时达到十多秒之久,这大大影响了业务效率和用户体验。
为了提高查询性能,现有技术中通常采用高速磁盘,如SSD(Solid State Disk,固态硬盘),作为数据存储介质。但高速磁盘的存储成本远高于传统的HDD(Hard DiskDrive,机械硬盘),将所有数据迁移到SSD上将导致存储成本大幅增加。
发明内容
本发明提供一种数据存储及查询方法、系统、设备及存储介质,用以解决如何在控制存储成本的基础上提高数据查询效率的技术问题。
为了解决上述技术问题,第一方面,本发明提供一种数据存储方法,该方法包括:
将待存索引存储到数据库的第一存储区域,所述数据库包括所述第一存储区域和第二存储区域,所述第一存储区域的存取速度和存储成本均高于所述第二存储区域;
在满足存储数据迁移条件的情况下,基于目标线性规划模型,分别更新所述第一存储区域中各已存索引的第一应存时长,以及所述第二存储区域中各已存索引的第二应存时长,所述目标线性规划模型根据所述数据库的查询时间、存储成本、迁移能力构建;
根据更新的第一应存时长和更新的第二应存时长,确定是否将各所述已存索引迁移到所述第二存储区域,以及将所述第二存储区域中各已存索引删除,并执行。
可选地,所述目标线性规划模型以最小化所述数据库的查询时间和存储成本为目标函数、以下述条件中的一种或多种为约束条件构建而成;
所述下述条件包括所述已存索引的应存总时长上限、所述第一存储区域的存储量上限、所述第二存储区域的存储量上限以及所述第一存储区域到所述第二存储区域的迁移能力上限。
可选地,所述目标线性规划模型的目标函数为minL(ti,wi),其中:
其中,ti表示第i个已存索引的第一应存时长,wi表示第i个已存索引的第二应存时长,α表示预设的查询时间的成本系数,β表示预设的存储成本系数,N表示所述已存索引的集合,s(i,k)表示第i个已存索引在最近第k个小时内的总存储量,f(i,ti)表示第i个已存索引在最近的预设天数中在所述第二存储区域的总查询次数,g(i)表示第i个已存索引在所述预设天数内所述第一存储区域和所述第二存储区域的总查询次数,Ch表示所述第一存储区域的单位存储成本,Cc表示所述第二存储区域的单位存储成本,i为正整数,k<Q*24,Q表示所述预设天数。
可选地,所述目标线性规划模型的约束条件为如下公式:
其中,ti表示第i个已存索引的第一应存时长,wi表示第i个已存索引的第二应存时长,s(i,k)表示第i个已存索引在最近第k个小时内的总存储量,s(i,ti)表示第i个已存索引在最近第ti个小时内的总存储量,N表示所述已存索引的集合,Hs表示所述第一存储区域的存储量上限,Hc表示所述第二存储区域的存储量上限,IOmax表示从所述第一存储区域迁移到所述第二存储区域的IO上限,Tmax表示从所述第一存储区域迁移到所述第二存储区域的耗时上限,i为正整数,k<Q*24,Q表示所述预设天数。
可选地,所述目标线性规划模型的约束条件为如下公式:
其中,ti表示第i个已存索引的第一应存时长,t'i表示第i个已存索引的第一应存时长和预设数据迁移间隔Δt的差,wi表示第i个已存索引的第二应存时长,s(i,k)表示第i个已存索引在最近第k个小时内的总存储量,s(i,ti)表示第i个已存索引在最近第ti个小时内的总存储量,N表示所述已存索引的集合,Hs表示所述第一存储区域的存储量上限,Hc表示所述第二存储区域的存储量上限,IOmax表示从所述第一存储区域迁移到所述第二存储区域的IO上限,Tmax表示从所述第一存储区域迁移到所述第二存储区域的耗时上限,i为正整数,k<Q*24,Q表示所述预设天数。
可选地,所述根据更新的第一应存时长和更新的第二应存时长,确定是否将各所述已存索引迁移到所述第二存储区域,包括:
针对各所述已存索引,若所述更新的第一应存时长不大于历史的第一应存时长,则将当前已存索引迁移到所述第二存储区域;
否则,不将当前已存索引迁移到所述第二存储区域。
第二方面,本发明提供一种数据存储系统,包括:
存储模块,用于将待存索引存储到数据库的第一存储区域,所述数据库包括所述第一存储区域和第二存储区域,所述第一存储区域的存取速度和存储成本均高于所述第二存储区域;
计算模块,用于在满足存储数据迁移条件的情况下,基于目标线性规划模型,分别更新所述第一存储区域中各已存索引的第一应存时长,以及所述第二存储区域中各已存索引的第二应存时长,所述目标线性规划模型根据所述数据库的查询时间、存储成本、迁移能力构建;
迁移模块,用于根据更新的第一应存时长和更新的第二应存时长,确定是否将各所述已存索引迁移到所述第二存储区域,以及将所述第二存储区域中各已存索引删除,并执行。
第三方面,本发明实施例提供一种基于第二方面的数据存储系统的数据查询方法,包括:
接收用户查询请求,所述用户查询请求包括待查询索引和查询时间范围;
根据所述待查询索引对应的第一应存时长,将所述查询时间范围拆分为第一时间范围和第二时间范围;
根据所述待查询索引和所述第一时间范围,在所述第一存储区域中进行查找,返回第一查找结果;
根据所述待查询索引和所述第二时间范围,在所述第二存储区域中进行查找,缓存第二查找结果的ID,并在返回页面更新和所述ID对应的页码数。
第四方面,本发明提供一种计算机设备,包括存储器和处理器,其中:
所述存储器用于存储计算机程序;
所述处理器用于读取所述存储器中的程序并执行如上述第一方面提供的一种数据存储方法或上述第三方面提供的一种数据查询方法的步骤。
第五方面,本发明提供一种计算机可读存储介质,其上存储有可读的计算机程序,该程序被处理器执行时实现如上述第一方面提供的一种数据存储方法或上述第三方面提供的一种数据查询方法的步骤。
与现有技术相比,本发明提供的一种数据存储及查询方法、系统、设备及存储介质,具有以下有益效果:
在进行数据存储时,先将待存索引存储到数据库的第一存储区域,然后在满足数据迁移条件时,利用目标线性规划模型更新第一存储区域中各已存索引的第一应存时长和第二存储区域中各已存索引的第二应存时长,并且根据更新的第一应存时长,确定是否将第一存储区域中的各已存索引迁移到第二存储区域,根据更新的第二应存时长,确定是否将第二存储区域中的各已存索引删除。由于目标线性规划模型考虑到数据库的查询时间、存储成本和迁移能力的影响,并且执行将第一存储区域的已存索引迁移到第二存储区域,而第一存储区域的存取速度和存储成本均高于第二存储区域,从而在提高查询效率的同时又控制存储成本。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一部分实施例,而不是全部的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,根据这些附图获得的其他的附图,都属于本申请保护的范围。
图1是本发明实施例提供的一种数据存储方法的流程图;
图2是本发明实施例提供的一种数据存储系统的结构示意图;
图3是本发明实施例提供的一种数据查询方法的流程图;
图4是本发明实施例提供的一种数据存储及查询方法的应用场景示意图;
图5是本发明实施例提供的一种计算机设备的结构示意图;
图6是本发明实施例提供的一种计算机可读存储介质的结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,下面结合附图和具体实施例对本发明作进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
为了使本揭示内容的叙述更加详尽与完备,下文针对本发明的实施方式与具体实施例提出了说明性的描述;但这并非实施或运用本发明具体实施例的唯一形式。实施方式中涵盖了多个具体实施例的特征以及用以建构与操作这些具体实施例的方法步骤与其顺序。然而,亦可利用其它具体实施例来达成相同或均等的功能与步骤顺序。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。
另外,在本申请实施例的描述中,“多个”是指两个或多于两个,其它量词与之类似应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明,并且在不冲突的情况下,本申请的实施例及实施例中的特征可以相互组合。
针对现有技术中将所有数据存储到高速磁盘上成本较高的问题,为Elasticsearch(ES)制定一个动态的冷热数据存储策略,基于各个索引的查询特点,确保高频查询的日志数据存储在高速磁盘上,而低频查询的数据则留在成本较低的存储介质上。其中,ES是一个基于Lucene的开源、分布式、RESTful搜索和分析引擎,常用于日志检索、分析以及其它搜索相关的应用。
实施例1
如图1所述,为本发明实施例提供的一种数据存储方法的流程图,包括以下步骤。
步骤S101,将待存索引存储到数据库的第一存储区域,所述数据库包括所述第一存储区域和第二存储区域,所述第一存储区域的存取速度和存储成本均高于所述第二存储区域;
获取待存索引,索引是用于存储相似文档的集合,每个文档都是一个具有多个字段的数据记录,每个字段都有自己的数据类型和值。数据记录可以是业务系统在处理业务过程中产生的数据,可以是业务数据,也可以是历史记录查询数据,具体可以根据实际情况确定,本发明实施例对此不做具体限定。
上述索引由一个或多个分片(Shards)组成,每个分片是索引数据的一个独立部分。分片可以是主分片或复制分片,主分片负责存储数据,复制分片提供数据冗余和容错。
在创建上述索引时,可以配置多个参数,如分片数量、复制策略和映射(Mapping)。映射是索引的模式定义,它指定了文档及其字段的存储和索引方式。
本发明实施例中数据库被预先划分出两个区域,分别为第一存储区域和第二存储区域,第一存储区域和第二存储区域的范围可以根据实际情况确定,本发明实施例对此不做具体限定。该第一存储区域的存取速度和存储成本均高于第二存储区域,可以理解为第一存储区域的查询性能比第二存储区域高,但第一存储区域比第二存储区域的成本高,该第一存储区域可以看作为热存储区域,表明第一存储区域中存储的数据经常被访问,第二存储区域可以看作为冷存储区域,表明第二存储区域中存储的数据被访问频率较低。
在对待存索引进行存储时,先将该待存索引存储到第一存储区域,该待存索引就变成第一存储区域中的已存索引。
步骤S102,在满足存储数据迁移条件的情况下,基于目标线性规划模型,分别更新所述第一存储区域中各已存索引的第一应存时长,以及所述第二存储区域中各已存索引的第二应存时长,所述目标线性规划模型根据所述数据库的查询时间、存储成本、迁移能力构建;为了在提高数据查询效率的同时控制存储成本,需要合理的分配第一存储区域和第二存储区域中索引的数量,将查询频率较高的索引存储到第一存储区域,将查询频率较低的索引存储到第二存储区域。
本发明实施例中在满足存储数据迁移条件下,利用目标线性规划模型,计算出第一存储区域中每个已存索引的第一应存时长和第二存储区域中每个已存索引的第二应存时长。
本发明实施例中存储数据迁移条件是数据迁移前需要满足的条件,存储数据迁移条件是预先设置的,具体可以根据实际情况确定,本发明实施例对此不做具体限定。举例地,该存储数据迁移条件可以是定时执行迁移操作,当达到预先设定的迁移时间时,就执行相应的迁移操作,在没有达到预先设定的迁移时间时,则不执行相应的迁移操作。
由于在执行数据迁移操作时,需要考虑查询时间、存储成本以及数据迁移的影响,因此本发明实施例中目标线性规划模型是根据数据库的查询时间、存储成本和迁移能力构建的,通过目标线性规划模型更新各已存索引的第一应存时长和第二应存时长,使得第一应存时长和第二应存时长对应的查询时间、存储成本、迁移能力都在可接受范围内,达到平衡。
作为一种可选地实施方式,所述目标线性规划模型以最小化所述数据库的查询时间和存储成本为目标函数、以下述条件中的一种或多种为约束条件构建而成;
所述下述条件包括所述已存索引的应存总时长上限、所述第一存储区域的存储量上限、所述第二存储区域的存储量上限以及所述第一存储区域到所述第二存储区域的迁移能力上限。
目标线性规划模型为线性规划模型,线性规划模型的三变量为决策变量、目标函数和约束条件,本发明实施例中,目标线性规划模型的决策变量为第一应存时长和第二应存时长,目标函数为最小化数据库的查询时间和存储成本,约束条件为已存索引的应存总时长上限、第一存储区域的存储量上限、第二存储区域的存储量上限以及第一存储区域到第二存储区域的迁移能力上限中的一种或多种,具体可以根据实际情况确定,本发明实施例对此不做具体限定。
需要说明的是,已存索引的应存总时长上限表示第一存储区域和第二存储区域中所有已存索引对应的更新后第一应存时长的总时长和更新后第二应存时长的总时长;第一存储区域的存储量上限是指第一存储区域所能存储索引的最大量;第二存储区域的存储量上限是指第二存储区域所能存储索引的最大量;第一存储区域到第二存储区域的迁移能力上限是指第一存储区域迁移到第二存储区域的索引最大量。
上述目标函数和约束条件的具体计算公式可以根据实际情况确定,本发明实施例对此不做具体限定。
作为一种可选地实施方式,所述目标线性规划模型的目标函数为minL(ti,wi),其中:
其中,ti表示第i个已存索引的第一应存时长,wi表示第i个已存索引的第二应存时长,α表示预设的查询时间的成本系数,β表示预设的存储成本系数,N表示所述已存索引的集合,s(i,k)表示第i个已存索引在最近第k个小时内的总存储量,f(i,ti)表示第i个已存索引在最近的预设天数中在所述第二存储区域的总查询次数,g(i)表示第i个已存索引在所述预设天数内所述第一存储区域和所述第二存储区域的总查询次数,Ch表示所述第一存储区域的单位存储成本,Cc表示所述第二存储区域的单位存储成本,i为正整数,k<Q*24,Q表示所述预设天数。
第一存储区域中每个已存索引都要计算其第一应存时长,每个已存索引对应的第一应存时长可以相同,也可以不同。同样地,第二存储区域中每个已存索引都要计算其第二应存时长,每个已存索引对应的第二应存时长可以相同,也可以不同。
需要说明的是,公式(1)中Q表示预设天数,其大小可以根据实际情况确定,本发明实施例对此不做具体限定。本发明实施例中以Q为7进行说明。
作为一种可选地实施方式,所述目标线性规划模型的约束条件为如下公式:
其中,ti表示第i个已存索引的第一应存时长,wi表示第i个已存索引的第二应存时长,s(i,k)表示第i个已存索引在最近第k个小时内的总存储量,s(i,ti)表示第i个已存索引在最近第ti个小时内的总存储量,N表示所述已存索引的集合,Hs表示所述第一存储区域的存储量上限,Hc表示所述第二存储区域的存储量上限,IOmax表示从所述第一存储区域迁移到所述第二存储区域的IO上限,Tmax表示从所述第一存储区域迁移到所述第二存储区域的耗时上限,i为正整数,k<Q*24,Q表示所述预设天数。
在上述公式(1)和公式(2)中,f(i,ti)表示第i个已存索引在最近的预设天数中在第二存储区域的总查询次数,对于第i个已存索引的某条查询请求,根据该查询请求的查询时间和第i个已存索引的第一应存时长、第二应存时长,确定该第i个已存索引是在第一存储区域查询还是在第二存储区域查询。具体地,如果查询时间小于第一应存时长,那么说明该查询时间可以完全落入第一存储区域,在第一存储区域中进行查询;如果查询时间大于第一应存时长,则将查询时间分为两部分,先在第一存储区域查询第一应存时长,然后在第二存储区域查询剩下时长。
举例地,以第i个已存索引在最近的7天中在第二存储区域的总查询次数为例进行说明,近7天中,某条查询请求的发生时间是2023-10-0316:00:00,该查询请求的查询范围是[2023-10-0312:00:00,2023-10-0315:00:00]。如果第i个已存索引的第一应存时长ti为5小时,那么该请求完全落入第一存储区域,不包括第二存储区域,此条查询请求不计数。如果第i个已存索引的第一应存时长ti为2,那么该查询请求除了需要在第一存储区域查询,还要在第二存储区域查询,此条查询请求计数,最终汇总7天内的总查询次数。
g(i)表示第i个已存索引在所述预设天数内在第一存储区域和第二存储区域的总查询次数。查询请求分为两种情况:一种是只在第一存储区域查询,一种是将查询请求分为两个子查询,一个在第一存储区域查询,另一个在第二存储区域查询,不管第一存储区域还是第二存储区域查询,只要查询了都计数,也就是查询请求的总查询次数,而f(i,ti)就是拆出来要在第二存储区域查询的次数。
作为另一种可选地实施方式,所述目标线性规划模型的约束条件为如下公式:
其中,ti表示第i个已存索引的第一应存时长,t'i表示第i个已存索引的第一应存时长和预设数据迁移间隔Δt的差,wi表示第i个已存索引的第二应存时长,s(i,k)表示第i个已存索引在最近第k个小时内的总存储量,s(i,ti)表示第i个已存索引在最近第ti个小时内的总存储量,N表示所述已存索引的集合,Hs表示所述第一存储区域的存储量上限,Hc表示所述第二存储区域的存储量上限,IOmax表示从所述第一存储区域迁移到所述第二存储区域的IO上限,Tmax表示从所述第一存储区域迁移到所述第二存储区域的耗时上限,i为正整数,k<Q*24,Q表示所述预设天数。
考虑每个已存索引在每天不同的小时的存储大小有规律波动,虽然每行存储大小不变,但是某些时间段会因为业务量集中的原因,导致日志数量大幅上升,导致该小时总存储大幅上升,因此可以对原有的约束条件(公式2)进行进一步改进。
如果大量已存索引刚好同时迁移,可能导致IO过高。即,约束条件中的IO部分,可以基于Δt=ti-t'i,计算迁移存储大小即,将原有的约束条件公式(2)中最后一个式子改成:/>即可得到新的约束条件为公式(3)。
继续对上述图1的说明,步骤S103,根据更新的第一应存时长和更新的第二应存时长,确定是否将各所述已存索引迁移到所述第二存储区域,以及将所述第二存储区域中各已存索引删除,并执行。
计算出第一存储区域中每个已存索引的第一应存时长和第二存储区域中每个索引的第二应存时长后,按照预设时间间隔对每个已存索引进行判断,在每次判断中,每个已存索引都有一次从第一存储区域淘汰到第二存储区域的机会,或者从第二存储区域中删除的机会。
作为一种可选地实施方式,所述根据更新的第一应存时长和更新的第二应存时长,确定是否将各所述已存索引迁移到所述第二存储区域,包括:
针对各所述已存索引,若所述更新的第一应存时长不大于历史的第一应存时长,则将当前已存索引迁移到所述第二存储区域;
否则,不将当前已存索引迁移到所述第二存储区域。
示例地,结合更新的第一应存时长和更新的第二应存时长,确定是否将各实审已存索引迁移到上述第二存储区域,以及将上述第二存储区域中各已存索引删除,之后可以采用双倍法或中点法进行数据的迁移。
基于更新的第一应存时长和更新的第二应存时长进行数据迁移判断。对于第一存储区域中的每个已存索引,每个已存索引都会得到一个更新的第一应存时长,如果本次得出的第一应存时长比以前的大,那么在淘汰时机到来时,第一存储区域不淘汰该已存索引,直到该已存索引在第一存储区域的已存时长随时间流逝增长到更新的第一应存时长;如果更新的第一应存时长比以前的小,那么在淘汰时机到来时,第一存储区域淘汰若干个小时的已存索引到第二存储区域。
同理,如果本次得出的更新的第二应存时长比以前的大,那么在淘汰时机到来时,第二存储区域不删除该已存索引,直到该已存索引在第二存储区域的已存时长随时间流逝增长到更新的第二应存时长;如果更新的第二应存时长比以前的小,那么在淘汰时机到来时,第二存储区域删除若干个小时的已存索引。
在第一存储区域淘汰若干个小时的已存索引到第二存储区域,以及第二存储区域删除若干个小时的已存索引时,对于双倍法,上述若干个小时为预设时间间隔的双倍,例如,若对每个已存索引进行判断的预设时间间隔为1小时,那么在第一存储区域淘汰2个小时的已存索引到第二存储区域,以及第二存储区域删除2个小时的已存索引;对于中点法,上述若干个小时为每个已存索引的更新的第一应存时长和历史的第一应存时长的平均值,例如,若某个已存索引的更新的第一应存时长为2小时和历史的第一应存时长为1小时,他们的平均值为1.5小时,那么在第一存储区域淘汰1.5个小时的已存索引到第二存储区域,以及第二存储区域删除1.5个小时的已存索引。
本发明实施例提出的一种数据存储方法,在进行数据存储时,先将待存索引存储到数据库的第一存储区域,然后在满足数据迁移条件时,利用目标线性规划模型更新第一存储区域中各已存索引的第一应存时长和第二存储区域中各已存索引的第二应存时长,并且根据更新的第一应存时长,确定是否将第一存储区域中的各已存索引迁移到第二存储区域,根据更新的第二应存时长,确定是否将第二存储区域中的各已存索引删除。由于目标线性规划模型考虑到数据库的查询时间、存储成本和迁移能力的影响,并且执行将第一存储区域的已存索引迁移到第二存储区域,而第一存储区域的存取速度和存储成本均高于第二存储区域,从而在提高查询效率的同时又控制存储成本。
实施例2
基于上述数据存储方法,本发明实施例提供一种数据存储系统,其结构示意图如图2所示,该系统包括存储模块210、计算模块220和迁移模块230,其中:
存储模块210用于将待存索引存储到数据库的第一存储区域,所述数据库包括所述第一存储区域和第二存储区域,所述第一存储区域的存取速度和存储成本均高于所述第二存储区域;
计算模块220用于在满足存储数据迁移条件的情况下,基于目标线性规划模型,分别更新所述第一存储区域中各已存索引的第一应存时长,以及所述第二存储区域中各已存索引的第二应存时长,所述目标线性规划模型根据所述数据库的查询时间、存储成本、迁移能力构建;
迁移模块230用于根据更新的第一应存时长和更新的第二应存时长,确定是否将各所述已存索引迁移到所述第二存储区域,以及将所述第二存储区域中各已存索引删除,并执行。
关于上述数据存储系统中各模块实现上述技术方案的其他细节,可参见上述发明实施例中提供的数据存储方法中的描述,此处不再赘述。
上述数据存储系统中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
实施例3
基于上述数据存储系统,本发明实施例提供一种数据查询方法,其流程图如图3所示,该查询方法包括:
S310,接收用户查询请求,所述用户查询请求包括待查询索引和查询时间范围;
S320,根据所述待查询索引对应的第一应存时长,将所述查询时间范围拆分为第一时间范围和第二时间范围;
S330,根据所述待查询索引和所述第一时间范围,在所述第一存储区域中进行查找,返回第一查找结果;
S340,根据所述待查询索引和所述第二时间范围,在所述第二存储区域中进行查找,缓存第二查找结果的ID,并在返回页面更新和所述ID对应的页码数。
本发明实施例中在进行数据查询时,先接收用户查询请求,该用户查询请求包括待查询索引和查询时间范围,该待查询索引即需要进行查询的索引。比如对于第i个已存索引的用户查询请求,根据该查询请求的查询时间范围和第i个已存索引的第一应存时长、第二应存时长,确定该第i个已存索引是在第一存储区域查询还是在第二存储区域查询。
具体地,如果查询时间可以完全落入第一存储区域,在第一存储区域中进行查询;否则,将查询时间分为两部分,分别为第一时间范围和第二时间范围,先在第一存储区域查询第一时间范围,得到第一查找结果,并将该第一查找结果返回给用户;然后在第二存储区域查询第二时间范围,得到第二查找结果的ID,并在返回页面更新和该ID对应的页码数,还可以通知前端更新总查询记录和总页码数。
举例地,接收用户查询请求,根据用户查询请求中的待查询索引和待查询索引对应的查询时间范围,将查询时间范围切分成两个,再分发到对应的存储区域中。比如,用户查询请求{“indices”:”waybill_net”,”start_time”:”2023-10-01
00:00:00”,”end_time”:”2023-10-0315:00:00”},当前时间为2023-10-0315:03:07,待查询索引waybill_net对应的第一应存时长为7小时,那么该用户查询请求被拆成2条请求:{“indices”:”waybill_net”,”start_time”:”2023-10-03
08:00:00”,”end_time”:”2023-10-0315:00:00”}和
{“indices”:”waybill_net”,”start_time”:“2023-10-01
00:00:00”,”end_time”:”2023-10-0308:00:00”}。其中,第1条请求在第一存储区域查询,第2条请求在第二存储区域查询。
本发明实施例中将用户页面上的页码和查询结果做映射,让用户可以通过指定页面访问查询记录,而无需后端缓存大量中间结果。
本发明实施例还提供一种数据存储及查询方法的应用场景示意图,如图4所示,上述应用场景中包括业务系统、存储管理系统和日志查询系统,业务系统主要负责企业内部业务处理,并在处理过程中产生日志数据,将日志数据以索引形式写入到数据库中,业务系统是数据的生产者,只管往数据库写数据,该数据库通常为ES数据库。
日志查询系统是数据的消费者,接收用户查询请求,然后通过上述数据查询方法,根据用户查询请求中的待查询索引和待查询索引对应的时间范围,将用户查询请求中的时间范围切分成两个,再分发到数据库的第一存储区域和第二存储区域中,分别在第一存储区域和第二存储区域中进行查找,并返回第一存储区域的查找结果,缓存第二存储区域的索引ID。
业务系统将待存储索引写入到数据库后,存储管理系统执行上述数据存储方法,负责生成和调整存储策略,存储策略计算服务采集数据并计算各已存索引在第一存储区域的第一应存时长和第二存储区域对应的第二应存时长,迁移执行服务根据第一应存时长和第二应存时长,指导数据库中第一存储区域和第二存储区域执行迁移操作。
存储管理系统是数据的治理者,定时根据查询系统的历史记录和数据库元信息分析每个已存索引的第一应存时长和第二应存时长,以及定时执行数据迁移操作。
基于上述数据存储方法或数据查询方法,如图5所示,本发明实施例还提供了一种计算机设备的结构示意图,该识别设备包括处理器51和与该处理器51耦合的存储器52。存储器52存储有计算机程序,计算机程序被处理器51执行时,使得处理器51执行上述实施例中的数据存储方法或数据查询方法的步骤。
关于上述计算机设备中处理器51实现上述技术方案的其他细节,可参见上述发明实施例中提供的数据存储方法或数据查询方法中的描述,此处不再赘述。
其中,处理器51还可以称为CPU(Central Processing Unit,中央处理单元),处理器51可能是一种集成电路芯片,具有信号的处理能力;处理器51还可以是通用处理器、DSP(Digital Signal Process,数字信号处理器)、ASIC(Application Specific IntegratedCircuit,专用集成电路)、FPGA(FieldProgrammable GataArray,现场可编程门阵列)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,其中通用处理器可以是微处理器或者该处理器51也可以是任何常规的处理器等。
如图6所示,本发明实施例还提供了一种计算机可读存储介质的结构示意图,该存储介质上存储有可读的计算机程序61;其中,该计算机程序61可以以软件产品的形式存储在上述存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施方式所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、磁碟或者光盘、ROM(Read-OnlyMemory,只读存储器)、RAM(Random Access Memory,随机存取存储器)等各种可以存储程序代码的介质,或者是计算机、服务器、手机、平板等终端设备。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘(Solid State Disk,SSD))等。
以上对本申请所提供的技术方案进行了详细介绍,本申请中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/
或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (10)
1.一种数据存储方法,其特征在于,包括:
将待存索引存储到数据库的第一存储区域,所述数据库包括所述第一存储区域和第二存储区域,所述第一存储区域的存取速度和存储成本均高于所述第二存储区域;
在满足存储数据迁移条件的情况下,基于目标线性规划模型,分别更新所述第一存储区域中各已存索引的第一应存时长,以及所述第二存储区域中各已存索引的第二应存时长,所述目标线性规划模型根据所述数据库的查询时间、存储成本、迁移能力构建;
根据更新的第一应存时长和更新的第二应存时长,确定是否将各所述已存索引迁移到所述第二存储区域,以及将所述第二存储区域中各已存索引删除,并执行。
2.根据权利要求1所述的数据存储方法,其特征在于,所述目标线性规划模型以最小化所述数据库的查询时间和存储成本为目标函数、以下述条件中的一种或多种为约束条件构建而成;
所述下述条件包括所述已存索引的应存总时长上限、所述第一存储区域的存储量上限、所述第二存储区域的存储量上限以及所述第一存储区域到所述第二存储区域的迁移能力上限。
3.根据权利要求1或2所述的数据存储方法,其特征在于,所述目标线性规划模型的目标函数为minL(ti,wi),其中:
其中,ti表示第i个已存索引的第一应存时长,wi表示第i个已存索引的第二应存时长,α表示预设的查询时间的成本系数,β表示预设的存储成本系数,N表示所述已存索引的集合,s(i,k)表示第i个已存索引在最近第k个小时内的总存储量,f(i,ti)表示第i个已存索引在最近的预设天数中在所述第二存储区域的总查询次数,g(i)表示第i个已存索引在所述预设天数内所述第一存储区域和所述第二存储区域的总查询次数,Ch表示所述第一存储区域的单位存储成本,Cc表示所述第二存储区域的单位存储成本,i为正整数,k<Q*24,Q表示所述预设天数。
4.根据权利要求1或2所述的数据存储方法,其特征在于,所述目标线性规划模型的约束条件为如下公式:
其中,ti表示第i个已存索引的第一应存时长,wi表示第i个已存索引的第二应存时长,s(i,k)表示第i个已存索引在最近第k个小时内的总存储量,s(i,ti)表示第i个已存索引在最近第ti个小时内的总存储量,N表示所述已存索引的集合,Hs表示所述第一存储区域的存储量上限,Hc表示所述第二存储区域的存储量上限,IOmax表示从所述第一存储区域迁移到所述第二存储区域的IO上限,Tmax表示从所述第一存储区域迁移到所述第二存储区域的耗时上限,i为正整数,k<Q*24,Q表示所述预设天数。
5.根据权利要求1或2所述的数据存储方法,其特征在于,所述目标线性规划模型的约束条件为如下公式:
其中,ti表示第i个已存索引的第一应存时长,t'i表示第i个已存索引的第一应存时长和预设数据迁移间隔Δt的差,wi表示第i个已存索引的第二应存时长,s(i,k)表示第i个已存索引在最近第k个小时内的总存储量,s(i,ti)表示第i个已存索引在最近第ti个小时内的总存储量,N表示所述已存索引的集合,Hs表示所述第一存储区域的存储量上限,Hc表示所述第二存储区域的存储量上限,IOmax表示从所述第一存储区域迁移到所述第二存储区域的IO上限,Tmax表示从所述第一存储区域迁移到所述第二存储区域的耗时上限,i为正整数,k<Q*24,Q表示所述预设天数。
6.根据权利要求1所述的数据存储方法,其特征在于,所述根据更新的第一应存时长和更新的第二应存时长,确定是否将各所述已存索引迁移到所述第二存储区域,包括:
针对各所述已存索引,若所述更新的第一应存时长不大于历史的第一应存时长,则将当前已存索引迁移到所述第二存储区域;
否则,不将当前已存索引迁移到所述第二存储区域。
7.一种数据存储系统,其特征在于,包括:
存储模块,用于将待存索引存储到数据库的第一存储区域,所述数据库包括所述第一存储区域和第二存储区域,所述第一存储区域的存取速度和存储成本均高于所述第二存储区域;
计算模块,用于在满足存储数据迁移条件的情况下,基于目标线性规划模型,分别更新所述第一存储区域中各已存索引的第一应存时长,以及所述第二存储区域中各已存索引的第二应存时长,所述目标线性规划模型根据所述数据库的查询时间、存储成本、迁移能力构建;
迁移模块,用于根据更新的第一应存时长和更新的第二应存时长,确定是否将各所述已存索引迁移到所述第二存储区域,以及将所述第二存储区域中各已存索引删除,并执行。
8.一种基于权利要求7所述的数据存储系统的数据查询方法,其特征在于,包括:
接收用户查询请求,所述用户查询请求包括待查询索引和查询时间范围;
根据所述待查询索引对应的第一应存时长,将所述查询时间范围拆分为第一时间范围和第二时间范围;
根据所述待查询索引和所述第一时间范围,在所述第一存储区域中进行查找,返回第一查找结果;
根据所述待查询索引和所述第二时间范围,在所述第二存储区域中进行查找,缓存第二查找结果的ID,并在返回页面更新和所述ID对应的页码数。
9.一种计算机设备,其特征在于,包括存储器和处理器,其中:
所述存储器用于存储计算机程序;
所述处理器用于读取所述存储器中的计算机程序,并执行如权利要求1至6中任一项所述数据存储方法或如权利要求8所述数据查询方法的步骤。
10.一种计算机可读存储介质,其特征在于,其上存储有可读的计算机程序,该程序被处理器执行时实现如权利要求1至6中任一项所述数据存储方法或如权利要求8所述数据查询方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311535925.1A CN117891835A (zh) | 2023-11-17 | 2023-11-17 | 一种数据存储及查询方法、系统、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311535925.1A CN117891835A (zh) | 2023-11-17 | 2023-11-17 | 一种数据存储及查询方法、系统、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117891835A true CN117891835A (zh) | 2024-04-16 |
Family
ID=90647622
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311535925.1A Pending CN117891835A (zh) | 2023-11-17 | 2023-11-17 | 一种数据存储及查询方法、系统、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117891835A (zh) |
-
2023
- 2023-11-17 CN CN202311535925.1A patent/CN117891835A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20200356568A1 (en) | Pre-Emptive Database Processing For Performance Enhancement In A Hybrid Multi-Cloud Database Environment | |
KR102564170B1 (ko) | 데이터 객체 저장 방법, 장치, 및 이를 이용한 컴퓨터 프로그램이 저장되는 컴퓨터 판독가능한 저장 매체 | |
CN102521406B (zh) | 海量结构化数据复杂查询任务的分布式查询方法和系统 | |
US10725995B2 (en) | Automatically revising synopsis table structure | |
CN102521405B (zh) | 支持高速加载的海量结构化数据存储、查询方法和系统 | |
US10769126B1 (en) | Data entropy reduction across stream shard | |
US11537584B2 (en) | Pre-caching of relational database management system based on data retrieval patterns | |
CN110162528A (zh) | 海量大数据检索方法及系统 | |
US10929397B2 (en) | Forecasting query access plan obsolescence | |
US10552460B2 (en) | Sensor data management apparatus, sensor data management method, and computer program product | |
CN107103068A (zh) | 业务缓存的更新方法及装置 | |
CN103176754A (zh) | 一种海量小文件读取存储方法 | |
CN109299115A (zh) | 一种数据存储方法、装置、服务器及存储介质 | |
CN110647542B (zh) | 一种数据获取方法和装置 | |
CN110858210B (zh) | 数据查询方法及装置 | |
WO2023077823A1 (zh) | 慢查询告警方法、电子设备及存储介质 | |
CN110196863B (zh) | 数据处理方法、装置、计算设备及存储介质 | |
CN112840334A (zh) | 管理分区表的数据的方法、装置、管理节点及存储介质 | |
CN104375782A (zh) | 千万级小文件数据的一种读写解决方法 | |
CN114090631A (zh) | 一种数据查询方法、装置、电子设备及存储介质 | |
US10795876B2 (en) | Processing query of database and data stream | |
CN115640274A (zh) | 数据库模型动态调整的方法、设备及存储介质 | |
JPWO2012114402A1 (ja) | データベース管理装置及びデータベース管理方法 | |
CN117891835A (zh) | 一种数据存储及查询方法、系统、设备及存储介质 | |
CN111913959B (zh) | 一种数据查询方法、装置、终端和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |