本发明实施例涉及计算机技术领域,尤其涉及一种数据处理方法、装置、设备和存储介质。
背景技术:
在大数据存储领域,需要存储的数据有很多,存储大数据的数据库通常是由一个个预设大小(如128m)的存储单元构成。当需要存储某一数据文件时,通常是为该数据文件在数据库中分配一个预设大小的存储单元来存储该数据文件。
但是,现有方案在待存储的数据文件内存远小于预设大小的存储单元内存时,容易造成存储空间的浪费。例如,假设待存储的数据文件大小为12k,此时,12k的数据文件占用128m的存储单元,就会造成数据库存储空间的浪费。此外,在处理和存储数据相关的任务时,对于每一个存储单元都要进行任务的启动和释放,例如,100个12k的数据文件,就要进行100次任务的启动和释放,严重影响任务处理效率。
技术实现要素:
本发明实施例提供一种数据处理方法、装置、设备和存储介质,以降低数据文件在存储单元中的占用内存,提高系统对存储数据的处理效率。
第一方面,本发明实施例提供了一种数据处理方法,该方法包括:
根据文件查询参数,确定查询文件的文件信息,所述文件信息包括:文件名称、文件存储路径以及文件大小;
若所述文件信息中的文件大小小于预设数值,则将所述文件信息写入缓存空间;
若所述缓存空间内已写入的文件信息达到上传条件,则将满足所述上传条件的文件信息进行合并处理后写入实际存储空间。
第二方面,本发明实施例还提供了一种数据处理装置,该装置包括:
文件信息确定模块,用于根据文件查询参数,确定查询文件的文件信息,所述文件信息包括:文件名称、文件存储路径以及文件大小;
缓存空间写入模块,用于若所述文件信息中的文件大小小于预设数值,则将所述文件信息写入缓存空间;
实际空间写入模块,用于若所述缓存空间内已写入的文件信息达到上传条件,则将满足所述上传条件的文件信息进行合并处理后写入实际存储空间。
第三方面,本发明实施例还提供了一种电子设备,该电子设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现第一方面中任一所述的数据处理方法。
第四方面,本发明实施例还提供了一种存储介质,其上存储有计算机程序,该程序被处理器执行时实现第一方面中任一所述的数据处理方法。
本发明实施例的技术方案,在根据文件查询参数,确定查询文件的文件信息后先判断该文件信息的文件大小是否小于预设数值,若是则将该文件信息先写入缓存空间,当缓存空间内的文件信息达到上传条件后,对缓存空间内的文件信息进行合并后以一个文件的形式写入实际存储空间。本发明实施例的技术方案,对于待存储的小文件信息,并非直接写入实际存储空间的一个存储单元内,而是先写入缓存空间,在多个小文件信息满足上传条件后,将多个小文件信息合并处理,以大文件的形式存储在实际存储空间的一个存储单元内,极大的降低了数据文件在实际存储单元中的占用内存。且由于多个小文件只占用一个存储单元,所以在后续处理与这些小文件相关的任务时,只需进行一次任务的启动和释放即可,极大的提高了系统对存储数据的处理效率。
附图说明
图1是本发明实施例一提供的一种数据处理方法的流程图;
图2是本发明实施例二提供的一种数据处理方法的流程图;
图3是本发明实施例三提供的一种数据处理方法的流程图;
图4是本发明实施例四提供的一种数据处理装置的结构示意图;
图5本发明实施例五中提供的一种电子设备的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
实施例一
图1为本发明实施例一提供的一种数据处理方法的流程图,本实施例可适用于对待存储的数据进行存储处理的情况,尤其适用于基于分布式文件系统(hadoopdistributedfilesystem,hdfs)对大量的小文件进行存储处理的情况。该方法可以由本发明实施例提供的数据处理装置或电子设备来执行,该装置可采用硬件和/或软件的方式实现。如图1所述,该方法具体包括如下步骤:
s101,根据文件查询参数,确定查询文件的文件信息。
其中,文件查询参数可以是表征本次查询需求的通配符,例如,可以包括但不限于待查询的文件格式(如图片、文本、表格等)、文件来源、文件名称以及文件大小等中的至少一个。查询文件是通过文件查询参数从大量数据中筛选出来的文件,该文件的信息至少可以包括:文件名称、文件存储路径以及文件大小。在本实施例中,通过文件名称和文件存储路径,可以精准查找到该文件,通过文件大小,可以确定将该文件存储在那里。
可选的,在本步骤中,根据文件查询参数,确定查询文件的文件信息的方法可以是根据文件查询参数,在系统本地或其他数据源中查找匹配该文件查询参数的文件,然后再从该文件包含的数据信息中进一步获取该文件的文件信息。
具体包括如下两个子步骤:
s1011,根据过滤函数和文件查询参数,确定满足该查询参数的查询文件。
可选的,过滤函数可以是在系统中可以执行筛选过滤操作的函数,例如,在本实施例的hdfs系统中,可以选择globstatus()函数作为本子步骤的过滤函数。本步骤可以是在该过滤函数的筛选条件内输入文件查询参数,然后在系统内运行该过滤函数,此时该过滤函数即可以从本地或其他数据源中筛选出满足文件查询参数的所有文件,作为查询文件。可选的,确定出的查询文件的个数可能是一个,也可能是多个。
s1012,根据过滤函数和文件信息参数,从该查询文件的数据信息中确定查询文件的文件名称、文件存储路径以及文件大小作为该查询文件的文件信息。
可选的,文件信息参数可以是表征本次需要获取的文件的各类信息的通配符,例如,文件信息参数可以包括:名称、地址和内存等。
由于本子步骤要获取查询出的各个文件的文件信息,所以可以在通过过滤函数查询出满足文件查询参数的查询文件后,先查找到与该文件相关的所有数据信息。具体的,本实施例可以是构建包含各文件的所有数据信息的哈希表,该哈希表的关键值(即key值)可以是根据各文件相关的文件查询参数进行哈希计算处理得到的,该key值对应的存储对象就是该文件的所有数据信息。此时本子步骤可以是根据文件查询参数进行哈希计算确定出key值,然后再通过哈希表查找该key值对应文件的所有数据信息;进而采用与上述子步骤s1011类似的方法,在过滤函数的筛选条件内输入文件信息参数,在系统内运行该过滤函数,此时该过滤函数即可以从查询到的各查询文件的所有数据信息中筛选出每个查询文件对应的文件名称、文件存储路径以及文件大小作为该查询文件的文件信息。需要说明的是,本实施例中的文件信息还可以包括其他信息,对此本实施例不进行限定,可以根据实际需求按照类似方法获取其他数据信息。
s102,若文件信息中的文件大小小于预设数值,则将文件信息写入缓存空间。
其中,预设数值可以是预先根据实际存储文件信息的存储空间中的一个存储单元的大小确定的,例如,若hdfs系统的存储空间中的一个数据存储单元的大小为128m,则可以是将该128m作为预设数值。缓存空间可以是用于暂时存储文件信息的存储空间,可选的,在本实施例的hdfs系统中,可以优选redis数据库作为缓存空间。
可选的,本实施例中,在确定出查询文件的文件信息后,并不是直接将该查询文件的文件信息写入系统对应的实际存储空间(如hdfs系统的存储空间)中,而是先判断获取的每一个查询文件的文件信息中记录的文件大小是否小于预设数值,若小于,则说明该查询文件是小文件,若将该查询文件直接存储在实际存储空间中,不但造成存储空间的浪费,在后续处理与该查询文件相关的任务时,还会降低的任务处理效率,所以此时可以是将小文件的文件信息写入缓存空间内。若文件信息中的文件大小大于或等于该预设数值,则说明该查询文件不属于小文件,此时可以是直接将该文件信息写入系统的实际存储空间内。
可选的,由于s101确定出的查询文件的个数为多个,则此时为了提高文件信息的写入效率,本实施例可以是设置多个缓存写入进程,基于多个缓存写入进程,并发执行将文件信息写入缓存空间集的操作。
s103,若缓存空间内已写入的文件信息达到上传条件,则将满足上传条件的文件信息进行合并处理后写入实际存储空间。
其中,上传条件可以是预先设置的可执行一次将缓存空间内的文件信息写入实际存储空间的触发条件。可选的,已写入的文件信息达到上传条件,可以包括:已写入的文件信息的总内存达到内存上传要求;和/或,当前时刻达到已写入的文件信息的上传周期。具体的,已写入的文件信息的总内存达到内从上传要求可以是指缓存空间内已经写入的文件信息的总量达到了预先设置的某一内存上限值,如128m。当前时刻达到已写入的文件信息的上传周期可以是指当前时刻距离上一次缓存空间向实际存储空间上传数据的时间间隔已经达到预设时间周期,如5小时。
可选的,本实施例可以是实时或定时获取缓存空间中已写入的文件信息,并判断所述已写入的文件信息是否达到上述两个上传条件中的至少一个,若达到,则说明需要执行一次将缓存空间的文件信息写入实际存储空间的操作。具体的执行过程可以是:将缓存空间内当前已写入的各个小文件的文件信息进行合并处理成一个文件包,例如,可以是将各个小文件进行封装处理,得到一个文件包;在对满足上传条件的各个小文件进行合并处理后,将合并处理后的文件包写入系统的实际存储空间中。
可选的,本实施例可以在将满足上传条件的文件信息进行合并处理写入实际存储空间之后,执行在缓存空间删除已写入实际存储空间的文件信息。在缓存空间对已写入实际存储空间的文件信息所占用的缓存空间进行释放。这样设置的好处在于可以及时释放缓存空间,保证缓存空间具有充足的可用内存。
可选的,本发明实施例所述方法由hdfs系统中的一个服务来完成,还可以是由hdfs系统中的两个服务配合完成,优选的,可以是由hdfs系统中的读写服务和管理服务配合执行;所述读写服务用于进行文件信息的写入和读取操作,其他操作由所述管理服务执行。具体的,可以是由管理服务根据文件查询参数,确定查询文件的文件信息,然后将确定的查询文件的文件信息发送至读写服务,读写服务会将文件信息中的文件大小小于预设数值的文件信息写入缓存空间,将文件信息中的文件大小大于或等于预设数值的文件信息写入实际存储空间。管理服务还会实时或定时获取缓存空间中已写入的文件信息,并判断已写入的文件信息是否达到上述两个上传条件中的至少一个,若达到,则生成上传指令发送至读写服务,读写服务在接收到上传指令后,会根据该上传指令,将满足上传条件的文件信息进行合并处理后写入实际存储空间。需要说明的是,上述读写服务和管理服务可以是一个电子设备上的两个不同的进程,也可以是位于hdsf系统的两个不同电子设备上,对此本实施例不进行限定。
本实施例提供的数据处理方法,在根据文件查询参数,确定查询文件的文件信息后先判断该文件信息的文件大小是否小于预设数值,若是则将该文件信息先写入缓存空间,当缓存空间内的文件信息达到上传条件后,对缓存空间内的文件信息进行合并后以一个文件的形式写入实际存储空间。本发明实施例的技术方案,对于待存储的小文件信息,并非直接写入实际存储空间的一个存储单元内,而是先写入缓存空间,在多个小文件信息满足上传条件后,将多个小文件信息合并处理,以大文件的形式存储在实际存储空间的一个存储单元内,极大的降低了数据文件在实际存储单元中的占用内存。且由于多个小文件只占用一个存储单元,所以在后续处理与这些小文件相关的任务时,只需进行一次任务的启动和释放即可,极大的提高了系统对存储数据的处理效率。
可选的,为了保证文件信息完整写入缓存空间,本实施例可以是预先设置一个写入操作的参数变量,例如,可以是设置一个计数器,通过计数器记录该写入参数的参数变量的数值。具体的,可以是在将文件信息写入缓存空间之前,先执行:将写入操作的参数变量设置为第一数值;例如可以是将记录写入参数的参数变量的计数器在原有数值0的基础上加1,以使所述写入操作的参数变量为第一数值1;在执行完将文件信息写入缓存空间之后,执行将写入操作的参数变量设置为第二数值,例如,可以是将记录写入参数的参数变量的计数器在原有数值1的基础上减1,以使写入操作的参数变量为第二数值0。相应的,后续在进行缓空间数据向实际存储空间上传时,则是当写入操作的参数变量为第二数值(即当前缓存空间内的文件信息已经成功写入),且缓存空间内已写入的文件信息达到上传条件,则执行将满足上传条件的文件信息进行合并处理后写入实际存储空间。
实施例二
图2为本发明实施例二提供的一种数据处理方法的流程图,本实施例在上述实施例的基础上,进行了进一步的优化,在文件信息中增加了文件类型,并给出了增加了文件类型后如何执行本发明实施例的数据处理方法的具体情况介绍。该方法具体包括:
s201,根据文件查询参数,确定查询文件的文件信息,所述文件信息包括:文件名称、文件存储路径、文件大小以及文件类型。
其中,本步骤在上述实施例的基础上,文件信息中增加了文件类型。所述文件类型是对文件按照一定的分类规则划分后的类型,例如,分类规则可以是按照文件有效存储时长进行分类;也可以是按照文件所属业务类型进行分类;也可以是按照文件来源进行分类等,对此本实施例不进行限定。其具体的确定方法可以与上述介绍的确定文件名称、文件存储路径以及文件大小的方法类似,即根据过滤函数和文件信息参数(如类型)从文件数据信息中筛选获取。还可以是根据文件查询参数通过查表确定,具体的,该表中记录有文件查询参数与其对应的文件类型之间的映射关系,通过本次的文件查询参数,在该表中查找对应的文件类型。
s202,若文件信息中的文件大小小于预设数值,则将文件信息写入缓存空间中文件类型对应的存储区域。
可选的,为了便于缓存空间内对小文件的管理,本实施例可以是将缓存空间按照文件类型,划分为多个存储区域,每个存储区域只存储该区域所属文件类型的文件信息。例如,若文件类型为文件有效存储时长(即三个月、一年、永久存储),则可以是预先将缓存空间分为三个存储区域,存储区域1作为文件类型为三个月有效存储时长对应的文件信息存储区域、存储区域2作为文件类型为一年有效存储时长对应的文件信息存储区域、存储区域3作为文件类型为永久存储对应的文件信息存储区域。具体的,本步骤可以是在文件信息中的文件大小小于预设数值后,先根据文件信息中记录的文件类型,在缓存空间中找到该文件类型对应的存储区域,然后将该文件信息写入该文件类型对应的存储区域处。例如,若本步骤待存储的文件信息中记录的文件类型为一年有效存储时长,则可以是将该文件信息写入缓存空间中的存储区域2对应的存储区域。
s203,对于缓存空间中每一文件类型对应的存储区域,若存储区域中已写入的文件信息达到上传条件,则将存储区域内满足上传条件的文件信息进行合并处理后写入实际存储空间。
可选的,由于s202在缓存空间写入文件信息时,是将文件信息按照其所属文件类型写在了缓存空间的不同存储区域处,所以此时可以是为每一个文件类型对应的存储区域都设置该区域对应的上传条件,即该存储区域已写入的文件信息的总内存达到该存储区域的内存上传要求;和/或,当前时刻达到该存储区域对应的已写入的文件信息的上传周期。
具体的,系统可以实时或定时获取缓存空间内每一文件类型对应的存储区域内已写入的文件信息,并判断该存储区域内所已写入的文件信息是否达到上述两个上传条件中的至少一个,若达到,则将达到上传条件对应的存储区域内的多个已写入文件进行合并处理后写入实际存储空间。具体的如何针对一个存储区域内的多个已写入文件进行合并处理以及写入实际存储空间的操作在上述实施例已经进行了详细介绍,在此不进行赘述。
本实施例提供的数据处理方法,在根据文件查询参数,确定查询文件的文件信息后,先判断该文件信息的文件大小是否小于预设数值,若是则将该文件信息先写入缓存空间中该文件所属文件类型对应的存储区域;对于缓存空间中的任意存储区域,当该存储区域内的文件信息达到上传条件,则对该存储区域内的文件信息进行合并后以一个文件的形式写入实际存储空间。本发明实施例的技术方案,对于待存储的小文件信息,在缓存空间内按照该文件所属文件类型进行分类存储,从而使得后续上传到的实际存储空间的每一存储单元中的多个小文件都属于同一文件类型,在保证文件信息占用内存小,数据处理效率高的基础上,还提高了后续对小文件管理的便捷性。
实施例三
图3为本发明实施例三提供的一种数据处理方法的流程图。本实施例在上述各实施例的基础上,进行了进一步的优化。给出了针对hdfs系统中的读写服务和管理服务如何相互配合实现数据写入和读取操作的具体情况介绍。
在本实施例中,为避免hdfs系统中每个读写服务自己定义缓存空间(redis)中的缓存数据,导致缓存数据的冲突以及redis占用的内存与读写服务的数量成正比增长,本发明实施例引入管理服务(即mapfile服务),由mapfile服务统一管理redis和hdfs系统中存储文件数据的情况。mapfile服务和读写服务可以是在hdfs系统启动后自动启动。但需要说明的是,本实施例中的mapfile服务通常不进行文件信息写入和读取的操作,具体文件信息的写入和读取操作通常由读写服务执行。参见图3,该方法具体包括:
s301,读写服务向管理服务传输文件查询参数。
可选的,当hdfs系统具有文件存储需求时,需要先查询到对应的文件信息才可以进行后续的文件存储操作,此时可以是先通过读写服务向mapfile服务传输本次待存储文件对应的文件查询参数。其中,文件查询参数可以用户通过hdfs系统的读写服务手动输入的,还可以是hdfs系统根据当前业务需求自动确定的。
s302,管理服务根据文件查询参数,确定查询文件的文件信息。
其中,文件信息包括文件名称、文件存储路径以及文件大小。
s303,管理服务将查询文件的文件信息传输至读写服务,且将写入操作的参数变量设置为第一数值。
可选的,由于mapfile服务通常情况下不进行文件信息写入操作,而是由读写服务执行,所以本实施例当mapfile服务确定出查询文件的文件信息后,需要将该文件信息传输至读写服务,为了防止本次写入操作失败。mapfile服务可以在将文件信息传输至读写服务的同时或之前,将写入操作的参数变量设置为第一数值,如设置为1。当写入操作的参数变量的数值为1时,则说明本次文件信息写入正在执行或未执行,即还没有写入成功。
s304,读写服务判断文件信息中的文件大小是否小于预设数值,若否,则执行s305,若是,则执行s306。
s305,读写服务将文件信息写入实际存储空间,并向管理服务发送写入完成指令。
s306,读写服务将文件信息写入缓存空间,并向管理服务发送写入完成指令。
可选的,由于mapfile服务需要通过写入操作的参数变量的数值来监管读写服务是否执行完本次文件写入操作,所以当读写服务执行完s305或s306的文件信息写入操作后,需要向mapfile服务反馈本次文件写入操作对应的完成指令。
s307,管理服务接收到完成指令后,将写入操作的参数变量设置为第二数值。
可选的,mapfile服务接收到读写服务发送的完成指令后,说明本次文件信息已经写入缓存空间或实际存储空间,即本次文件写入操作完成,此时mapfile服务可以将写入操作的参数变量设置为第二数值,如设置为0。
s308,若管理服务判断缓存空间内已写入的文件信息达到上传条件,则向读写服务发送上传指令。
其中,上传指令可以是用于指示读写服务将缓存空间中存储的文件信息上传到实际存储空间的指令。其中,该指令可以仅是上传指令,并不包含待上传文件的相关信息;也可以包括待上传文件的文件名称;还可以包含其他信息,例如,当缓存空间是按照文件类型分区域存储时,此时上传指令中还应该包括待上传文件在缓存空间中对应的存储区域。
可选的,由于mapfile服务通常不执行文件信息写入操作,所以当mapfile服务判断当前需要将缓存空间内的文件信息上传至实际存储空间时,可以是生成向实际缓存空间上传文件信息的上传指令。
s309,读写服务根据上传指令,将满足上传条件的文件信息进行合并处理后写入实际存储空间,并在缓存空间删除已写入实际存储空间的文件信息。
可选的,当上传指令中不包含待上传文件的相关信息时,读写服务可以是将此时存储空间中已写入的所有文件信息进行合并处理操作后,写入实际存储空间,并将缓存空间内的文件信息进行清空;当上传指令中包括待上传文件的文件名称时,读写服务可以是从缓存空间中获取上传指令包含的文件名称对应的文件信息,然后将这些文件信息进行合并处理操作后,写入实际存储空间,并将写入实际存储空间的文件信息在缓存空间中删除;当上传指令中包含存储区域时,读写服务可以是将该存储区域内满足的所有文件信息或上传指令中指出的文件名称对应的文件信息进行合并处理后写入实际存储空间,并将写入实际存储空间的文件信息在缓存空间中删除。
s310,若检测到文件读取指令,则读写服务从缓存空间读取文件读取指令对应的目标文件信息;若缓存空间中不存在目标文件信息,则从实际存储空间中读取目标文件信息。
其中,文件读取指令可以是hdfs系统在执行与文件信息相关的任务的过程中,需要读取已存储的文件时,生成的指令,该指令可以包括待读取文件的文件信息中的至少一项内容。
可选的,本实施例hdfs系统在检测到文件读取指令后,由读写服务先访问缓存空间,从缓存空间中查找是否存在与文件读取指令相匹配的文件信息,若有,则该匹配的文件信息为目标文件信息,并从缓存空间直接获取该目标文件信息;若没有,则读写服务访问实际存储空间,并从实际存储空间中查找并读取与文件读取指令相匹配的文件信息(即目标文件信息)。
可选的,为了提高文件读取效率,本实施例的文件读取指令中还可以包含该文件写入的时间,由于缓存空间的已写入文件信息的上传条件包括当前时刻达到已写入的文件信息的上传周期,所以若文件读取指令中包含的文件写入时间距离当前时刻已经超过一个上传周期,则本步骤读写服务可以跨过缓存空间,直接从实际存储空间中查找并读取目标文件信息。
可选的,在本实施例中,为了防止读写服务异常导致文件信息无法正常写入到缓存空间或实际存储空间的情况发生,本实施例可以是由mapfile服务定时检测是否存在超时未存储的文件信息,例如,可以是检测写入操作的参数变量的数值为第一数值的持续时长是否大于超时时长(如10分钟),若是,则说明存在超时未存储的文件信息。此时由mapfile服务将超时未存储的文件信息写入对应的存储空间(缓存空间或实际存储空间)。
本实施例提供的数据处理方法,通过读写服务和管理服务相互配合实现本实施例的文件信息的存储以及读取操作,对于待存储的大文件直接写入实际存储空间,对于待存储的小文件先写入缓存空间,再将多个小文件信息合并处理,以大文件的形式写入实际存储空间,极大的降低了数据文件在实际存储单元中的占用内存,进而提高了系统对存储数据的处理效率,为hdfs系统的数据存储和读取提供了一种新思路。
实施例四
图4为本发明实施例四提供的一种数据处理装置的结构框图,该装置可执行本发明任意实施例所提供的数据处理方法,具备执行方法相应的功能模块和有益效果。如图4所示,该装置可以包括:
文件信息确定模块401,用于根据文件查询参数,确定查询文件的文件信息,所述文件信息包括:文件名称、文件存储路径以及文件大小;
缓存空间写入模块402,用于若所述文件信息中的文件大小小于预设数值,则将所述文件信息写入缓存空间;
实际空间写入模块403,用于若所述缓存空间内已写入的文件信息达到上传条件,则将满足所述上传条件的文件信息进行合并处理后写入实际存储空间。
本实施例提供的数据处理装置,在根据文件查询参数,确定查询文件的文件信息后先判断该文件信息的文件大小是否小于预设数值,若是则将该文件信息先写入缓存空间,当缓存空间内的文件信息达到上传条件后,对缓存空间内的文件信息进行合并后以一个文件的形式写入实际存储空间。本发明实施例的技术方案,对于待存储的小文件信息,并非直接写入实际存储空间的一个存储单元内,而是先写入缓存空间,在多个小文件信息满足上传条件后,将多个小文件信息合并处理,以大文件的形式存储在实际存储空间的一个存储单元内,极大的降低了数据文件在实际存储单元中的占用内存。且由于多个小文件只占用一个存储单元,所以在后续处理与这些小文件相关的任务时,只需进行一次任务的启动和释放即可,极大的提高了系统对存储数据的处理效率。
进一步的,上述文件信息确定模块401具体用于:
根据过滤函数和文件查询参数,确定满足所述查询参数的查询文件;
根据所述过滤函数和文件信息参数,从所述查询文件的数据信息中确定所述查询文件的文件名称、文件存储路径以及文件大小作为所述查询文件的文件信息。
进一步的,上述文件信息中还包括:文件类型,则上述缓存空间写入模块402具体用于:
将所述文件信息写入缓存空间中所述文件类型对应的存储区域;
相应的,上述实际空间写入模块403具体用于:
对于所述缓存空间中每一文件类型对应的存储区域,若所述存储区域中已写入的文件信息达到上传条件,则将所述存储区域内满足所述上传条件的文件信息进行合并处理后写入实际存储空间。
进一步的,上述已写入的文件信息达到上传条件,包括:
所述已写入的文件信息的总内存达到内存上传要求;和/或,
当前时刻达到所述已写入的文件信息的上传周期。
进一步的,上述实际空间写入模块还用于:
若所述文件信息中的文件大小大于或等于所述预设数值,则将所述文件信息写入实际存储空间。
进一步的,上述装置还包括参数变量设置模块,具体用于:
在将所述文件信息写入缓存空间之前,将写入操作的参数变量设置为第一数值;
相应的,在将所述文件信息写入缓存空间之后,将所述写入操作的参数变量设置为第二数值。
进一步的,上述装置还包括:
文件信息删除模块,用于在所述缓存空间删除已写入实际存储空间的文件信息。
进一步的,上述装置还包括文件信息读取模块,具体用于:
若检测到文件读取指令,则从缓存空间读取所述文件读取指令对应的目标文件信息;
若所述缓存空间中不存在所述目标文件信息,则从实际存储空间中读取所述目标文件信息。
值得注意的是,上述数据处理装置的实施例中,所包括的各个模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;例如,该装置可以仅包括读写服务模块和管理服务模块,读写服务模块可实现文件信息的写入和读取操作;其他操作由管理服务模块实现。另外,各功能模块的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
实施例五
图5为本发明实施例五提供的一种电子设备的结构示意图。图5示出了适于用来实现本发明实施方式的示例性电子设备50的框图。图5显示的电子设备50仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。如图5所示,该电子设备50以通用计算设备的形式表现。该电子设备50的组件可以包括但不限于:一个或者多个处理器或者处理单元501,系统存储器502,连接不同系统组件(包括系统存储器502和处理单元501)的总线503。
总线503表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(isa)总线,微通道体系结构(mac)总线,增强型isa总线、视频电子标准协会(vesa)局域总线以及外围组件互连(pci)总线。
电子设备50典型地包括多种计算机系统可读介质。这些介质可以是任何能够被电子设备50访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
系统存储器502可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(ram)504和/或高速缓存存储器505。电子设备50可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统506可以用于读写不可移动的、非易失性磁介质(图5未显示,通常称为“硬盘驱动器”)。尽管图5中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如cd-rom,dvd-rom或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线503相连。系统存储器502可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
具有一组(至少一个)程序模块507的程序/实用工具508,可以存储在例如系统存储器502中,这样的程序模块507包括但不限于操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块507通常执行本发明所描述的实施例中的功能和/或方法。
电子设备50也可以与一个或多个外部设备509(例如键盘、指向设备、显示器510等)通信,还可与一个或者多个使得用户能与该设备交互的设备通信,和/或与使得该电子设备50能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(i/o)接口511进行。并且,电子设备50还可以通过网络适配器512与一个或者多个网络(例如局域网(lan),广域网(wan)和/或公共网络,例如因特网)通信。如图5所示,网络适配器512通过总线503与电子设备50的其它模块通信。应当明白,尽管图5中未示出,可以结合电子设备50使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、raid系统、磁带驱动器以及数据备份存储系统等。
处理单元501通过运行存储在系统存储器502中的程序,从而执行各种功能应用以及数据处理,例如实现本发明实施例所提供的数据处理方法。
实施例六
本发明实施例六还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时可实现上述实施例所述的数据处理方法。
本发明实施例的计算机存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是但不限于:电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、rf等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言,诸如java、smalltalk、c++,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络,包括局域网(lan)或广域网(wan),连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
上述实施例序号仅仅为了描述,不代表实施例的优劣。
本领域普通技术人员应该明白,上述的本发明实施例的各模块或各操作可以用通用的计算装置来实现,它们可以集中在单个计算装置上,或者分布在多个计算装置所组成的网络上,可选地,他们可以用计算机装置可执行的程序代码来实现,从而可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或操作制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件的结合。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间的相同或相似的部分互相参见即可。
以上所述仅为本发明的优选实施例,并不用于限制本发明,对于本领域技术人员而言,本发明可以有各种改动和变化。凡在本发明的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
技术特征:
1.一种数据处理方法,其特征在于,包括:
根据文件查询参数,确定查询文件的文件信息,所述文件信息包括:文件名称、文件存储路径以及文件大小;
若所述文件信息中的文件大小小于预设数值,则将所述文件信息写入缓存空间;
若所述缓存空间内已写入的文件信息达到上传条件,则将满足所述上传条件的文件信息进行合并处理后写入实际存储空间。
2.根据权利要求1所述的方法,其特征在于,根据文件查询参数,确定查询文件的文件信息,包括:
根据过滤函数和文件查询参数,确定满足所述查询参数的查询文件;
根据所述过滤函数和文件信息参数,从所述查询文件的数据信息中确定所述查询文件的文件名称、文件存储路径以及文件大小作为所述查询文件的文件信息。
3.根据权利要求1所述的方法,其特征在于,所述文件信息中还包括:文件类型,则将所述文件信息写入缓存空间,包括:
将所述文件信息写入缓存空间中所述文件类型对应的存储区域;
相应的,若所述缓存空间内已写入的文件信息达到上传条件,则将满足所述上传条件的文件信息进行合并处理后写入实际存储空间,包括:
对于所述缓存空间中每一文件类型对应的存储区域,若所述存储区域中已写入的文件信息达到上传条件,则将所述存储区域内满足所述上传条件的文件信息进行合并处理后写入实际存储空间。
4.根据权利要求1所述的方法,其特征在于,所述已写入的文件信息达到上传条件,包括:
所述已写入的文件信息的总内存达到内存上传要求;和/或,
当前时刻达到所述已写入的文件信息的上传周期。
5.根据权利要求1所述的方法,其特征在于,根据文件查询参数,确定查询文件的文件信息之后,还包括:
若所述文件信息中的文件大小大于或等于所述预设数值,则将所述文件信息写入实际存储空间。
6.根据权利要求1所述的方法,其特征在于,在将所述文件信息写入缓存空间之前,还包括:
将写入操作的参数变量设置为第一数值;
相应的,在将所述文件信息写入缓存空间之后,还包括:
将所述写入操作的参数变量设置为第二数值。
7.根据权利要求1所述的方法,其特征在于,将满足所述上传条件的文件信息进行合并处理后写入实际存储空间之后,还包括:
在所述缓存空间删除已写入实际存储空间的文件信息。
8.根据权利要求1所述的方法,其特征在于,还包括:
若检测到文件读取指令,则从缓存空间读取所述文件读取指令对应的目标文件信息;
若所述缓存空间中不存在所述目标文件信息,则从实际存储空间中读取所述目标文件信息。
9.一种数据处理装置,其特征在于,包括:
文件信息确定模块,用于根据文件查询参数,确定查询文件的文件信息,所述文件信息包括:文件名称、文件存储路径以及文件大小;
缓存空间写入模块,用于若所述文件信息中的文件大小小于预设数值,则将所述文件信息写入缓存空间;
实际空间写入模块,用于若所述缓存空间内已写入的文件信息达到上传条件,则将满足所述上传条件的文件信息进行合并处理后写入实际存储空间。
10.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-8中任一所述的数据处理方法。
11.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-8中任一所述的数据处理方法。
技术总结
本发明公开了一种数据处理方法、装置、设备和存储介质。其中,该方法包括:根据文件查询参数,确定查询文件的文件信息,所述文件信息包括:文件名称、文件存储路径以及文件大小;若所述文件信息中的文件大小小于预设数值,则将所述文件信息写入缓存空间;若所述缓存空间内已写入的文件信息达到上传条件,则将满足所述上传条件的文件信息进行合并处理后写入实际存储空间。本发明实施例的技术方案能够极大的降低数据文件在存储单元中的占用内存,提高系统对存储数据的处理效率。
技术研发人员:吴万睿;谢永恒;程强;万月亮;冯宇波
受保护的技术使用者:北京锐安科技有限公司
技术研发日:.11.01
技术公布日:.02.21