数据存储方法、电子设备及计算机可读存储介质技术

技术编号:27273637 阅读:101 留言:0更新日期:2021-02-06 11:39
本申请实施例提供了一种数据存储方法、电子设备及计算机可读存储介质,涉及计算机技术领域。当有转存数据的存储需求时,通过获取数据库中的数据表的最近表分区的时间信息并与待转存数据的时间信息进行比对及该最近表分区的剩余存储空间与待转存数据的数据量进行比对,来判断待转存数据是否满足存储至该最近表分区的存储条件,当满足该存储条件时,将待转存数据存储至该最近表分区,当不满足该存储条件时,在数据表中创建新的表分区,并将该待转存数据存储至新建的表分区。本申请针对数据表新进来的数据,判断放在新建的表分区还是已有的表分区,尽可能使得数据表中每一表分区存储的数据接近合理的分区大小,可最大程度降低系统I/O浪费。系统I/O浪费。系统I/O浪费。

【技术实现步骤摘要】
数据存储方法、电子设备及计算机可读存储介质


[0001]本申请涉及计算机
,尤其涉及一种数据存储方法、电子设备及计算机可读存储介质。

技术介绍

[0002]随着互联网技术的发展和应用软件的成熟,开始兴起一种创新的软件应用模式Software-as-a-Service(软件即服务,SaaS)。第三方厂商可以通过购买Saas服务来获得相应的软件服务。在现有的Saas服务中,SaaS服务提供方提供的数据分析模型是预置的,分析指标的算法亦是预置的,多个第三方厂商共用同一套数据资源来进行数据分析。该套数据资源汇集有多个第三方厂商的待分析数据。
[0003]如图1所示,多个第三方厂商运营有多个应用程序(Application,APP)APP1~APP
i
,多个APP的数据均存储在SaaS服务提供方指定的多个数据库Db1~Db
j
。多个APP的数据如何存放到多个数据库的数据表,一般有两种方式:第一种是根据APP的标识信息APP_ID进行哈希运算并对哈希运算结果进行取模运算(Modulus Operation)找到对应的数据库,然后再将APP数据存储到该数据库中的数据表;第二种是预先建立APP的标识信息APP_ID和数据库的标识信息Database_ID的映射关系,然后再根据映射关系将APP数据存储到对应的数据库中的数据表。由于SaaS提供的分析服务一般都要基于时间轴进行分析,进而数据表往往需要按照时间进行分区。由于每个APP的数据是无法预估的,导致对数据表进行分区存在着无法预估分区大小的问题。若数据表中存在过多的分区小的表分区,后续在读取表分区数据时将在输入/输出(Input/Output,I/O)建立上耗费大量的资源,现有的分析服务一般都是秒级响应,简单地对数据表进行时间分区,无法使得表分区存储的数据接近合理大小,降低了分析服务的响应速度。

技术实现思路

[0004]有鉴于此,有必要提供一种数据存储方法、电子设备及计算机可读存储介质,使得表分区存储的数据接近合理大小,最大程度降低系统I/O浪费。
[0005]本申请实施例第一方面公开了一种数据存储方法,应用于数据库,所述数据库包括至少一数据表,所述数据存储方法包括:响应于待转存数据的存储需求,确定所述数据库中与所述待转存数据对应的数据表;获取所述数据表的最近表分区的时间信息与剩余存储空间,及所述待转存数据的时间信息与数据量;及所述最近表分区的时间信息与所述待转存数据的时间信息不匹配和/或所述最近表分区的剩余存储空间小于所述待转存数据的数据量,在所述数据表中创建新的表分区,并将所述待转存数据存储至新建的表分区。
[0006]通过采用该技术方案,可以实现针对每次提取的待转存数据,当表分区时间信息与待转存数据的时间信息不匹配和/或表分区剩余存储空间小于待转存数据的数据量时,为待转存数据创建新的表分区进行存储,使得表分区存储的数据尽可能接近该合理的分区大小,且表分区存储的数据时间信息与自身时间信息匹配,可最大程度降低系统I/O浪费,
便于后续进行数据分析。
[0007]在一种可能的实现方式中,所述待转存数据包括数据属性,所述数据库中的每一数据表包括表属性,所述表属性用于指示所述数据表所能存储的数据的数据属性,所述确定所述数据库中与所述待转存数据对应的数据表,包括:根据所述待转存数据的数据属性及所述数据库中的每一所述数据表的表属性确定与所述待转存数据对应的数据表。
[0008]通过采用该技术方案,可以实现确定与每次提取的待转存数据对应的数据表,便于后续判断待转存数据是放在该对应的数据表中的新建的表分区还是已有的表分区。
[0009]在一种可能的实现方式中,所述待转存数据存储在第一服务器,所述数据库部署在第二服务器,所述方法还包括:利用预设数据提取工具从所述第一服务器提取所述待转存数据,并将所述待转存数据的数据属性发送给所述第二服务器。
[0010]通过采用该技术方案,可以实现将第一服务器存储的数据转存至第二服务器,便于第二服务器后续提供指定的服务功能。
[0011]在一种可能的实现方式中,所述方法还包括:根据所述第二服务器的服务等级协议(SLA)设定所述数据表的表分区的时间粒度;根据所述第二服务器的硬件配置信息设定所述数据表的表分区的分区大小,其中所述硬件配置信息至少包括磁盘读/写(I/O)性能。
[0012]通过采用该技术方案,可以实现基于第二服务器所提供的分析服务的SLA设定表分区的时间粒度,以及根据第二服务器自身的硬件资源来将表分区设定为合理的分区大小。
[0013]在一种可能的实现方式中,所述方法还包括:若所述最近表分区的时间信息与所述待转存数据的时间信息不属于同一时间粒度,确定所述最近表分区的时间信息与所述待转存数据的时间信息不匹配。
[0014]通过采用该技术方案,可以实现基于表分区的时间粒度来判断最近表分区的时间信息与待转存数据的时间信息是否匹配。
[0015]在一种可能的实现方式中,所述待转存数据的时间信息包括开始时间与结束时间,所述预设数据提取工具每次从所述第一服务器提取的所述待转存数据的数据量小于所述表分区的分区大小,且所述待转存数据的开始时间与结束时间属于同一时间粒度。
[0016]通过采用该技术方案,可以实现避免待转存数据无法存储至数据中新建的表分区或者已有的表分区。
[0017]在一种可能的实现方式中,所述方法还包括:若所述最近表分区的时间信息与所述待转存数据的时间信息匹配且所述最近表分区的剩余存储空间大于或等于所述待转存数据的数据量,将所述待转存数据存储至所述最近表分区。
[0018]通过采用该技术方案,可以实现针对每次提取的待转存数据,判断是在放在新建的表分区还是已有的表分区,使得表分区存储的数据尽可能接近该合理的分区大小,可最大程度降低系统I/O浪费。
[0019]在一种可能的实现方式中,所述待转存数据与所述最近表分区的时间信息均包括开始时间与结束时间,所述将所述待转存数据存储至所述最近表分区之后,还包括:若所述待转存数据的结束时间大于所述最近表分区的结束时间,将所述最近表分区的结束时间更新为所述待转存数据的结束时间。
[0020]通过采用该技术方案,可以实现根据待转存数据的结束时间更新最近表分区的结
束时间。
[0021]在一种可能的实现方式中,所述获取所述数据表的最近表分区的时间信息,包括:利用预设数据库查询语句获取所述数据表的最近表分区的开始时间与结束时间。
[0022]通过采用该技术方案,可以实现利用数据库查询语句获取数据表的最近表分区的时间信息。
[0023]在一种可能的实现方式中,在所述数据表中创建新的表分区,包括:基于所述待转存数据的时间信息在所述数据表中创建所述新的表分区。
[0024]通过采用该技术方案,可以实现基于待转存数据的时间信息在数据表中创建新的表分区,使得表分区的时间信息与待转存数据的时间信息相对应。
[0025]在本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据存储方法,应用于数据库,其特征在于,所述数据库包括至少一数据表,所述数据存储方法包括:响应于待转存数据的存储需求,确定所述数据库中与所述待转存数据对应的数据表;获取所述数据表的最近表分区的时间信息与剩余存储空间,及所述待转存数据的时间信息与数据量;及若所述最近表分区的时间信息与所述待转存数据的时间信息不匹配和/或所述最近表分区的剩余存储空间小于所述待转存数据的数据量,在所述数据表中创建新的表分区,并将所述待转存数据存储至新建的表分区。2.如权利要求1所述的数据存储方法,其特征在于,所述待转存数据包括数据属性,所述数据库中的每一数据表包括表属性,所述表属性用于指示所述数据表所能存储的数据的数据属性,所述确定所述数据库中与所述待转存数据对应的数据表,包括:根据所述待转存数据的数据属性及所述数据库中的每一所述数据表的表属性确定与所述待转存数据对应的数据表。3.如权利要求2所述的数据存储方法,其特征在于,所述待转存数据存储在第一服务器,所述数据库部署在第二服务器,所述方法还包括:利用预设数据提取工具从所述第一服务器提取所述待转存数据,并将所述待转存数据的数据属性发送给所述第二服务器。4.如权利要求3所述的数据存储方法,其特征在于,所述方法还包括:根据所述第二服务器的服务等级协议(SLA)设定所述数据表的表分区的时间粒度;根据所述第二服务器的硬件配置信息设定所述数据表的表分区的分区大小,其中所述硬件配置信息至少包括磁盘读/写(I/O)性能。5.如权利要求4所述的数据存储方法,其特征在于,所述方法包括:若所述最近表分区的时间信息与所述待转存数据的时间信息不属于同一时间粒度,确定所述最近表分区的时间信息与所述待转存数据的时间信息不匹配。6.如权利要求4所述的数据存储方法,其特征在于,所述待转存数据的时间信息包括开始时间与结束时间,所述预设数据提取工具每次从所述第一服务器提取的所述待转存数据的数据量小于所述表分区的分区大小,且所述待转存数据的开始时间与结束时间属于同一时间粒度。7.如权利要求1所述的数据存储方法,其特征在于,所述方法还包括:若所述最近表分区的时间信息与所述待转存数据的时间信息匹配且所述最近表分区的剩余存储空间大于或等于所述待转存数据的数据量,将所述待转存数据存储至所述最近表分区。8.如权利要求7所述的数据存储方法,其特征在于,所述待转存数据与所述最近表分区的时间信息均包括开始时间与结束时间,所述将所述待转存数据存储至所述最近表分区之后,还包括:若所述待转存数据的结束时间大于所述最近表分区的结束时间,将所述最近表分区的结束时间更新为所述待转存数据的结束时间。9.如权利要求1所述的数据存储方法,其特征在于,所述...

【专利技术属性】
技术研发人员:郝江
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1