本发明涉及计算机,具体涉及一种数据存储及查询方法、系统、设备及存储介质。
背景技术:
1、在当今的数字化时代,企业依赖于应用程序的日志来监控、分析和优化其运营。这些日志数据量巨大,往往达到tb(terabyte,太字节)或pb(petabyte,拍字节)级别。为了快速检索和查询这些数据,许多企业采用了如elasticsearch这样的高性能搜索引擎。尽管elasticsearch本身是高性能的,但由于日志数据量的持续增长和复杂的查询需求,查询响应时间逐渐变慢,有时达到十多秒之久,这大大影响了业务效率和用户体验。
2、为了提高查询性能,现有技术中通常采用高速磁盘,如ssd(solid state disk,固态硬盘),作为数据存储介质。但高速磁盘的存储成本远高于传统的hdd(hard diskdrive,机械硬盘),将所有数据迁移到ssd上将导致存储成本大幅增加。
技术实现思路
1、本发明提供一种数据存储及查询方法、系统、设备及存储介质,用以解决如何在控制存储成本的基础上提高数据查询效率的技术问题。
2、为了解决上述技术问题,第一方面,本发明提供一种数据存储方法,该方法包括:
3、将待存索引存储到数据库的第一存储区域,所述数据库包括所述第一存储区域和第二存储区域,所述第一存储区域的存取速度和存储成本均高于所述第二存储区域;
4、在满足存储数据迁移条件的情况下,基于目标线性规划模型,分别更新所述第一存储区域中各已存索引的第一应存时长,以及所述第二存储区域中各已存索引的第二应存时长,所述目标线性规划模型根据所述数据库的查询时间、存储成本、迁移能力构建;
5、根据更新的第一应存时长和更新的第二应存时长,确定是否将各所述已存索引迁移到所述第二存储区域,以及将所述第二存储区域中各已存索引删除,并执行。
6、可选地,所述目标线性规划模型以最小化所述数据库的查询时间和存储成本为目标函数、以下述条件中的一种或多种为约束条件构建而成;
7、所述下述条件包括所述已存索引的应存总时长上限、所述第一存储区域的存储量上限、所述第二存储区域的存储量上限以及所述第一存储区域到所述第二存储区域的迁移能力上限。
8、可选地,所述目标线性规划模型的目标函数为minl(ti,wi),其中:
9、
10、其中,ti表示第i个已存索引的第一应存时长,wi表示第i个已存索引的第二应存时长,α表示预设的查询时间的成本系数,β表示预设的存储成本系数,n表示所述已存索引的集合,s(i,k)表示第i个已存索引在最近第k个小时内的总存储量,f(i,ti)表示第i个已存索引在最近的预设天数中在所述第二存储区域的总查询次数,g(i)表示第i个已存索引在所述预设天数内所述第一存储区域和所述第二存储区域的总查询次数,ch表示所述第一存储区域的单位存储成本,cc表示所述第二存储区域的单位存储成本,i为正整数,k<q*24,q表示所述预设天数。
11、可选地,所述目标线性规划模型的约束条件为如下公式:
12、
13、
14、
15、
16、其中,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表示所述预设天数。
17、可选地,所述目标线性规划模型的约束条件为如下公式:
18、
19、
20、
21、
22、其中,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表示所述预设天数。
23、可选地,所述根据更新的第一应存时长和更新的第二应存时长,确定是否将各所述已存索引迁移到所述第二存储区域,包括:
24、针对各所述已存索引,若所述更新的第一应存时长不大于历史的第一应存时长,则将当前已存索引迁移到所述第二存储区域;
25、否则,不将当前已存索引迁移到所述第二存储区域。
26、第二方面,本发明提供一种数据存储系统,包括:
27、存储模块,用于将待存索引存储到数据库的第一存储区域,所述数据库包括所述第一存储区域和第二存储区域,所述第一存储区域的存取速度和存储成本均高于所述第二存储区域;
28、计算模块,用于在满足存储数据迁移条件的情况下,基于目标线性规划模型,分别更新所述第一存储区域中各已存索引的第一应存时长,以及所述第二存储区域中各已存索引的第二应存时长,所述目标线性规划模型根据所述数据库的查询时间、存储成本、迁移能力构建;
29、迁移模块,用于根据更新的第一应存时长和更新的第二应存时长,确定是否将各所述已存索引迁移到所述第二存储区域,以及将所述第二存储区域中各已存索引删除,并执行。
30、第三方面,本发明实施例提供一种基于第二方面的数据存储系统的数据查询方法,包括:
31、接收用户查询请求,所述用户查询请求包括待查询索引和查询时间范围;
32、根据所述待查询索引对应的第一应存时长,将所述查询时间范围拆分为第一时间范围和第二时间范围;
33、根据所述待查询索引和所述第一时间范围,在所述第一存储区域中进行查找,返回第一查找结果;
34、根据所述待查询索引和所述第二时间范围,在所述第二存储区域中进行查找,缓存第二查找结果的id,并在返回页面更新和所述id对应的页码数。
35、第四方面,本发明提供一种计算机设备,包括存储器和处理器,其中:
36、所述存储器用于存储计算机程序;
37、所述处理器用于读取所述存储器中的程序并执行如上述第一方面提供的一种数据存储方法或上述第三方面提供的一种数据查询方法的步骤。
38、第五方面,本发明提供一种计算机可读存储介质,其上存储有可读的计算机程序,该程序被处理器执行时实现如上述第一方面提供的一种数据存储方法或上述第三方面提供的一种数据查询方法的步骤。
39、与现有技术相比,本发明提供的一种数据存储及查询方法、系统、设备及存储介质,具有以下有益效果:
40、在进行数据存储时,先将待存索引存储到数据库的第一存储区域,然后在满足数据迁移条件时,利用目标线性规划模型更新第一存储区域中各已存索引的第一应存时长和第二存储区域中各已存索引的第二应存时长,并且根据更新的第一应存时长,确定是否将第一存储区域中的各已存索引迁移到第二存储区域,根据更新的第二应存时长,确定是否将第二存储区域中的各已存索引删除。由于目标线性规划模型考虑到数据库的查询时间、存储成本和迁移能力的影响,并且执行将第一存储区域的已存索引迁移到第二存储区域,而第一存储区域的存取速度和存储成本均高于第二存储区域,从而在提高查询效率的同时又控制存储成本。