CN115470386A - 一种数据存储、数据检索方法、装置和电子设备 - Google Patents
一种数据存储、数据检索方法、装置和电子设备 Download PDFInfo
- Publication number
- CN115470386A CN115470386A CN202211189569.8A CN202211189569A CN115470386A CN 115470386 A CN115470386 A CN 115470386A CN 202211189569 A CN202211189569 A CN 202211189569A CN 115470386 A CN115470386 A CN 115470386A
- Authority
- CN
- China
- Prior art keywords
- data
- stored
- file
- specified
- storage space
- 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/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
- G06F16/9035—Filtering based on additional data, e.g. user or group profiles
-
- 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/901—Indexing; Data structures therefor; Storage structures
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例提供了一种数据存储、数据检索方法、装置和电子设备,所述方法包括:确定待存储数据;确定待存储数据的数据类别,并对属于同一数据类别的待存储数据进行连续排列;按照待存储数据的排列顺序,依次将待存储数据以第一数据文件的形式存储至指定存储空间,直至未存储的待存储数据的数据量小于指定数据量,其中,每个第一数据文件的数据量为指定数据量。应用本发明实施例提供的数据存储方法,可以提升数据检索的效率。
Description
技术领域
本发明涉及数据检索技术领域,特别是涉及一种数据存储、数据检索方法、装置和电子设备。
背景技术
在大数据时代,数据库中存储有海量数据,从而,用户可以针对数据库中所存储的数据进行数据检索,以得到自身所需的数据。
相关技术中,在数据库中进行数据检索的方式通常为:对数据库中所存储的数据进行遍历,以判断所遍历到的数据是否满足数据筛选条件,从而,可以作为与数据检索请求相匹配的目标数据。
然而,在上述相关技术中,由于数据库中往往存储有大量的数据,因此,对数据库中的各个数据进行遍历会耗费大量的时间,导致数据检索效率较低,尤其是在数据检索任务量较大的情况下,数据检索效率较低的情况更为明显。
发明内容
本发明实施例的目的在于提供一种数据存储、数据检索方法、装置和电子设备,以提升数据检索的效率。具体技术方案如下:
第一方面,本发明实施例提供了一种数据存储方法,所述方法包括:
确定待存储数据;
确定所述待存储数据的数据类别,并对属于同一数据类别的所述待存储数据进行连续排列;
按照所述待存储数据的排列顺序,依次将待存储数据以第一数据文件的形式存储至指定存储空间,直至未存储的待存储数据的数据量小于指定数据量,其中,每个所述第一数据文件的数据量为所述指定数据量。
可选的,一种具体实现方式中,所述方法还包括:
合并所述指定存储空间内所存储的满足预设合并条件的指定文件,得到目标文件;
其中,所述指定文件包括:所述第一数据文件,或者,所存储的全部待存储数据属于同一数据类别的第一数据文件;所述预设合并条件包括以下条件中的至少一个:预设合并周期内存储的、数量达到预设数值和所包括的待存储数据的数据量之和达到预设数据量。
可选的,一种具体实现方式中,所述按照所述待存储数据的排列顺序,依次将待存储数据以第一数据文件的形式存储至指定存储空间,直至未存储的待存储数据的数据量小于指定数据量,包括:
针对每个数据类别,按照属于该数据类别的待存储数据的排列顺序,将属于该数据类别的待存储数据以所述第一数据文件的形式存储至指定存储空间,直至未存储的属于该数据类别的待存储数据的数据量小于所述指定数据量。
可选的,一种具体实现方式中,所述方法还包括:
若存在未存储的待存储数据且所述未存储的待存储数据的数据量小于所述指定数据量,则将所述未存储的待存储数据以第二数据文件的形式存储至所述指定存储空间。
可选的,一种具体实现方式中,
在所述按照所述待存储数据的排列顺序,依次将待存储数据以第一数据文件的形式存储至指定存储空间,直至未存储的待存储数据的数据量小于指定数据量之前,所述方法还包括:
确定所述指定存储空间中数据量小于所述指定数据量的数据文件,作为待填充文件;
确定所述待填充文件中的数据的数据类别,作为填充数据类别;
将所述待存储数据中数据类别与所述填充数据类别相同的待存储数据存储至所述待填充文件,直至满足预设多个条件中的任一条件;其中,所述多个条件包括第一条件和第二条件,所述第一条件为:所述待填充文件中的数据的数据量达到所述指定数据量,所述第二条件为:所述待存储数据中不存在数据类别与所述填充数据类别相同的待存储数据;
所述按照所述待存储数据的排列顺序,依次将待存储数据以第一数据文件的形式存储至指定存储空间,直至未存储的待存储数据的数据量小于指定数据量,包括:
针对未存储至所述待填充文件中的剩余待存储数据,按照所述剩余待存储数据的排列顺序,依次将待存储数据以所述第一数据文件的形式存储至指定存储空间,直至未存储的待存储数据的数据量小于所述指定数据量。
可选的,一种具体实现方式中,所述指定存储空间为具有PCIE接口的SSD。
第二方面,本发明实施例提供了一种数据检索方法,所述方法包括:
获取数据检索请求,并确定所述数据检索请求所请求的数据的目标数据类别;
在目标存储空间,确定存储有属于所述目标数据类别的数据的目标文件,其中,所述目标存储空间中的数据是按照上述第一方面提供的任一数据存储的方法进行存储的;
基于所述数据检索请求所指示的检索条件,从所述目标文件中查找与所述检索请求相匹配的目标数据。
第三方面,本发明实施例提供了一种数据存储装置,所述装置包括:
数据确定模块,用于确定待存储数据;
数据排列模块,用于确定所述待存储数据的数据类别,并对属于同一数据类别的所述待存储数据进行连续排列;
第一数据存储模块,用于按照所述待存储数据的排列顺序,依次将待存储数据以第一数据文件的形式存储至指定存储空间,直至未存储的待存储数据的数据量小于指定数据量,其中,每个所述第一数据文件的数据量为所述指定数据量。
可选的,一种具体实现方式中,所述装置还包括:
文件合并模块,用于合并所述指定存储空间内所存储的满足预设合并条件的指定文件,得到目标文件;其中,所述指定文件包括:所述第一数据文件,或者,所存储的全部待存储数据属于同一数据类别的第一数据文件;所述预设合并条件包括以下条件中的至少一个:预设合并周期内存储的、数量达到预设数值和所包括的待存储数据的数据量之和达到预设数据量。
可选的,一种具体实现方式中,所述第一数据存储模块具体用于:
针对每个数据类别,按照属于该数据类别的待存储数据的排列顺序,将每指定数据量的属于该数据类别的待存储数据以所述第一数据文件的形式存储至指定存储空间,直至未存储的属于该数据类别的待存储数据的数据量小于所述指定数据量。
可选的,一种具体实现方式中,所述装置还包括:
第二数据存储模块,用于在存在未存储的待存储数据且所述未存储的待存储数据的数据量小于所述指定数据量时,将所述未存储的待存储数据以第二数据文件的形式存储至所述指定存储空间。
可选的,一种具体实现方式中,所述装置还包括:
文件确定模块,用于确定所述指定存储空间中数据量小于所述指定数据量的数据文件,作为待填充文件;
类别确定模块,用于确定所述待填充文件中的数据的数据类别,作为填充数据类别;
文件填充模块,用于将所述待存储数据中数据类别与所述填充数据类别相同的待存储数据存储至所述待填充文件,直至满足预设多个条件中的任一条件;其中,所述多个条件包括第一条件和第二条件,所述第一条件为:所述待填充文件中的数据的数据量达到所述指定数据量,所述第二条件为:所述待存储数据中不存在数据类别与所述填充数据类别相同的待存储数据。
所述第一数据存储模块具体用于:
针对未存储至所述待填充文件中的剩余待存储数据,按照所述剩余待存储数据的排列顺序,依次将待存储数据以所述第一数据文件的形式存储至指定存储空间,直至未存储的待存储数据的数据量小于所述指定数据量。
可选的,一种具体实现方式中,所述指定存储空间为具有PCIE接口的SSD。
第四方面,本发明实施例提供了一种数据检索装置,所述装置包括:
请求获取模块,用于获取数据检索请求,并确定所述数据检索请求所请求的数据的目标数据类别;
目标检索模块,用于在目标存储空间,确定存储有属于所述目标数据类别的数据的目标文件,其中,所述目标存储空间中的数据是按照上述第一方面提供的任一数据存储的方法进行存储的;
数据检索模块,用于基于所述数据检索请求所指示的检索条件,从所述目标文件中查找与所述检索请求相匹配的目标数据。
第五方面,本发明实施例提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现上述第一方面提供的任一数据存储的方法步骤和/或上述第二方面提供的数据检索的方法步骤。
第六方面,本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面提供的任一数据存储的方法步骤和/或上述第二方面提供的数据检索的方法步骤。
第七方面,本发明实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面提供的任一数据存储的方法步骤和/或上述第二方面提供的数据检索的方法步骤。
本发明实施例有益效果:
以上可见,应用本发明实施例提供的方案,在数据存储的过程中,可以首先确定待存储数据,然后确定待存储数据的数据类别,并对属于同一数据类别的待存储数据进行连续排列,这样,在排列完成后,相同数据类型的多个待存储数据是连续的,且该多个待存储数据中,每个待存储数据可以与至少一个与自身数据类别相同的其他待存储数据相邻;进而,便可以按照待存储数据的排列顺序,依次将待存储数据以第一数据文件的形式存储至指定存储空间,直至未存储的待存储数据的数据量小于指定数据量。其中,每个第一数据文件的数据量为指定数据量,每个第一数据文件中数据类别相同的待存储数据是连续的。
相应的,在进行数据检索时,在获取到数据检索请求后,可以先确定该检索请求所请求的数据的目标数据类别;然后,在上述指定存储空间,确定存储有属于该目标数据类别的数据的目标文件;进而,基于该数据检索请求所指示的检索条件,从目标文件中查找与上述检索请求相匹配的目标数据。
基于此,应用本发明实施例提供的数据存储方法进行数据存储后,在数据检索过程中,由于属于待检索的目标数据的目标数据类别的数据是集中存储在指定存储空间中的部分文件中的,因此,可以降低指定存储空间中存储有属于目标数据类别的数据的文件的数量;进而,可以对存储有属于目标数据类别的数据的文件中的数据进行对比,而无需对全部文件中的全部数据进行对比,因此,可以降低数据检索过程中,所对比的数据的数据量以及I/O(Input/Output,输入/输出)次数。并且,当存储有属于目标数据类别的数据的文件中存储有不止一个数据类别的数据时,由于该文件中属于同一数据类别的数据是连续的,因此,在对该文件中的数据进行检索时,可以按照该文件中属于目标数据类别的数据的排列顺序,对该文件中属于目标数据类别的数据进行顺序对比,而无需对比目标文件中的全部数据,从而,可以进一步降低数据检索过程中,所对比的数据的数据量。进而,由于数据检索过程中,数据对比和I/O都会耗费一定时间,而在本发明实施例中,上述数据存储方法可以减少数据检索过程中所检索的数据的数据量以及I/O次数。因此,数据检索过程中,可以缩短数据对比的时间,提高数据检索的效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的实施例。
图1为本发明实施例提供的数据存储方法的第一种流程示意图;
图2为本发明实施例提供的数据存储方法的第二种流程示意图;
图3(a)为一种具体实施例中,获取到的各个待存储数据的示意图;
图3(b)为对图3(a)中的各个待存储数据进行数据类别确定的示意图;
图3(c)为对图3(b)中的各个数据类别的待存储数据进行连续排列的示意图;
图3(d)为对图3(c)中,连续排列后的各个数据类别的待存储数据分别以数据文件的形式进行存储的示意图;
图3(e)为对图3(d)中的各个数据文件进行合并的示意图;
图4为本发明实施例提供的数据存储方法的第三种流程示意图;
图5为本发明实施例提供的数据存储方法的第四种流程示意图;
图6为本发明实施例提供的数据检索方法的一种流程示意图;
图7为本发明实施例提供的一种数据存储装置的结构示意图;
图8为本发明实施例提供的一种数据检索装置的结构示意图;
图9为本发明实施例提供的一种电子设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员基于本申请所获得的所有其他实施例,都属于本发明保护的范围。
相关技术中,在数据库中进行数据检索的方式通常为:对数据库中所存储的数据进行遍历,以判断所遍历到的数据是否满足数据筛选条件,从而,可以作为与数据检索请求相匹配的目标数据。然而,在上述相关技术中,由于数据库中往往存储有大量的数据,因此,对数据库中的各个数据进行遍历会耗费大量的时间,导致数据检索效率较低。
为了解决上述问题,本发明实施例提供了一种数据存储方法。
需要说明的是,该方法可以应用于各种服务于数据检索需求的数据存储场景,并且,所存储的对象可以是图像、文本、视频或者音频等各类数据,也即本发明实施例中的待存储数据可以为图像数据、文本数据、音频数据或者视频数据等各类数据。例如,存储监控视频以便于后续查看所监控区域发生的各类事件,存储道路交通录像以便于后续查看交通事故的发生原因等。对此,本发明实施例不对本发明实施例的应用场景和待存储数据的数据类型进行具体限定。
此外,本发明实施例的执行主体可以是各类可以对数据执行存储操作的电子设备,例如,手机、笔记本电脑、台式电脑;其中,该电子设备可以是独立的电子设备,也可以是由多台电子设备构成的设备集群,对此,本发明实施例不做具体限定,以下简称电子设备。
其中,本发明实施例提供的一种数据存储方法,可以包括如下步骤:
确定待存储数据;
确定所述待存储数据的数据类别,并对属于同一数据类别的所述待存储数据进行连续排列;
按照所述待存储数据的排列顺序,依次将待存储数据以第一数据文件的形式存储至指定存储空间,直至未存储的待存储数据的数据量小于指定数据量,其中,每个所述第一数据文件的数据量为所述指定数据量。
以上可见,应用本发明实施例提供的方案,在数据存储的过程中,可以首先确定待存储数据,然后确定待存储数据的数据类别,并对属于同一数据类别的待存储数据进行连续排列,这样,在排列完成后,相同数据类型的多个待存储数据是连续的,且该多个待存储数据中,每个待存储数据可以与至少一个与自身数据类别相同的其他待存储数据相邻;进而,便可以按照待存储数据的排列顺序,依次将待存储数据以第一数据文件的形式存储至指定存储空间,直至未存储的待存储数据的数据量小于指定数据量。其中,每个第一数据文件的数据量为指定数据量,每个第一数据文件中数据类别相同的待存储数据是连续的。
基于此,应用本发明实施例提供的数据存储方法进行数据存储后,在数据检索过程中,由于属于待检索的目标数据的目标数据类别的数据是集中存储在指定存储空间中的部分数据文件中的,因此,可以降低指定存储空间中存储有属于目标数据类别的数据的文件的数量;进而,可以对存储有属于目标数据类别的数据的文件中的数据进行对比,而无需对全部文件中的全部数据进行对比,因此,可以降低数据检索过程中,所对比的数据的数据量以及I/O次数。并且,当存储有属于目标数据类别的数据的文件中存储有不止一个数据类别的数据时,由于该文件中属于同一数据类别的数据是连续的,因此,在对该文件中的数据进行检索时,可以按照该文件中属于目标数据类别的数据的排列顺序,对该文件中属于目标数据类别的数据进行顺序对比,而无需对比目标文件中的全部数据,从而,可以进一步降低数据检索过程中,所对比的数据的数据量。进而,由于数据检索过程中,数据对比和I/O都会耗费一定时间,而在本发明实施例中,上述数据存储方法可以减少数据检索过程中所检索的数据的数据量以及I/O次数。因此,数据检索过程中,可以缩短数据对比的时间,提高数据检索的效率。
下面,结合附图,对本发明实施例提供的一种数据存储方法进行具体说明。
图1为本发明实施例提供的数据存储方法的第一种流程示意图,如图1所示,该方法可以包括如下步骤S101-S103。
S101:确定待存储数据。
在进行数据存储时,需要先确定待存储数据。其中,可以通过多种方式确定待存储数据,对此,本发明实施例不做具体限定。
例如,可以将实时获取的数据确定为待存储数据。
又例如,可以将之前获取的且未存储数据确定为待存储数据。示例性的,电子设备之前获取的数据由于设备故障等原因并未存储,则在设备恢复正常后,可以将该部分数据确定为待存储数据。
还例如,在之前的数据存储过程中,可能有一部分数据并未存储,则在实时获取数据之后,可以将实时获取的数据和上述未存储的数据均确定为待存储数据。
其中,待存储数据的数据来源可以是各种可以产生数据或传输数据的电子设备。
可选的,待存储数据可以是电子设备接收到的其它设备发送的数据。例如,电子设备可以接收监控设备发送的视频数据,然后将接收到的视频数据确定为待存储数据。
可选的,电子设备也可以将其自身产生的数据确定为待存储数据。例如,当电子设备为具有数据存储功能的监控设备时,该电子设备可以将其自身采集的视频数据确定为待存储数据。
S102:确定待存储数据的数据类别,并对属于同一数据类别的待存储数据进行连续排列。
电子设备可以预先获取待存储数据的分类方式,从而,在确定待存储数据之后,可以首先根据上述分类方式对待存储数据进行分类,以确定每个待存储数据的数据类别。
其中,上述分类方式可以根据实际应用的需求从各个划分维度确定数据类别。
例如,可以将待存储数据划分为视频数据、图片数据、文本数据、音频数据等。
又例如,可以按照待存储数据的数据来源,将同一数据来源的待存储数据划分为同一数据类别,而将不同数据来源的待存储数据划分为不同数据类别。
进而,在确定待存储数据的数据类别之后,便可以对属于同一数据类别的待存储数据进行连续排列,从而,将数据类别相同的待存储数据依次排列在一起。这样,在排列完成后,相同数据类型的多个待存储数据是连续的,且该多个待存储数据中,每个待存储数据可以与至少一个与自身数据类别相同的其他待存储数据相邻。
示例性的,电子设备可以实时各个待存储数据,且各个待存储数据的获取顺序如下:
图片a、视频b、音频c、音频d、图片e和音频f;
进而,在按照图片、视频和音频的分类方式,确定上述各个待存储数据的数据类别后,可以对属于同一数据类别的待存储数据进行连续排列,则得到如下排列顺序:图片a、图片e、视频b、音频c、音频d、音频f。
通常,电子设备可以将待存储到指定存储空间的待存储数据,缓存在自身的内存中。
可选的,在确定各个待存储数据的数据类别时,可以随之将数据类别相同的待存储数据,缓存到同一数据分片中。
其中,如果各个待存储数据的数据类别的总数不大于电子设备的内存中的数据分片,则可以将属于每个数据类别的待存储数据单独缓存的一个数据分片中。
相应的,如果各个待存储数据的数据类别的总数大于电子设备的内存中的数据分片,则每个数据分片可以缓存多个数据类别的待存储数据,进而,针对每一数据分片,便可以通过对该数据分片所缓存的待存储数据中,属于同一数据类别的待存储数据进行连续排列,来实现将数据类别相同的待存储数据依次排列在一起。
S103:按照待存储数据的排列顺序,依次将待存储数据以第一数据文件的形式存储至指定存储空间,直至未存储的待存储数据的数据量小于指定数据量。
其中,每个第一数据文件的数据量为指定数据量。
在对属于同一数据类别的待存储数据进行连续排列后,为了可以使同一数据类别的数据更集中、更有序的存放,可以将同一数据类别的待存储数据尽量存储在一个文件中。
因此,可以按照待存储数据的排列顺序,依次将待存储数据以第一数据文件的形式存储至指定存储空间,直至未存储的待存储数据的数据量小于指定数据量,且每个第一数据文件的数据量为指定数据量。
也就是说,可以从未存储的第一个待存储数据开始,依次将各个待存储数据确定为属于同一个第一数据文件的数据,直至所确定的待存储数据的数据量达到指定数据量,则可以将上述所确定的属于同一个第一数据文件的指定数据量的待存储数据,以第一数据文件的形式存储到指定存储空间中,依此循环,在指定存储空间中依次存储各个第一数据文件,直至未存储的待存储数据的数据量小于指定数据量。
其中,由于各个待存储数据的数据量可能不是上述指定数据量的整数倍,因此,可能并不是所有待存储数据均可以以数据量为上述指定数据量的第一数据文件的形式存储到指定存储空间,从而,在上述存储过程中,可能存在数据量小于指定数据量的待存储数据未被存储到指定存储空间。
示例性的,存在属于数据类别A的待存储数据A1、A2和A3、属于数据类型B的待存储数据B1和B2,以及属于数据类别C的待存储数据C1和C2,并且,在对属于同一数据类别的待存储数据进行连续排列后,上述待存储数据的排列顺序为:A1、A2、A3、B1、B2、C1和C2,而A1、A2、A3、B1、B2、C1和C2的数据量均相同。
若将3个待存储数据的数据量作为指定数据量,则按照上述排列顺序,先依次读取A1、A2、A3,从而,将A1、A2和A3以一个第一数据文件的形式存储至指定存储空间,然后,依次读取B1、B2和C1,并将B1、B2和C1以一个第一数据文件的形式存储至指定存储空间;之后,由于只有1个待存储数据C2还未被存储,由于C2的数据量小于指定数据量,则数据存储过程至此结束,存在一个未存储的待存储数据C2。
其中,由于待存储数据中,每个数据类别的数据可能不是上述指定数据量的整数倍,因此,应用上述存储过程时,在指定存储空间中存储的第一数据文件中,可能存在部分第一数据文件包括至少两个数据类别的待存储数据。从而,为了将相同数据类别的数据放到同一第一数据文件中,使每个第一数据文件中可以只包括一个数据类别的数据,在对属于同一数据类别的待存储数据进行连续排列后,还可以对每个数据类别的待存储数据分别存储。
可选的,一种具体实现方式中,上述步骤S103可以包括如下步骤一:
步骤一:针对每个数据类别,按照属于该数据类别的待存储数据的排列顺序,将属于该数据类别的待存储数据以第一数据文件的形式存储至指定存储空间,直至未存储的属于该数据类别的待存储数据的数据量小于指定数据量。
在本具体实现方式中,在对属于同一数据类别的待存储数据进行连续排列后,可以针对每个数据类别,按照属于该数据类别的待存储数据的排列顺序,将属于该数据类别的待存储数据以第一数据文件的形式存储至指定存储空间,直至未存储的属于该数据类别的待存储数据的数据量小于指定数据量。
其中,上述针对每个数据类别的待存储数据的存储过程,与上述步骤S103的数据存储过程相似,在此不再赘述。
同样的,由于每个数据类别的待存储数据可能不是上述指定数据量的整数倍,因此,可能并不是该数据类别的所有待存储数据均可以以数据量为上述指定数据量的第一数据文件的形式存储到指定存储空间,从而,在上述存储过程中,可能存在数据量小于指定数据量的该数据类别的待存储数据未被存储到指定存储空间。
示例性的,存在属于数据类别A的待存储数据A1、A2和A3、属于数据类型B的待存储数据B1和B2,以及属于数据类别C的待存储数据C1和C2,并且,在对属于同一数据类别的待存储数据进行连续排列后,上述待存储数据的排列顺序为:A1、A2、A3、B1、B2、C1和C2,而A1、A2、A3、B1、B2、C1和C2的数据量均相同。
若将3个待存储数据的数据量作为指定数据量,则按照上述排列顺序,先依次读取A1、A2、A3,从而,将A1、A2和A3以一个第一数据文件的形式存储至指定存储空间,之后,由于B1和B2的数据量之和小于指定数据量,且C1和C2的数据量之和同样小于指定数据量,则数据存储过程至此结束,存在未存储的待存储数据B1、B2、C1和C2。
其中,上述指定数据量可以由本领域技术人员根据实际情况进行确定,对此,本发明实施例不进行具体限定。
上述指定存储空间可以是各类可以存储数据的硬件,例如,各种硬盘、软盘、光盘、闪存、U盘(USB flash drive)、MMC卡(Multimedia Card,多媒体卡)、MS卡(Memory Stick,记忆棒)等,此外,上述指定存储空间也可以是云存储空间,对此,本发明实施例不做具体限定。其中,上述USB是UniversalSerialBus(通用串行总线)的简写。
可选的,一种具体实现方式中,指定存储空间可以为具有PCIE(PeripheralComponent Interconnect Express,高速串行计算机扩展总线标准)接口的SSD(SolidState Disk,固态硬盘)。
在本具体实现方式中,相较于其他硬盘,具有PCIE接口的SSD可以有更好的I/O性能,从而,将具有PCIE接口的SSD作为指定存储空间,可以进一步提升数据检索过程中的数据读写效率,进而,进一步提高数据检索效率。
如前所述,当各个待存储数据中,属于某个数据类别的待存储数据的数据量大于上述指定数据量时,那么,指定存储空间中可以存在多个存储有该数据类别的待存储数据的第一数据文件。也就是说,针对每个数据类别,指定存储空间中可能存在多个存储有该类别数据的第一数据文件,因此,为了进一步减少检索过程中的I/O过程,可以对第一数据文件进行合并,以将相同数据类型的待存储数据尽量集中到数量较少的文件中。
可选的,一种具体实现方式中,如图2所示,本发明实施例提供的数据存储方法还可以包括如下步骤S201。
S201:合并指定存储空间内所存储的满足预设合并条件的指定文件,得到目标文件。
其中,指定文件包括:第一数据文件,或者,所存储的全部待存储数据属于同一数据类别的第一数据文件;预设合并条件包括以下条件中的至少一个:预设合并周期内存储的、数量达到预设数值和所包括的待存储数据的数据量之和达到预设数据量。
在本具体实现方式中,在按照待存储数据的排列顺序,依次将待存储数据以第一数据文件的形式存储至指定存储空间的过程中,所得到的各个第一数据文件是依次顺序存储到指定存储空间中的,从而,便可以合并指定存储空间内所存储的满足预设合并条件的指定文件,得到目标文件。
其中,在合并过程中,针对每两个存储时间相邻的第一数据文件,在合并上述两个存储时间相邻的第一数据文件时,存储时间在前的第一数据文件中的最后一个待存储数据与存储时间在后的第一数据文件中的第一个待存储数据相邻,且存储时间在前的第一数据文件中的最后一个待存储数据位于存储时间在后的第一数据文件中的第一个待存储数据相邻之前。
这样,由于每个第一数据文件中同一数据类型的待存储数据是连续排列的,而同样的,针对每两个存储时间相邻的第一数据文件,在未存储时,存储时间在前的第一数据文件中的最后一个待存储数据与存储时间在后的第一数据文件中的第一个待存储数据相邻,且存储时间在前的第一数据文件中的最后一个待存储数据位于存储时间在后的第一数据文件中的第一个待存储数据相邻之前,那么,在将上述两个存储时间相邻的第一数据文件合并之后,合并后的文件中,属于上述两个存储时间相邻的第一数据文件的待存储数据的排列顺序,与未存储时,该两个存储时间相邻的第一数据文件的待存储数据的排列顺序相同。
基于此,由于在对属于同一数据类别的待存储数据进行连续排列之后,相同数据类型的多个待存储数据是连续的,且该多个待存储数据中,每个待存储数据可以与至少一个与自身数据类别相同的其他待存储数据相邻,因此,在对指定文件进行合并,得到目标文件后,所得到的目标文件中,相同数据类型的多个待存储数据是连续的,且该多个待存储数据中,每个待存储数据可以与至少一个与自身数据类别相同的其他待存储数据相邻。
可选的,上述指定文件可以是所存储的各个第一数据文件,从而,可以合并在预设合并周期内存储至指定存储空间内的第一数据文件,得到目标文件。
例如,上述预设合并周期为1天时,可以将2022年2月22日0:00-24:00内存储至指定存储空间内的第一数据文件进行合并,得到一个目标文件。其中,该目标文件包含2022年2月22日0:00-24:00内存储至指定存储空间内的第一数据文件所包含的全部数据。
可选的,上述指定文件可以是所存储的各个第一数据文件,从而,可以在指定存储空间里所存储的第一数据文件的数量每达到预设数值时,对该预设数值个第一数据文件进行合并,得到目标文件。
例如,指定存储空间里所存储的第一数据文件的数量每达到10个时,将该10个第一数据文件进行合并,得到一个目标文件。其中,该目标文件包含该10个第一数据文件所包含的全部数据。
可选的,上述指定文件可以是所存储的各个第一数据文件,从而,可以在指定存储空间里所存储的第一数据文件所包括的待存储数据的数据量之和达到预设数据量时,对所包括的待存储数据的数据量之和达到预设数据量的第一数据文件进行合并,得到目标文件。
可选的,上述指定文件可以是所存储的全部待存储数据属于同一数据类别的第一数据文件,从而,可以合并在预设合并周期内存储至指定存储空间内的所存储的全部待存储数据属于同一数据类别的第一数据文件,得到目标文件。
可选的,上述指定文件可以是所存储的全部待存储数据属于同一数据类别的第一数据文件,从而,可以在指定存储空间里所存储的全部待存储数据属于同一数据类别的第一数据文件的数量每达到预设数值时,对预设数值个所存储的全部待存储数据属于同一数据类别的第一数据文件进行合并,得到目标文件。
例如,可以在指定存储空间里所存储的全部待存储数据属于A类别的第一数据文件的数量达到10个时,将这10个第一数据文件进行合并,得到一个只存储有A类别数据的目标文件。其中,该目标文件包含该10个第一数据文件所包含的全部A类别数据。
可选的,上述指定文件可以是所存储的全部待存储数据属于同一数据类别的第一数据文件,从而,可以在指定存储空间里所存储的全部待存储数据属于同一数据类别的第一数据文件所包括的待存储数据的数据量之和达到预设数据量时,对所包括的待存储数据的数据量之和达到预设数据量的所存储的全部待存储数据属于同一数据类别的第一数据文件进行合并,得到目标文件。
为了便于理解上述本发明实施例提供的一种数据存储方法,可以通过图3(a)-图3(e)所示的示意图,对上述本发明实施例提供的一种数据存储方法进行举例说明。
环节1:如图3(a)所示,可以获取各个待存储数据A1-A4、B1-B4、C1-C4、D1-D4、E1-E4,以及F1-F4;
环节2:如图3(b)所示,按照数据类别A、B、C和D的方式,对上述各个待存储数据进行分类,并将每个数据类别的待存储数据分别缓存到不同的数据分片中;
环节3:如图3(c)所示,对每个数据分片中所缓存的数据类别进行连续排列;
环节4:如图3(d)所示,针对每个数据分片,将该数据分片中连续排列后的各个待存储数据以第一数据文件的形式存储到指定存储空间中;其中,n=4。
环节5:如图3(e)所示,对指定存储空间中,每连续存储的3个第一数据文件进行合并,得到目标文件;其中,标注有A+B+C的目标文件包括:A1-A4、B1-B4,以及C1-C4,标注有D+E+F的目标文件包括:D1-D4、E1-E4,以及F1-F4。
基于此,应用本发明实施例提供的数据存储方法进行数据存储后,在数据检索过程中,由于属于待检索的目标数据的目标数据类别的数据是集中存储在指定存储空间中的部分数据文件中的,因此,可以降低指定存储空间中存储有属于目标数据类别的数据的文件的数量;进而,可以对存储有属于目标数据类别的数据的文件中的数据进行对比,而无需对全部文件中的全部数据进行对比,因此,可以降低数据检索过程中,所对比的数据的数据量以及I/O次数。并且,当存储有属于目标数据类别的数据的文件中存储有不止一个数据类别的数据时,由于该文件中属于同一数据类别的数据是连续的,因此,在对该文件中的数据进行检索时,可以按照该文件中属于目标数据类别的数据的排列顺序,对该文件中属于目标数据类别的数据进行顺序对比,而无需对比目标文件中的全部数据,从而,可以进一步降低数据检索过程中,所对比的数据的数据量。进而,由于数据检索过程中,数据对比和I/O都会耗费一定时间,而在本发明实施例中,上述数据存储方法可以减少数据检索过程中所检索的数据的数据量以及I/O次数。因此,数据检索过程中,可以缩短数据对比的时间,提高数据检索的效率。
如上述各个具体实现方式所述,在进行数据存储后,可能会存在部分待存储数据由于没有达到指定数据量而未被存储,从而继续存放在内存中的情况,为了节省电子设备的内存,也可以对这些数据进行存储,从而释放内存空间。
可选的,一种具体实现方式中,如图4所示,本发明实施例提供的数据存储方法还可以包括如下步骤S401。
S401:若存在未存储的待存储数据且未存储的待存储数据的数据量小于指定数据量,则将未存储的待存储数据以第二数据文件的形式存储至指定存储空间。
对于所存在的未存储且数据量小于指定数据量的待存储数据,可以将上述未存储的待存储数据以第二数据文件的形式存储至指定存储空间,从而,每次数据存储后,内存空间中可以不会剩余未存储数据,从而可以节省电子设备的内存。
另外,若存在未存储的待存储数据,那么,在指定存储空间检索数据时,将无法对比上述未存储的待存储数据,从而,可能导致无法找到所检索的目标数据,因此,在每次数据存储时,未存储且数据量小于指定数据量的待存储数据以第二数据文件的形式存储至指定存储空间,还可以提高检索结果的准确性与实时性。
在如图4所示的具体实现方式的基础上,在存在未存储的待存储数据且未存储的待存储数据的数据量小于指定数据量的情况下,将数据量小于指定数据量的待存储数据以第二数据文件的形式存储至指定存储空间,虽然可以节省内存空间且提高数据检索结果的准确性与实时性,但对于相同数据量的数据,在部分数据文件的数据量小于指定数据量的情况下,可能会导致数据文件的数量更多,从而,使得数据检索时需要检索的数据文件更多,从而,使得数据检索效率的提高不够显著。因此,为了在节约内存、提高检索结果准确性与实时性的同时,尽可能的提高数据检索效率,可以在数据存储时,先使用待存储数据填充指定存储空间中,所包括的数据的数据量小于指定数据量的数据文件。
可选的,一种具体实现方式中,如图5所示,本发明实施例提供的数据存储方法还可以包括如下步骤S501-S503。
S501:确定指定存储空间中数据量小于指定数据量的数据文件,作为待填充文件。
在对属于同一数据类别的待存储数据进行连续排列后,可以首先确定指定存储空间中,是否存在数据量小于指定数据量的数据文件。
其中,上述待填充文件可以是指定存储空间中的数据量小于指定数据量的任何数据文件,例如,上一次存储的数据量小于指定数据量的第二数据文件;之前已经填充过,但还未填充至指定数据量的数据文件等。对此,本发明实施例不进行具体限定。
其中,若指定存储空间中不存在数据量小于指定数据量的数据文件,则可以直接执行上述步骤S103,按照所述待存储数据的排列顺序,依次将待存储数据以第一数据文件的形式存储至指定存储空间,直至未存储的待存储数据的数据量小于指定数据量。
相应的,若存在,则可以将指定存储空间中数据量小于指定数据量的数据文件,确定为待填充文件。
其中,上述待填充文件的数量可以是一个,也可以是多个。
S502:确定待填充文件中的数据的数据类别,作为填充数据类别。
在确定出上述待填充文件后,便可以确定待填充文件中的数据的数据类别,作为填充数据类别。
若上述待填充文件包括一个数据类别的数据,则可以将上述待填充文件所包括的数据的数据类别,确定为填充数据类别。
若上述待填充文件包括多个数据类别的数据,则可以在上述多个数据类别中,随机确定填充数据类别,也可以将上述待填充文件中存储地址最大的数据的数据类别确定为待填充数据类别。
S503:将待存储数据中数据类别与填充数据类别相同的待存储数据存储至待填充文件,直至满足预设多个条件中的任一条件。
其中,上述多个条件包括第一条件和第二条件,第一条件为:待填充文件中的数据的数据量达到指定数据量,第二条件为:待存储数据中不存在数据类别与填充数据类别相同的待存储数据。
在确定出上述待填充数据类别后,便可以将待存储数据中数据类别与填充数据类别相同的待存储数据存储至待填充文件,并且在使用待存储数据中数据类别与填充数据类别相同的待存储数据填充待填充文件时,可以存在以下各种情况:
第一种情况:待存储数据中数据类别与填充数据类别相同的待存储数据的数据量不小于待填充文件的数据量与指定数据量的差值,这样,在使用待存储数据中数据类别与填充数据类别相同的待存储数据填充待填充文件时,可以将待填充文件的数据量填充至指定数据量。在这种情况下,可以将待存储数据中数据类别与填充数据类别相同的待存储数据存储至待填充文件,直至待填充文件中的数据的数据量达到指定数据量。
第二种情况:待存储数据中数据类别与填充数据类别相同的待存储数据的数据量小于待填充文件的数据量与指定数据量的差值,这样,在使用待存储数据中数据类别与填充数据类别相同的待存储数据填充待填充文件时,并不能将待填充文件的数据量填充至指定数据量。在这种情况下,可以将待存储数据中数据类别与填充数据类别相同的待存储数据存储至待填充文件,直至待存储数据中不存在数据类别与填充数据类别相同的待存储数据。
相应的,上述步骤S103,按照待存储数据的排列顺序,依次将待存储数据以第一数据文件的形式存储至指定存储空间,直至未存储的待存储数据的数据量小于指定数据量,可以包括如下步骤S504:
S504:针对未存储至待填充文件中的剩余待存储数据,按照剩余待存储数据的排列顺序,依次将每指定数据量的待存储数据以第一数据文件的形式存储至指定存储空间,直至未存储的待存储数据的数据量小于指定数据量。
在使用待存储数据填充待填充文件后,针对未存储至待填充文件中的剩余待存储数据,可以按照剩余待存储数据的排列顺序,依次将待存储数据以第一数据文件的形式存储至指定存储空间,直至未存储的待存储数据的数据量小于所述指定数据量。
其中,上述步骤S504的具体实现方式,与上述步骤S103的具体实现方式相似,在此不再赘述。
下面,继续对本发明实施例提供的一种数据检索方法进行介绍。
其中,该数据检索方法可以应用到各种数据检索场景中,所检索的数据可以是图像数据、文本数据、音频数据或者视频数据等。
并且,该数据检索方法的执行主体可以是各类可以对数据执行存储操作的电子设备,例如,手机、笔记本电脑、台式电脑;其中,该电子设备可以是独立的电子设备,也可以是由多台电子设备构成的设备集群,对此,本发明实施例不做具体限定,以下简称检索设备。其中,上述检索设备与上述数据存储方法的执行主体可以是同一设备,也可以是不同设备。
图6为本发明实施例提供的数据检索方法的一种流程示意图。
S601:获取数据检索请求,并确定数据检索请求所请求的数据的目标数据类别。
在数据检索的过程中,可以先获取数据检索请求,并确定数据检索请求所请求的数据的数据类别,作为目标数据类别。
其中,上述数据检索请求可以是用户基于各种客户端发送的数据检索请求,也可以是各种设备发送的检索请求,还可以是服务器自身的自检索请求,对此,本发明实施例不做具体限定。
另外,上述数据检索请求的形式可以有多种,例如,该数据检索请求可以是文字信息、语音信息和图像信息等,本发明实施例不做具体限定。
S602:在目标存储空间,确定存储有属于目标数据类别的数据的目标文件。
其中,目标存储空间中的数据是按照上述任一数据存储方法进行存储的。
在确定了数据检索请求所请求的数据的目标数据类别之后,可以根据该目标数据类别,在目标存储空间查找存储有属于目标数据类别的数据的目标文件。
S603:基于数据检索请求所指示的检索条件,从目标文件中查找与检索请求相匹配的目标数据。
在确定了存储有属于目标数据类别的数据的目标文件后,可以基于数据检索请求所指示的检索条件,从目标文件中查找与检索请求相匹配的目标数据。
基于此,应用本发明实施例提供的数据存储方法进行数据存储后,在数据检索过程中,由于属于待检索的目标数据的目标数据类别的数据是集中存储在指定存储空间中的部分数据文件中的,因此,可以降低指定存储空间中存储有属于目标数据类别的数据的文件的数量;进而,可以对存储有属于目标数据类别的数据的文件中的数据进行对比,而无需对全部文件中的全部数据进行对比,因此,可以降低数据检索过程中,所对比的数据的数据量以及I/O次数。并且,当存储有属于目标数据类别的数据的文件中存储有不止一个数据类别的数据时,由于该文件中属于同一数据类别的数据是连续的,因此,在对该文件中的数据进行检索时,可以按照该文件中属于目标数据类别的数据的排列顺序,对该文件中属于目标数据类别的数据进行顺序对比,而无需对比目标文件中的全部数据,从而,可以进一步降低数据检索过程中,所对比的数据的数据量。进而,由于数据检索过程中,数据对比和I/O都会耗费一定时间,而在本发明实施例中,上述数据存储方法可以减少数据检索过程中所检索的数据的数据量以及I/O次数。因此,数据检索过程中,可以缩短数据对比的时间,提高数据检索的效率。
相应于上述本发明实施例提供的一种数据存储方法,本发明实施例还提供了一种数据存储装置。
图7为本发明实施例提供的一种数据存储装置的结构示意图,如图7所示,该数据存储装置可以包括如下模块:
数据确定模块701,用于确定待存储数据;
数据排列模块702,用于确定所述待存储数据的数据类别,并对属于同一数据类别的所述待存储数据进行连续排列;
第一数据存储模块703,用于按照所述待存储数据的排列顺序,依次将待存储数据以第一数据文件的形式存储至指定存储空间,直至未存储的待存储数据的数据量小于指定数据量。
其中,每个所述第一数据文件的数据量为所述指定数据量。
基于此,应用本发明实施例提供的数据存储方法进行数据存储后,在数据检索过程中,由于属于待检索的目标数据的目标数据类别的数据是集中存储在指定存储空间中的部分数据文件中的,因此,可以降低指定存储空间中存储有属于目标数据类别的数据的文件的数量;进而,可以对存储有属于目标数据类别的数据的文件中的数据进行对比,而无需对全部文件中的全部数据进行对比,因此,可以降低数据检索过程中,所对比的数据的数据量以及I/O次数。并且,当存储有属于目标数据类别的数据的文件中存储有不止一个数据类别的数据时,由于该文件中属于同一数据类别的数据是连续的,因此,在对该文件中的数据进行检索时,可以按照该文件中属于目标数据类别的数据的排列顺序,对该文件中属于目标数据类别的数据进行顺序对比,而无需对比目标文件中的全部数据,从而,可以进一步降低数据检索过程中,所对比的数据的数据量。进而,由于数据检索过程中,数据对比和I/O都会耗费一定时间,而在本发明实施例中,上述数据存储方法可以减少数据检索过程中所检索的数据的数据量以及I/O次数。因此,数据检索过程中,可以缩短数据对比的时间,提高数据检索的效率。
可选的,一种具体实现方式中,上述数据存储装置还可以包括:
文件合并模块,用于合并所述指定存储空间内所存储的满足预设合并条件的指定文件,得到目标文件;其中,所述指定文件包括:所述第一数据文件,或者,所存储的全部待存储数据属于同一数据类别的第一数据文件;所述预设合并条件包括以下条件中的至少一个:预设合并周期内存储的、数量达到预设数值和所包括的待存储数据的数据量之和达到预设数据量。
可选的,一种具体实现方式中,上述第一数据存储模块具体用于:
针对每个数据类别,按照属于该数据类别的待存储数据的排列顺序,将每指定数据量的属于该数据类别的待存储数据以所述第一数据文件的形式存储至指定存储空间,直至未存储的属于该数据类别的待存储数据的数据量小于所述指定数据量。
可选的,一种具体实现方式中,上述数据存储装置还可以包括:
第二数据存储模块,用于在存在未存储的待存储数据且所述未存储的待存储数据的数据量小于所述指定数据量时,将所述未存储的待存储数据以第二数据文件的形式存储至所述指定存储空间。
可选的,一种具体实现方式中,上述数据存储装置还可以包括:
文件确定模块,用于确定所述指定存储空间中数据量小于所述指定数据量的数据文件,作为待填充文件;
类别确定模块,用于确定所述待填充文件中的数据的数据类别,作为填充数据类别;
文件填充模块,用于将所述待存储数据中数据类别与所述填充数据类别相同的待存储数据存储至所述待填充文件,直至满足预设多个条件中的任一条件;其中,所述多个条件包括第一条件和第二条件,所述第一条件为:所述待填充文件中的数据的数据量达到所述指定数据量,所述第二条件为:所述待存储数据中不存在数据类别与所述填充数据类别相同的待存储数据。
所述第一数据存储模块具体用于:
针对未存储至所述待填充文件中的剩余待存储数据,按照所述剩余待存储数据的排列顺序,依次将待存储数据以所述第一数据文件的形式存储至指定存储空间,直至未存储的待存储数据的数据量小于所述指定数据量。
可选的,一种具体实现方式中,上述数据存储装置中,所述指定存储空间为具有PCIE接口的SSD。
相应于上述本发明实施例提供的一种数据检索方法,本发明实施例还提供了一种数据检索装置。
图8为本发明实施例提供的一种数据检索装置的结构示意图,如图8所示,该数据检索装置可以包括如下模块:
请求获取模块801,用于获取数据检索请求,并确定所述检索请求所请求的数据的目标数据类别;
目标检索模块802,用于在目标存储空间,确定存储有属于所述目标数据类别的数据的目标文件,其中,所述目标存储空间中的数据是按照本发明实施例提供的任一数据存储方法进行存储的;
数据检索模块803,用于基于所述数据检索请求所指示的检索条件,从所述目标文件中查找与所述检索请求相匹配的目标数据。
基于此,应用本发明实施例提供的数据存储方法进行数据存储后,在数据检索过程中,由于属于待检索的目标数据的目标数据类别的数据是集中存储在指定存储空间中的部分数据文件中的,因此,可以降低指定存储空间中存储有属于目标数据类别的数据的文件的数量;进而,可以对存储有属于目标数据类别的数据的文件中的数据进行对比,而无需对全部文件中的全部数据进行对比,因此,可以降低数据检索过程中,所对比的数据的数据量以及I/O次数。并且,当存储有属于目标数据类别的数据的文件中存储有不止一个数据类别的数据时,由于该文件中属于同一数据类别的数据是连续的,因此,在对该文件中的数据进行检索时,可以按照该文件中属于目标数据类别的数据的排列顺序,对该文件中属于目标数据类别的数据进行顺序对比,而无需对比目标文件中的全部数据,从而,可以进一步降低数据检索过程中,所对比的数据的数据量。进而,由于数据检索过程中,数据对比和I/O都会耗费一定时间,而在本发明实施例中,上述数据存储方法可以减少数据检索过程中所检索的数据的数据量以及I/O次数。因此,数据检索过程中,可以缩短数据对比的时间,提高数据检索的效率。
本发明实施例还提供了一种电子设备,如图9所示,包括处理器901、通信接口902、存储器903和通信总线904,其中,处理器901,通信接口902,存储器903通过通信总线904完成相互间的通信,
存储器903,用于存放计算机程序;
处理器901,用于执行存储器903上所存放的程序时,实现本发明实施例提供的任一数据存储方法和/或数据检索方法的步骤。
上述电子设备提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述电子设备与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一数据存储方法和/或数据检索方法的步骤。
在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一数据存储方法和/或数据检索方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例、电子设备实施例、计算机可读存储介质实施例以及计算机程序产品实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (12)
1.一种数据存储方法,其特征在于,所述方法包括:
确定待存储数据;
确定所述待存储数据的数据类别,并对属于同一数据类别的所述待存储数据进行连续排列;
按照所述待存储数据的排列顺序,依次将待存储数据以第一数据文件的形式存储至指定存储空间,直至未存储的待存储数据的数据量小于指定数据量,其中,每个所述第一数据文件的数据量为所述指定数据量。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
合并所述指定存储空间内所存储的满足预设合并条件的指定文件,得到目标文件;
其中,所述指定文件包括:所述第一数据文件,或者,所存储的全部待存储数据属于同一数据类别的第一数据文件;所述预设合并条件包括以下条件中的至少一个:预设合并周期内存储的、数量达到预设数值和所包括的待存储数据的数据量之和达到预设数据量。
3.根据权利要求1所述的方法,其特征在于,所述按照所述待存储数据的排列顺序,依次将待存储数据以第一数据文件的形式存储至指定存储空间,直至未存储的待存储数据的数据量小于指定数据量,包括:
针对每个数据类别,按照属于该数据类别的待存储数据的排列顺序,将属于该数据类别的待存储数据以所述第一数据文件的形式存储至指定存储空间,直至未存储的属于该数据类别的待存储数据的数据量小于所述指定数据量。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若存在未存储的待存储数据且所述未存储的待存储数据的数据量小于所述指定数据量,则将所述未存储的待存储数据以第二数据文件的形式存储至所述指定存储空间。
5.根据权利要求4所述的方法,其特征在于,
在所述按照所述待存储数据的排列顺序,依次将待存储数据以第一数据文件的形式存储至指定存储空间,直至未存储的待存储数据的数据量小于指定数据量之前,所述方法还包括:
确定所述指定存储空间中数据量小于所述指定数据量的数据文件,作为待填充文件;
确定所述待填充文件中的数据的数据类别,作为填充数据类别;
将所述待存储数据中数据类别与所述填充数据类别相同的待存储数据存储至所述待填充文件,直至满足预设多个条件中的任一条件;其中,所述多个条件包括第一条件和第二条件,所述第一条件为:所述待填充文件中的数据的数据量达到所述指定数据量,所述第二条件为:所述待存储数据中不存在数据类别与所述填充数据类别相同的待存储数据;
所述按照所述待存储数据的排列顺序,依次将待存储数据以第一数据文件的形式存储至指定存储空间,直至未存储的待存储数据的数据量小于指定数据量,包括:
针对未存储至所述待填充文件中的剩余待存储数据,按照所述剩余待存储数据的排列顺序,依次将待存储数据以所述第一数据文件的形式存储至指定存储空间,直至未存储的待存储数据的数据量小于所述指定数据量。
6.根据权利要求1所述的方法,其特征在于,所述指定存储空间为具有PCIE接口的SSD。
7.一种数据检索方法,其特征在于,所述方法包括:
获取数据检索请求,并确定所述数据检索请求所请求的数据的目标数据类别;
在目标存储空间,确定存储有属于所述目标数据类别的数据的目标文件,其中,所述目标存储空间中的数据是按照权利要求1-6任一所述的方法进行存储的;
基于所述数据检索请求所指示的检索条件,从所述目标文件中查找与所述检索请求相匹配的目标数据。
8.一种数据存储装置,其特征在于,所述装置包括:
数据确定模块,用于确定待存储数据;
数据排列模块,用于确定所述待存储数据的数据类别,并对属于同一数据类别的所述待存储数据进行连续排列;
第一数据存储模块,用于按照所述待存储数据的排列顺序,依次将待存储数据以第一数据文件的形式存储至指定存储空间,直至未存储的待存储数据的数据量小于指定数据量,其中,每个所述第一数据文件的数据量为所述指定数据量。
9.根据权利要求8所述的装置,其特征在于,所述装置还包括:
文件合并模块,用于合并所述指定存储空间内所存储的满足预设合并条件的指定文件,得到目标文件;其中,所述指定文件包括:所述第一数据文件,或者,所存储的全部待存储数据属于同一数据类别的第一数据文件;所述预设合并条件包括以下条件中的至少一个:预设合并周期内存储的、数量达到预设数值和所包括的待存储数据的数据量之和达到预设数据量;
和/或,
所述第一数据存储模块具体用于:针对每个数据类别,按照属于该数据类别的待存储数据的排列顺序,将每指定数据量的属于该数据类别的待存储数据以所述第一数据文件的形式存储至指定存储空间,直至未存储的属于该数据类别的待存储数据的数据量小于所述指定数据量;
和/或,
所述装置还包括:第二数据存储模块,用于在存在未存储的待存储数据且所述未存储的待存储数据的数据量小于所述指定数据量时,将所述未存储的待存储数据以第二数据文件的形式存储至所述指定存储空间;
和/或,
所述装置还包括:
文件确定模块,用于确定所述指定存储空间中数据量小于所述指定数据量的数据文件,作为待填充文件;
类别确定模块,用于确定所述待填充文件中的数据的数据类别,作为填充数据类别;
文件填充模块,用于将所述待存储数据中数据类别与所述填充数据类别相同的待存储数据存储至所述待填充文件,直至满足预设多个条件中的任一条件;其中,所述多个条件包括第一条件和第二条件,所述第一条件为:所述待填充文件中的数据的数据量达到所述指定数据量,所述第二条件为:所述待存储数据中不存在数据类别与所述填充数据类别相同的待存储数据;
所述第一数据存储模块具体用于:针对未存储至所述待填充文件中的剩余待存储数据,按照所述剩余待存储数据的排列顺序,依次将待存储数据以所述第一数据文件的形式存储至指定存储空间,直至未存储的待存储数据的数据量小于所述指定数据量;
和/或,
所述指定存储空间为具有PCIE接口的SSD。
10.一种数据检索装置,其特征在于,所述装置包括:
请求获取模块,用于获取数据检索请求,并确定所述数据检索请求所请求的数据的目标数据类别;
目标检索模块,用于在目标存储空间,确定存储有属于所述目标数据类别的数据的目标文件,其中,所述目标存储空间中的数据是按照权利要求1-6任一所述的方法进行存储的;
数据检索模块,用于基于所述数据检索请求所指示的检索条件,从所述目标文件中查找与所述检索请求相匹配的目标数据。
11.一种电子设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现权利要求1-6任一所述的方法步骤和/或权利要求7所述的方法步骤。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-6任一所述的方法步骤和/或权利要求7所述的方法步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211189569.8A CN115470386A (zh) | 2022-09-28 | 2022-09-28 | 一种数据存储、数据检索方法、装置和电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211189569.8A CN115470386A (zh) | 2022-09-28 | 2022-09-28 | 一种数据存储、数据检索方法、装置和电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115470386A true CN115470386A (zh) | 2022-12-13 |
Family
ID=84335013
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211189569.8A Pending CN115470386A (zh) | 2022-09-28 | 2022-09-28 | 一种数据存储、数据检索方法、装置和电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115470386A (zh) |
-
2022
- 2022-09-28 CN CN202211189569.8A patent/CN115470386A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11526799B2 (en) | Identification and application of hyperparameters for machine learning | |
US10366053B1 (en) | Consistent randomized record-level splitting of machine learning data | |
US10713589B1 (en) | Consistent sort-based record-level shuffling of machine learning data | |
US11586629B2 (en) | Method and device of storing data object | |
US9811577B2 (en) | Asynchronous data replication using an external buffer table | |
TWI603211B (zh) | Construction of inverted index system based on Lucene, data processing method and device | |
CN107301214B (zh) | 在hive中数据迁移方法、装置及终端设备 | |
US20240126817A1 (en) | Graph data query | |
CN110825694A (zh) | 数据处理方法、装置、设备和存储介质 | |
US10248626B1 (en) | Method and system for document similarity analysis based on common denominator similarity | |
CN110851474A (zh) | 数据查询方法、数据库中间件、数据查询设备及存储介质 | |
WO2017020735A1 (zh) | 一种数据处理方法、备份服务器及存储系统 | |
US9213759B2 (en) | System, apparatus, and method for executing a query including boolean and conditional expressions | |
US11853284B2 (en) | In-place updates with concurrent reads in a decomposed state | |
CN112836124A (zh) | 一种画像数据获取方法、装置、电子设备及存储介质 | |
CN110825953B (zh) | 数据查询方法、装置和设备 | |
KR101772333B1 (ko) | 이종 NoSQL 데이터베이스들간의 지능적 조인 전략 제공 방법 및 시스템 | |
CN113849524B (zh) | 一种数据处理方法及装置 | |
CN115470386A (zh) | 一种数据存储、数据检索方法、装置和电子设备 | |
US10558668B2 (en) | Result set output criteria | |
CN107430633B (zh) | 用于数据存储的系统及方法和计算机可读介质 | |
CN112148721B (zh) | 数据检核方法、装置、电子设备及存储介质 | |
CN114564501A (zh) | 一种数据库数据存储、查询方法、装置、设备及介质 | |
US20160232187A1 (en) | Dump analysis method, apparatus and non-transitory computer readable storage medium | |
CN111459411B (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 |