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

基于内存数据的数据处理方法和相关设备

文献发布时间:2023-06-19 11:54:11


基于内存数据的数据处理方法和相关设备

技术领域

本发明涉及数据处理领域,特别涉及一种基于内存数据的数据处理方法和相关设备。

背景技术

当需要将数据存储在电脑内存时,一般需要集合或者哈希(Hash)字典存储数据。例如在硬盘恢复领域,需要将硬盘的数据恢复,即将原有硬盘的数据重新拷贝到硬盘中,而需要拷贝进硬盘的数据应预先保存在电脑内存中。

采用上述方式,在电脑内存的数据库中进行检索或排序时,速度慢,效率低。仍以硬盘恢复为例,在几百万的文件数据条件下,根据文件名称、文件大小等文件信息进行检索或排序时,一次检索或排序需要几十秒,因此检索以及排序速率低下。

发明内容

本发明要解决的技术问题在于基于内存数据的数据处理效率低,针对现有技术的不足,提供一种基于内存数据的数据处理方法。

为了解决上述技术问题,本发明所采用的技术方案如下:

一种基于内存数据的数据处理方法,所述方法包括:

获取存储数据的数据路径;

根据所述数据路径,对所述数据路径对应的若干个存储数据进行数据提取,得到所述存储数据对应的内存数据;

将所述内存数据作为属性信息插入预先设置的空白表,得到与所述存储数据对应的目标表;

当检测到针对所述存储数据的命令指令时,基于所述目标表,执行所述命令指令对应的命令操作。

所述基于内存数据的数据处理方法,其中,所述空白表包括索引名,所述索引名包括若干个属性名;所述属性信息包括若干个属性值,针对每一个所述属性值,该属性值为与所述属性名对应的参数值。

所述基于内存数据的数据处理方法,其中,所述将所述内存数据作为属性信息插入预先设置的空白表,得到与所述存储数据对应的目标表,具体包括:

针对每一个所述属性信息,将该属性信息中与所述属性名对应的属性值插入所述空白表,直至所述属性信息插入完成,得到与所述存储数据对应的目标表。

所述基于内存数据的数据处理方法,其中,所述命令指令包括检索指令和/或排序指令。

所述基于内存数据的数据处理方法,其中,所述当检测到针对所述存储数据的命令指令时,基于所述目标表,执行所述命令指令对应的命令操作,具体包括:

当所述命令指令为检索指令时,对所述命令指令进行解析,得到检索索引和显示参数;

根据所述检索索引,对所述目标表进行检索,得到检索对象;

根据所述显示参数,显示所述检索对象。

所述基于内存数据的数据处理方法,其中,所述检索索引包括若干个检索字符串;所述根据所述检索索引,对所述目标表进行检索,得到检索对象,具体包括:

对所述检索字符串进行拼接,生成所述检索索引对应的复合索引;

根据所述复合索引,对所述目标表进行检索,得到检索对象。

所述基于内存数据的数据处理方法,其中,所述显示参数包括页面大小以及排序顺序;所述排序顺序包括正序排序和倒序排序;所述页面大小为每一页显示的检索对象的数量。

一种基于内存数据的数据处理装置,其中,所述基于内存数据的数据处理装置具体包括:

获取模块,用于获取存储数据的数据路径;

扫描模块,用于根据所述数据路径,对所述数据路径对应的若干个存储数据进行数据提取,得到所述存储数据对应的内存数据;

插入模块,用于将所述内存数据作为属性信息插入预先设置的空白表,得到与所述存储数据对应的目标表;

执行模块,用于当检测到针对所述目标表的命令指令时,基于所述目标表,执行所述命令指令对应的命令操作。

一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如上任一所述的基于内存数据的数据处理方法中的步骤。

一种终端设备,其包括:处理器、存储器及通信总线;所述存储器上存储有可被所述处理器执行的计算机可读程序;

所述通信总线实现处理器和存储器之间的连接通信;

所述处理器执行所述计算机可读程序时实现如上任一所述的基于内存数据的数据处理方法中的步骤。

有益效果:与现有技术相比,本发明提供了一种基于内存数据的数据处理方法和相关设备,所述方法先获取存储数据的数据路径,然后根据该数据路径,对存储数据进行提取,得到存储数据对应的内存数据。与存储在硬盘中的文件相比,内存数据只有文件和数据的名称、大小之类的属性信息。然后对这些内存数据建立目标表。当检测到针对存储数据的检索、排序等操作的命令指令时,基于所得到的目标表,执行与命令指令相对应的操作。由于针对表的操作,可通过SQL等语句快速实现,因此,本发明能够对存储数据进行快速的检索、排序等数据处理。

附图说明

图1为本发明提供的基于内存数据的数据处理方法的第一个流程图。

图2为本发明提供的基于内存数据的数据处理方法中第二个。

图3为本发明提供的基于内存数据的数据处理装置的结构示意图。

图4为本发明提供的终端设备的结构原理图。

具体实施方式

本发明提供一种基于内存数据的数据处理方法和相关设备,为使本发明的目的、技术方案及效果更加清楚、明确,以下参照附图并举实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。

本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。

本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。

发明人经过研究发现,当数据量较大,例如达到千万级,对存储数据采用集合、哈希(Hash)等方式进行数据检索、排序等处理时,,存在处理缓慢的现象。

为了解决上述问题,在本发明实施例中,获取存储数据的数据路径;根据所述数据路径,对所述数据路径对应的若干个存储数据进行数据提取,得到所述存储数据对应的内存数据;将所述内存数据作为属性信息插入预先设置的空白表,得到与所述存储数据对应的目标表;当检测到针对所述存储数据的命令指令时,基于所述目标表,执行所述命令指令对应的命令操作。

举例说明,本发明实施例可以应用通过内存对硬盘数据备份后,对备份得到的存储数据进行处理。此外,对其他方式得到的存储数据都可采用本发明实施例的方案。

需要注意的是,上述应用场景仅是为了便于理解本发明而示出,本发明的实施方式在此方面不受任何限制。相反,本发明的实施方式可以应用于适用的任何场景。

下面结合附图,通过对实施例的描述,对发明内容作进一步说明。

如图1所示,本实施提供了一种基于内存数据的数据处理方法,所述方法可被安装与电脑等终端上的软件执行,该方法可以包括以下步骤:

S10、获取存储数据的数据路径。

具体地,以对硬盘进行备份为例,先获取硬盘中存储数据的数据路径。获取数据路径的方式可通过用户指定、软件默认等方式。

S20、根据所述数据路径,对所述数据路径对应的若干个存储数据进行数据提取,得到所述存储数据对应的内存数据。

具体地,得到数据路径后,根据该数据路径,对硬盘中对应的区域进行扫描,并对该区域内的存储数据进行数据提取,得到该数据路径对应的存储数据所对应的内存数据。在本实施例中,由于是对硬盘进行备份,所得到的数据并非是硬盘中的文件夹等形式的数据,主要是文件的名称、大小之类的属性,因此对存储数据进行扫描和数据提取,可得到存储数据对应的内存数据。本实施例将内存数据包含有若干个属性值。例如,某一条存储数据的属性信息为“1、A、100kB、2000年7月、txt”,其中,“1”是身份标识号的属性值,“A”为存储数据的名称对应的属性值,“100kB”为该存储数据的大小对应的属性值,“2020年7月”为该存储数据的修改时间对应的属性值,“txt”为存储数据的扩展名对应的属性值。

S30、将所述内存数据作为属性信息插入预先设置的空白表,得到与所述存储数据对应的目标表。

具体地,如图2所示,创建空白表的方式有多种多样,当前很多数据库都是以表的形式进行数据的存储和调用,例如MYSQL、Oracle。本实施例以SQLite数据库作为存储内存数据的内存数据库为例,进行创设空白表已经后续操作的描述。

根据不同的操作系统,选择开发工具和开发语言。在本实例中,从SQLite官网下载对应的软件开发工具包(Software Development Kit,SDK)。以在windows系统,VisualStudio 2017开发工具,C#开发语言为例,在官网上下载Precompiled Binaries for.NET-System.Data.SQLite SDK,在Visual Studio开发工具中,新建C#Demo项目,在项目中引用SQLite SDK,也可以从Visual Studio 2017开发工具上的Nuget程序包中搜索System.Data.SQLite进行引用。

安装SQLite软件后,创建与SQLite之间的连接,以建立对SQLite数据库之间的联系。然后基于与SQLite数据之间的连接,在内存中创建一个空白表,在该表中,包括索引名,索引名由若干个属性名组成,例如属性名为文件名(File Name)、文件大小(Size)、身份标识号(Identity Document,ID)、扩展名(Extension)、修改时间(Modify Time)。此外,还可包括该存储数据对应的路径(Path)、存储数据(Storage Datas)

为了后续生成目标表,在本实施例中,先将内存数据作为属性信息,每一个所述属性信息包括若干个属性值,针对每一个所述属性值,该属性值为与所述属性名对应的参数值。针对每一个属性信息,其包含的属性值在索引名中都存在对应的属性名,但所有的属性名在该属性信息中存在对应的属性值。

然后将扫描得到的属性信息插入到预先设置的空白表中,以上述属性信息为例,本实施例中的属性名包括文件名、文件大小、身份标识号、扩展名、修改时间。

然后针对每一个所述属性信息,将该属性信息中与所述属性名对应的属性值插入所述空白表,直至所述属性信息插入完成,得到与所述存储数据对应的目标表。以上述属性信息为例,将“1”插入预设的表格中属性名为身份标识号对应的位置,“A”插入属性名为文件名对应的位置、“100kB”插入文件大小对应的位置、“2000年7月”插入属性名为修改时间对应的位置,“txt”插入扩展名对应的位置。将所有的得到的属性信息插入到该空白表中,即得到与存储数据对应的目标表。

S40、当检测到针对所述存储数据的命令指令时,基于所述目标表,执行所述命令指令对应的命令操作。

具体地,当用户需要检索、排序、筛选某一些存储数据时,通过电脑等终端下发相关的命令指令。检测到命令指令,基于目标表,执行该命令指令对应的命令操作,由于以目标表的形式进行检索等处理具有较快的处理速率,因此通过目标表的形式,能够实现快速地对命令指令的响应,从而快速完成检索、排序等数据处理任务。

进一步的,本实施例优选的命令指令类型为检索指令和排序指令。

由于本实施例所采用的内存数据库为SQLite数据库,因此检索指令和排序指令的指令形式为SQL形式。本实施例以命令指令为检索指令为例,进行执行命令操作过程的描述,具体过程为:

A10,当所述命令指令为检索指令时,对所述命令指令进行解析,得到检索索引和显示参数。

具体地,本实施例中命令指令的脚本为“SELECT*FROM DiskFile WHERE Id IN(SELECT Id FROM DiskFile WHERE FileName LIKE'%123%'ORDER BY FileName DescLIMIT 100OFFSET 100)”,其中,目标表的表名为内存(DiskFile),以表明是存储数据。

该命令指令为检索指令,先对该命令指令进行解析,“SELECT Id FROM DiskFileWHERE FileName LIKE‘%123%’ORDER BY FileName Desc LIMIT 100OFFSET 100”的目的是通过“FileName LIKE”对目标表,即名为“DiskFile”的数据包,进行模糊检索,即检索出文件名称这一属性名对应的属性值与“123”相类似的文件名。因此,该检索指令中的检索索引即属性名为文件名,且对应的属性值与“123”类似。

A20,根据所述检索索引,对所述目标表进行检索,得到检索对象。

具体地,然后根据所述检索索引,对目标表进行检索,得到在目标表中与检索索引对应的检索对象。

在SQLite数据库中,文件名的搜索一般是用SQL中的like关键字进行模糊搜索,like用是扫描全表的方式进行搜索,不支持索引,即使单独为FileName创建索引也是不起作用的,效率低、速度慢。因此,为提高检索效率,本实施例还采用复合索引进行间接检索的方式,对目标表进行检索。所述检索索引包括若干个检索字符串。先对所述检索字符串进行拼接,生成所述检索索引对应的复合索引。然后根据所述复合索引,对所述目标表进行检索,得到检索对象。本实施例将多列属性值组成一个复合索引,专门用于组合搜索,以提高检索效率。例如本实施例中,目标表的表名为“DiskFile”,可采用“DiskFi le_Index_Id_FileName”进行查询。

“SELECT ID FROM DiskFile WHERE FileName LIKE‘%123%’ORDER BYFileName DescLIMIT 100OFFSET 100”采用了复合索引,速度相较于常规的模糊索引,提高了几十倍。

进一步地,如果“SELECT ID”修改为“SELECT*”,这不使用索引,对全表进行扫描。

A30,根据所述显示参数,显示所述检索对象。

具体地,所述显示参数包括页面大小,所述页面大小为每一页显示的检索对象的数量。本实施例中,上述检索指令中描述“LIMIT 100”,则显示参数中的页面大小为100,排序第101的检索结果,需要通过翻页进行查看,翻页查询目的是提高查询快速和显示渲染数据的速度。

显示参数还包括排序顺序,所述排序顺序包括正序排序和倒序排序,以及排序标准。上述检索指令中,“ORDER BY Fi leName”表明是以文件名(FileName)作为排序标准,“Desc LIMIT 100OFFSET 100”表明倒序排序和以100为单位进行翻页。

最后通过“SELECT*FROM DiskFile WHERE Id IN(....)”脚本取到需要查询的信息。

如图3所示,基于上述基于内存数据的数据处理方法,本实施例提供了一种基于内存数据的数据处理装置100,其中,所述基于内存数据的数据处理装置100包括:

获取模块110,用于获取存储数据的数据路径;

提取模块120,用于根据所述数据路径,对所述数据路径对应的若干个存储数据进行数据提取,得到所述存储数据对应的内存数据;

插入模块130,用于将所述内存数据作为属性信息插入预先设置的空白表,得到与所述存储数据对应的目标表;

执行模块140,用于当检测到针对所述目标表的命令指令时,基于所述目标表,执行所述命令指令对应的命令操作。

其中,所述空白表包括索引名,所述索引名包括若干个属性名;所述属性信息包括若干个属性值,针对每一个所述属性值,该属性值为与所述属性名对应的参数值。

其中,所述插入模块130具体用于针对每一个所述属性信息,将该属性信息中与所述属性名对应的属性值插入所述空白表,直至所述属性信息插入完成,得到与所述存储数据对应的目标表。

其中,所述命令指令包括检索指令和/或排序指令。

其中,所述执行模块140包括:

解析单元,用于当所述命令指令为检索指令时,对所述命令指令进行解析,得到检索索引和显示参数;

检索单元,用于根据所述检索索引,对所述目标表进行检索,得到检索对象;

显示单元,用于根据所述显示参数,显示所述检索对象。

其中,所述检索索引包括若干个检索字符串;所述检索单元用于:

对所述检索字符串进行拼接,生成所述检索索引对应的复合索引;

根据所述复合索引,对所述目标表进行检索,得到检索对象。

其中,所述显示参数包括页面大小以及排序顺序;所述排序顺序包括正序排序和倒序排序;所述页面大小为每一页显示的检索对象的数量。

基于上述基于内存数据的数据处理方法,本实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如上述实施例所述的基于内存数据的数据处理方法中的步骤。

基于上述基于内存数据的数据处理方法,本发明还提供了一种终端设备,如图4所示,其包括至少一个处理器(processor)20;显示屏21;以及存储器(memory)22,还可以包括通信接口(Communications Interface)23和总线24。其中,处理器20、显示屏21、存储器22和通信接口23可以通过总线24完成相互间的通信。显示屏21设置为显示初始设置模式中预设的用户引导界面。通信接口23可以传输信息。处理器20可以调用存储器22中的逻辑指令,以执行上述实施例中的方法。

此外,上述的存储器22中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取计算机可读存储介质中。

存储器22作为一种计算机可读存储介质,可设置为存储软件程序、计算机可执行程序,如本公开实施例中的方法对应的程序指令或模块。处理器20通过运行存储在存储器22中的软件程序、指令或模块,从而执行功能应用以及数据处理,即实现上述实施例中的方法。

存储器22可包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端设备的使用所创建的数据等。此外,存储器22可以包括高速随机存取存储器,还可以包括非易失性存储器。例如,U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等多种可以存储程序代码的介质,也可以是暂态计算机可读存储介质。

此外,上述计算机可读存储介质以及终端设备中的多条指令处理器加载并执行的具体过程在上述方法中已经详细说明,在这里就不再一一陈述。

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

相关技术
  • 基于内存数据的数据处理方法和相关设备
  • 内存数据处理设备及内存数据处理方法
技术分类

06120113098713