掌桥专利:专业的专利平台
掌桥专利
首页

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

文献发布时间:2023-06-19 18:58:26


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

技术领域

本发明涉及存储领域,具体而言,涉及一种数据存储方法、装置、电子设备及计算机可读存储介质。

背景技术

随着信息技术的发展,人们对于海量数据的存储需求日趋迫切,且对于部分数据,例如安全设备的安全日志等必须留存一定时间,从数月到数年不等。因此,对于这些数据的存储需要有更大的存储空间。

对于服务器,由于有较多的硬盘盘位,并且可以使用磁盘阵列卡将多个硬盘合并起来使用,既能扩充存储空间,对于应用程序也是无感知的。但是对于诸如工控设备、各式家用电子设备这样的低成本设备,虽然可能存在多个硬盘盘位,但是却不能安装磁盘阵列卡这样昂贵的硬件资源。如果直接使用多块硬盘存储数据,应用程序需要知道哪些数据存储到哪块硬盘上,对于应用程序不能做到无感知。

发明内容

本发明的目的包括,例如,提供了一种数据存储方法、装置、电子设备及计算机可读存储介质,其能够在不提高硬件成本的基础上,既能使用多个存储单元进行数据存储,又能对应用程序无感知。

本发明的实施例可以这样实现:第一方面,本发明提供一种数据存储方法,应用于包括若干存储单元的存储装置,包括:确定目标存储单元;接收数据库创建请求,所述数据库创建请求包括数据库名称;根据所述数据库创建请求在所述目标存储单元中创建数据库;创建索引记录,所述索引记录包括索引名称、开始时间、结束时间、以及存储单元,记录所述数据库名称作为所述索引名称,记录创建所述数据库的时刻作为所述开始时刻,记录所述结束时间为空,记录所述存储单元为所述目标存储单元。

在一些实施例中,所述接收数据存储请求前,所述方法还包括:根据所述若干存储单元的存储空间占用率确定所述目标存储单元。

在一些实施例中,所述将所述存储对象存入目标存储单元后,所述方法还包括:判断所述目标存储单元的存储空间占用率是否大于预设阈值;若所述目标存储单元的存储空间占用率大于所述预设阈值,获取另一存储空间占用率小于所述预设阈值的存储单元作为新的目标存储单元。

在一些实施例中,所述获取另一存储空间占用率小于所述预设阈值的存储单元作为新的目标存储单元后,所述方法还包括:获取包括所述目标存储单元、且结束时间为空的所述索引记录作为目标索引记录;创建与所述目标索引记录一一对应的副本索引记录,记录所述副本索引记录的索引名称为所述目标索引记录的索引名称,记录所述副本索引记录的开始时刻为创建所述副本索引记录的时刻,记录所述副本索引记录的结束时间为空,记录所述副本索引记录的存储单元为所述新的目标存储单元。由于原本的目标存储单元占用率大于预设阈值,原本的目标存储单元无法继续进行数据的存储,因此获取索引记录中结束时间为空的索引记录作为目标索引记录,则目标索引记录所记载的数据库尚未结束数据的存入,在新的存储单元中创建副本索引记录,可以保证后续需要存入此数据库中的数据可以存入新的目标存储单元中。

在一些实施例中,所述创建与所述目标索引记录一一对应的副本索引记录后,所述方法还包括:记录所述目标索引记录的结束时刻为创建所述副本索引记录的时刻。记录目标索引记录的结束时刻为创建所述副本索引记录的时刻,标明目标索引记录对应的数据库在目标索引记录对应的存储单元中不再进行数据的存储,避免后续继续向原本的目标存储单元中存入数据。

在一些实施例中,所述获取另一存储空间占用率小于所述预设阈值的存储单元作为新的目标存储单元后,所述方法还包括:获取所述目标存储单元中的数据库表结构;将所述数据库表结构导入所述新的目标存储单元。获取原本的目标存储单元中的数据库表结构,并将所述数据库表结构导入所述新的目标存储单元,对于已经创建的数据库可以无需在新的目标存储单元中再次进行创建。

在一些实施例中,所述方法还包括:接收数据查询请求,所述数据查询请求包括第一数据库、查询开始时间、以及查询结束时间,所述查询开始时间为开始向所述第一数据库中存入数据的时间,所述查询结束时间为结束向所述第一数据库中存入数据的时间;根据所述第一数据库、查询开始时间、以及查询结束时间获取对应的索引记录作为查询索引记录;获取所述查询索引记录中的存储单元作为查询存储单元,从所述查询存储单元中获取所述第一数据库中存储的第一存储对象。

在一些实施例中,所述从所述查询存储单元中获取所述第一数据库中存储的数据,包括:所述查询存储单元数量为多个,根据所述开始时间先后顺序依次获取多个所述查询存储单元中存储的所述第一存储对象。

在一些实施例中,所述方法还包括:接收数据删除请求,所述数据删除请求包括第二数据库;根据所述第二数据库获取对应的索引记录作为删除查询索引记录;获取所述删除索引记录中的存储单元作为删除存储单元,从所述删除存储单元中删除所述第二数据库。

第二方面,本发明实施例提供了一种存储装置,包括:若干存储单元,所述若干存储单元用于存储数据;通信模块,所述通信模块用于接收数据库创建请求,所述数据库创建请求包括数据库名称和数据库表结构;控制模块,所述控制模块用于根据所述数据库表结构在所述目标存储单元中创建数据库,并创建索引记录,所述索引记录包括索引名称、开始时间、结束时间、以及存储单元,记录所述数据库名称作为所述索引名称,记录创建所述数据库的时刻作为所述开始时刻,记录所述结束时间为空,记录所述存储单元为所述目标存储单元;管理单元,所述管理单元用于确定所述目标存储单元。

第三方面,本发明实施例提供了一种电子设备,包括:至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如前述的数据存储方法。

第四方面,本发明实施例提供了一种计算机可读存储介质,存储有计算机程序,其特征在于,所述计算机程序被处理器执行实现如前述的数据存储方法。

与现有技术相比,本发明实施例所提供的数据存储方法、装置、电子设备及计算机可读存储介质中,在接收到数据库创建请求后,根据数据库创建请求在目标存储单元中创建数据库的同时、创建与数据库对应的索引记录,索引记录中包括索引名称、开始时间、结束时间和存储单元,将数据库创建请求中所包括的所述数据库名称作为本条索引记录的所述索引名称,将创建本条索引记录的时刻作为本条索引记录的开始时刻,将本条索引记录的所述结束时间暂时设置为空,将所述目标存储单元作为所述本条索引记录的存储单元,后续对存入数据库的存储对象进行增删改查等操作时可以根据索引记录查找到存储对象对应存储的数据库所在的存储单元,然后对存储单元内存储的数据库进行相应的存储对象的增删改查操作,从而实现多个存储单元共用的效果,且对于应用程序,由于索引记录创建在存储装置中,应用程序在进行存储对象的增删改查等操作时与单存储单元的存储设备并无不同,从而达到在不提高硬件成本的基础上,既能使用多个存储单元进行数据存储,又能对应用程序无感知的效果。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1为本发明实施例一所提供的数据存储方法的流程示意图;

图2为本发明实施例二所提供的数据存储方法的流程示意图;

图3为本发明实施例三所提供的数据存储装置的结构示意图;

图4为本发明实施例四所提供的电子设备的结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。

因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。

在本发明的描述中,需要说明的是,若出现术语“上”、“下”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,或者是该发明产品使用时惯常摆放的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。

此外,若出现术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。

需要说明的是,在不冲突的情况下,本发明的实施例中的特征可以相互结合。

本实施例提供了一种数据存储方法,应用于包括多个存储单元的存储装置,具体如图1所示,包括以下步骤:

步骤S101:确定目标存储单元。

具体的,在方面的一些实施例中,可以根据若干存储单元的存储空间占用率确定目标存储单元。具体可以为,获取存储空间占用率小于预设阈值的存储单元作为目标存储单元,预设阈值为预设常量,预设阈值为各个存储单元被允许存储的数据的最大值。

步骤S102:接收数据库创建请求,数据库创建请求包括数据库名称。

具体的,在本步骤中,存储装置接收应用程序发送的数据库创建请求,数据库创建请求中包括需要在存储装置中创建的数据库的名称。例如,在本发明的一种具体的实施例中,数据库创建请求例如可以是create table test1(id int,name char(30),logtimechar(30));其中,test1为数据库名称,id int,name char(30),logtime char(30)为数据库表结构。

步骤S103:根据数据库表结构在目标存储单元中创建数据库。

具体的,在本步骤中,在目标存储单元中创建表结构与数据库创建请求中的数据库表结构相同的数据库。

步骤S104:创建索引记录。

具体的,在本步骤中,索引记录包括索引名称、开始时间、结束时间、以及存储单元。在本实施例中,将数据库创建请求中所包括的数据库名称作为本条索引记录的索引名称,将创建本条索引记录的时刻作为本条索引记录的开始时刻,将本条索引记录的结束时间暂时设置为空,将目标存储单元作为本条索引记录的存储单元。

例如在本发明的一种具体的实施例中,数据库创建请求例如可以是create tabletest1(id int,name char(30),logtime char(30));此时创建的索引记录为test1 2022-10-20 2022-10-20NULL M1;其中,test1为数据库名称,第一个2022-10-20为索引记录创建时间,第二个2022-10-20为开始时间,NULL为结束时间,M1为目标存储单元。

与现有技术相比,本发明实施例一所提供的数据存储方法中,在接收到数据库创建请求后,根据数据库创建请求在目标存储单元中创建数据库的同时、创建与数据库对应的索引记录,索引记录中包括索引名称、开始时间、结束时间和存储单元,将数据库创建请求中所包括的数据库名称作为本条索引记录的索引名称,将创建本条索引记录的时刻作为本条索引记录的开始时刻,将本条索引记录的结束时间暂时设置为空,将目标存储单元作为本条索引记录的存储单元,后续对存入数据库的存储对象进行增删改查等操作时可以根据索引记录查找到存储对象对应存储的数据库所在的存储单元,然后对存储单元内存储的数据库进行相应的存储对象的增删改查操作,从而实现多个存储单元共用的效果,且对于应用程序,由于索引记录创建在存储装置中,应用程序在进行存储对象的增删改查等操作时与单存储单元的存储设备并无不同,从而达到在不提高硬件成本的基础上,既能使用多个存储单元进行数据存储,又能对应用程序无感知的效果。

本发明实施例二提供了一种数据存储方法,应用于包括多个存储单元的存储装置,具体如图2所示,包括以下步骤:

步骤S201:确定目标存储单元。

步骤S202:接收数据库创建请求,数据库创建请求包括数据库名称。

步骤S203:判断目标存储单元的存储空间占用率是否大于预设阈值,若否,执行步骤S205,若是,执行步骤S204。

在本步骤中,在根据数据库表结构在目标存储单元中创建数据库之前,先判断目标存储单元的占用率是否已经达到预设阈值,如果目标存储单元的占用率尚未达到预设阈值,则可以继续在目标存储单元中创建数据库,执行步骤S204;如果目标存储单元的占用率已经达到预设阈值,则当前目标存储单元中无法再创建数据库,此时执行步骤S205。

步骤S204:获取另一存储空间占用率小于预设阈值的存储单元作为新的目标存储单元。

具体的,在本步骤中,获取存储装置的多个存储单元中的另一个存储空间占用率小于预设阈值的存储单元作为新的目标存储单元。

在本发明的一些实施例中,在获取新的目标存储单元后,还获取原本的目标存储单元中的数据库表结构;将数据库表结构导入新的目标存储单元。获取原本的目标存储单元中的数据库表结构,并将数据库表结构导入新的目标存储单元,对于已经创建的数据库可以无需在新的目标存储单元中再次进行创建。

步骤S205:根据数据库表结构在目标存储单元中创建数据库。

可以理解的是,本发明实施例二中的步骤S201、S202、S205与实施例一中的步骤S101至步骤S103大致相同,具体可以参照前述实施例中的具体说明,在此不再赘述。

步骤S206:创建索引记录。

具体的,在本步骤中,如果原本的目标存储单元的存储空间占用率小于预设阈值,在原本的目标存储单元中创建数据库,则此时创建索引记录的步骤与实施例一中的步骤S104大致相同,具体可以参照前述实施例一中的具体说明,在此不再赘述。

如果原本的目标存储单元的存储空间占用率大于预设阈值,在新的目标存储单元中创建数据库,则此时创建索引记录时,索引记录的存储单元为新的目标存储单元。

此外,在本发明的一些实施例中,本步骤中还包括获取包括目标存储单元、且结束时间为空的索引记录作为目标索引记录;创建与目标索引记录一一对应的副本索引记录,记录副本索引记录的索引名称为目标索引记录的索引名称,记录副本索引记录的开始时刻为创建副本索引记录的时刻,记录副本索引记录的结束时间为空,记录副本索引记录的存储单元为新的目标存储单元。由于原本的目标存储单元占用率大于预设阈值,原本的目标存储单元无法继续进行数据的存储,因此获取索引记录中结束时间为空的索引记录作为目标索引记录,则目标索引记录所记载的数据库尚未结束数据的存入,在新的存储单元中创建副本索引记录,可以保证后续需要存入此数据库中的数据可以存入新的目标存储单元中。

进一步的,在本发明的一些实施例中,创建副本索引记录后,还记录目标索引记录的结束时刻为创建副本索引记录的时刻。记录目标索引记录的结束时刻为创建副本索引记录的时刻,标明目标索引记录对应的数据库在目标索引记录对应的存储单元中不再进行数据的存储,避免后续继续向原本的目标存储单元中存入数据。

在本发明的一些实施例中,对于数据的新增,存储装置接收应用程序发送的数据存储请求,数据存储请求中包括存储对象和需要存储的数据库。例如,在本发明的一种具体的实施例中,数据存储请求例如可以是insert into test1('id','name')values(1,'zhangsan','2022-10-21'),其中,test1为存储装置中的数据库名称,id和name为存储对象名称,1为存储对象数量,zhangsan为存储对象,2022-10-21为数据存储请求的发送时间。可以理解的是,前述仅为本发明一种具体的实施例中的数据存储请求的举例说明,并不构成限定,在本发明的其它实施例中,数据存储请求也可以是仅包括数据库名称和存储对象,而不包括存储对象名称、存储对象数量、数据存储请求的发送时间等参数,或者是包含存储对象名称、存储对象数量、数据存储请求中的部分参数,具体可以根据实际需要进行灵活的设置。

在本发明的一些实施例中,对于数据的查询,通过接收数据查询请求,数据查询请求包括第一数据库、查询开始时间、以及查询结束时间,查询开始时间为开始向第一数据库中存入数据的时间,查询结束时间为结束向第一数据库中存入数据的时间;根据第一数据库、查询开始时间、以及查询结束时间获取对应的索引记录作为查询索引记录;获取查询索引记录中的存储单元作为查询存储单元,从查询存储单元中获取第一数据库中存储的第一存储对象。例如,在本发明的一种实施例中,索引记录包括:

test1 2022-10-20 2022-10-20 2022-10-23M1;

test2 2022-10-21 2022-10-21 2022-10-23M1;

test3 2022-10-22 2022-10-22 2022-10-23M1;

test4 2022-10-22 2022-10-22 2022-10-23M1;

test1 2022-10-23 2022-10-23NULL M2;

test2 2022-10-23 2022-10-23NULL M2;

test3 2022-10-23 2022-10-23NULL M2;

test4 2022-10-23 2022-10-23NULL M2;

数据查询请求为select*from test2 where logtime>='2022-10-21'andlogtime<='2022-10-22';数据查询请求中的第一数据库即为test2,查询开始时间为2022-10-21,查询结束时间为2022-10-22,因此,获取的查询检索记录为test2 2022-10-212022-10-21 2022-10-23M1,此时从存储单元M1中获取test2数据库中的第一存储对象。

数据查询请求为select*from test2 where logtime>='2022-10-21'andlogtime<='2022-10-24'limit 100时,数据查询请求中的第一数据库即为test2,查询开始时间为2022-10-21,查询结束时间为2022-10-24,因此,获取的查询检索记录为test22022-10-21 2022-10-21 2022-10-23M1,test2 2022-10-23 2022-10-23NULL M2;此时查询存储单元数量为多个,则根据开始时间先后顺序依次获取多个查询存储单元中存储的第一存储对象,即先从存储单元M1中获取第一存储对象,后从存储单元M2中获取第一存储对象。当数据查询请求中包括请求数量上限(limit 100,即请求数量上限为100)时,如果从存储单元M1中获取的第一存储对象数量已经达到100,则不再从从存储单元M2中获取第一存储对象。

对于在本发明的一些实施例中,对于数据的删除,通过接收数据删除请求,数据删除请求包括第二数据库;根据第二数据库获取对应的索引记录作为删除查询索引记录;获取删除索引记录中的存储单元作为删除存储单元,从删除存储单元中删除第二数据库。例如,在本发明的一种实施例中,索引记录包括:

test1 2022-10-20 2022-10-20 2022-10-23M1;

test2 2022-10-21 2022-10-21 2022-10-23M1;

test3 2022-10-22 2022-10-22 2022-10-23M1;

test4 2022-10-22 2022-10-22 2022-10-23M1;

test1 2022-10-23 2022-10-23NULL M2;

test2 2022-10-23 2022-10-23NULL M2;

test3 2022-10-23 2022-10-23NULL M2;

test4 2022-10-23 2022-10-23NULL M2;

数据删除请求为drop table test3,则第二数据库为test3,删除索引记录即为test3 2022-10-22 2022-10-22 2022-10-23M1和test3 2022-10-23 2022-10-23NULL M2;删除存储单元即为存储单元M1和M2,从存储单元M1和M2中同时删除第二数据库test3。

与现有技术相比,本发明实施例所提供的数据存储方法在保留实施例一中的全部技术特征,具备实施例一的全部技术效果,此外,在本发明的实施例二中,通过对目标存储单元的占用率是否已经达到预设阈值进行判断,在目标存储单元的占用率已经达到预设阈值时自动切换存储单元,避免造成目标存储单元存储过多的数据,或者是数据存储出错的问题产生。

本发明实施例三提供了一种存储装置,如图3所示,包括:若干存储单元301,若干存储单元301用于存储数据;通信模块302,通信模块302用于接收数据库创建请求,数据库创建请求包括数据库名称和数据库表结构;控制模块303,控制模块303用于根据数据库表结构在目标存储单元中创建数据库,并创建索引记录,索引记录包括索引名称、开始时间、结束时间、以及存储单元,记录数据库名称作为索引名称,记录创建数据库的时刻作为开始时刻,记录结束时间为空,记录存储单元为目标存储单元;管理单元304,管理单元304用于确定目标存储单元。

与现有技术相比,本发明实施例三所提供的存储装置中,管理单元304确定目标存储单元后,通信模块302接收到数据库创建请求,控制模块303根据数据库创建请求在目标存储单元中创建数据库的同时、创建与数据库对应的索引记录,索引记录中包括索引名称、开始时间、结束时间和存储单元,将数据库创建请求中所包括的数据库名称作为本条索引记录的索引名称,将创建本条索引记录的时刻作为本条索引记录的开始时刻,将本条索引记录的结束时间暂时设置为空,将目标存储单元作为本条索引记录的存储单元,后续对存入数据库的存储对象进行增删改查等操作时可以根据索引记录查找到存储对象对应存储的数据库所在的存储单元,然后对存储单元内存储的数据库进行相应的存储对象的增删改查操作,从而实现多个存储单元共用的效果,且对于应用程序,由于索引记录创建在存储装置中,应用程序在进行存储对象的增删改查等操作时与单存储单元的存储设备并无不同,从而达到在不提高硬件成本的基础上,既能使用多个存储单元进行数据存储,又能对应用程序无感知的效果。

本发明实施例四涉及一种电子设备,如图4所示,包括:至少一个处理器401;以及,与至少一个处理器401通信连接的存储器402;其中,存储器402存储有可被至少一个处理器401执行的指令,指令被至少一个处理器401执行,以使至少一个处理器401能够执行上述各实施例中的方法。

其中,存储器和处理器采用总线方式连接,总线可以包括任意数量的互联的总线和桥,总线将一个或多个处理器和存储器的各种电路连接在一起。总线还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路连接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口在总线和收发机之间提供接口。收发机可以是一个元件,也可以是多个元件,比如多个接收器和发送器,提供用于在传输介质上与各种其他装置通信的单元。经处理器处理的数据通过天线在无线介质上进行传输,进一步,天线还接收数据并将数据传送给处理器。

处理器负责管理总线和通常的处理,还可以提供各种功能,包括定时,外围接口,电压调节、电源管理以及其他控制功能。而存储器可以被用于存储处理器在执行操作时所使用的数据。

本发明实施例五涉及一种计算机可读存储介质,存储有计算机程序。计算机程序被处理器执行时实现上述方法实施例。

即,本领域技术人员可以理解,实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动固态硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。

最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

相关技术
  • 一种元数据存储方法、装置、设备及计算机可读存储介质
  • 数据存储方法、装置和计算机可读存储介质
  • 一种数据存储方法、装置、设备及计算机可读存储介质
  • 一种浴室加热装置和用于控制浴室加热装置的方法、设备、电子设备及计算机可读存储介质
  • 模态框构建方法、装置、电子设备、计算机可读存储介质
  • 将数据存储到至少一个数据存储器和从至少一个数据存储器检索数据的方法、系统、使用方法、计算机程序和计算机可读介质
  • 数据存储方法和装置、数据查询方法和装置、数据结构、电子设备及计算机可读存储介质
技术分类

06120115758240