文件的存储转换处理方法、装置、电子设备及存储介质
技术领域
本申请属于数据存储
技术领域
,尤其涉及一种文件的存储转换处理方法、装置、电子设备及存储介质统。背景技术
在当今的数据化时代,海量数据存储是数据存储领域的一个常见需求。各种图文、视频等的内容提供商/App(Application,应用程序)运营商每天的新增文件可能会多达十几甚至几十亿条,对这些海量数据文件的后端存储管理相应成为当前必须面临的问题。
面对海量数据文件,后端存储系统需通过合理方式对其进行管理,来尽可能达到访问性能与存储资源占用/存储成本之间的平衡。相关技术中,通常从时间、文件的使用频次这些常规维度对数据文件进行存储转换管理,如,将存储时间较短或使用频次较高的文件采用性能较高的方式存储,以保证这些数据的访问性能,将存储时间较长或使用频次较低的文件转换为以性能较低的方式存储甚至删除,以节约存储成本。然而,后端存储系统该管理方式,难以满足用户(如,不同的内容提供商/App运营商)日渐产生的多样化数据文件的多样化存储管理需求。
另外,相关技术通常需要基于人工方式完成对数据文件的存储转换管理,这相应需要用户根据时间、使用频次这些维度记录各数据文件,并通过调用服务的接口来处理这些文件以实现对这些文件的存储转换管理,为用户带来了其自身业务之外的额外负担。
发明内容
有鉴于此,本申请提供了一种文件的存储转换处理方法、装置、电子设备及存储介质,用于通过实现自动化的、基于标签的文件存储转换处理,来解决相关技术存在的上述技术问题,更好地满足用户多样化数据的存储管理需求,并减轻用户负担。
具体技术方案如下:
一种文件的存储转换处理方法,包括:
获取预先配置的第一存储转换规则;所述第一存储转换规则为:通过预先为数据文件标记标签,并基于为数据文件标记的标签配置的规则;
解析所述第一存储转换规则,得到所述第一存储转换规则的规则内容;
根据解析得到的规则内容,按照预定的规则执行策略,对标记有标签的数据文件执行所述第一存储转换规则。
可选的,所述解析所述第一存储转换规则,得到所述第一存储转换规则的规则内容,包括:
解析所述第一存储转换规则,得到所述第一存储转换规则包括的至少一个第一子规则的规则内容;
其中,所述第一子规则的规则内容包括:时间条件、标签条件和操作类型。
可选的,所述第一存储转换规则的第一子规则为基于标签的过期删除子规则、转换归档子规则和转换低频子规则中的任意一种;
其中:
基于标签的过期删除子规则的规则内容包括:第一时间条件、第一标签条件和删除操作类型;
基于标签的转换归档子规则的规则内容包括:第二时间条件、第二标签条件和转换归档操作类型;
基于标签的转换低频子规则的规则内容包括:第三时间条件、第三标签条件和转换低频操作类型。
可选的,所述根据解析得到的规则内容,按照预定的规则执行策略,对标记有标签的数据文件执行所述第一存储转换规则,包括:
根据解析得到的相应第一子规则的规则内容,按照优先级高低顺序依次执行所述第一存储转换规则包括的各个第一子规则;其中,所述基于标签的过期删除子规则、转换归档子规则和转换低频子规则的优先级依次降低;
在执行所述第一存储转换规则的任一第一子规则时,确定符合第一子规则对应的时间条件和标签条件的目标数据文件,并对所述目标数据文件执行第一子规则所对应操作类型的操作。
可选的,所述确定符合第一子规则对应的时间条件和标签条件的目标数据文件,包括:
扫描数据文件的文件索引,所述文件索引中的每条索引包括所对应数据文件的文件标识、时间戳及数据文件的至少一个标签;
在扫描过程中,识别时间戳满足第一子规则对应的时间条件且标记的标签满足第一子规则对应的标签条件的目标数据文件。
可选的,所述扫描数据文件的文件索引,包括:
在执行当前第一子规则时,确定所述第一存储转换规则中是否存在优先级高于所述当前第一子规则的高优先级第一子规则;
若不存在,获取所述当前第一子规则对应的上一次扫描进度,根据获取的上一次扫描进度确定所述当前第一子规则的当前扫描进度,并根据确定的当前扫描进度扫描数据文件的文件索引;
若存在,获取所述当前第一子规则对应的上一次扫描进度和所述高优先级第一子规则对应的上一次扫描进度,根据所述当前第一子规则的上一次扫描进度和所述高优先级第一子规则的上一次扫描进度确定所述当前第一子规则的当前扫描进度,并根据确定的当前扫描进度扫描数据文件的文件索引。
可选的,所述扫描数据文件的文件索引,包括:
扫描数据文件的存量索引和增量索引,并将扫描出的相应第一子规则待处理的目标数据文件的文件信息推送至所述相应第一子规则对应的队列中;
其中,所述存量索引包括:在向存储系统中存入数据文件时为数据文件生成的索引,以及在更新存储系统中数据文件的标签时为数据文件更新生成的索引;所述增量索引包括:在更新存储系统中数据文件的标签时为数据文件更新生成的索引;
在更新存储系统中数据文件的标签时,数据文件对应的时间戳不变。
可选的,所述对所述目标数据文件执行第一子规则所对应操作类型的操作,包括:
依次处理第一子规则对应的队列中的文件信息,以对文件信息对应的目标数据文件执行第一子规则所对应操作类型的操作。
可选的,所述扫描数据文件的存量索引和增量索引,包括:
如果存量索引和增量索引的待扫描任务仅包括执行所述第一存储转换规则之前生成的索引,先扫描所述增量索引,或先扫描所述存量索引,或并行扫描所述存量索引和所述增量索引;
如果存量索引和增量索引的待扫描任务包括执行所述第一存储转换规则之前生成的索引以及执行所述第一存储转换规则过程中生成的索引,先扫描所述存量索引。
可选的,在执行所述第一存储转换规则之前,还包括:
确定在执行所述第一存储转换规则之前是否有执行第二存储转换规则;
其中,所述第二存储转换规则为基于数据文件的时间戳配置的规则;所述第二存储转换规则包括基于时间戳的过期删除子规则、转换归档子规则和转换低频子规则中的至少一种;
若存在,所述根据获取的上一次扫描进度确定所述当前第一子规则的当前扫描进度,包括:
根据所述当前第一子规则对应的上一次扫描进度和所述第二存储转换规则中与所述当前第一子规则类型相同的第二子规则对应的上一次扫描进度,确定所述当前第一子规则的当前扫描进度;
若存在,所述根据所述当前第一子规则的上一次扫描进度和所述高优先级第一子规则的上一次扫描进度确定所述当前第一子规则的当前扫描进度,包括:
根据所述当前第一子规则对应的上一次扫描进度和所述第二存储转换规则中与所述当前第一子规则类型相同的第二子规则对应的上一次扫描进度,以及根据所述高优先级第一子规则对应的上一次扫描进度和所述第二存储转换规则中与所述高优先级第一子规则类型相同的第二子规则对应的上一次扫描进度,确定所述当前第一子规则的当前扫描进度。
一种文件的存储转换处理装置,包括:
获取模块,用于获取预先配置的第一存储转换规则;所述第一存储转换规则为:通过预先为数据文件标记标签,并基于为数据文件标记的标签配置的规则;
解析模块,用于解析所述第一存储转换规则,得到所述第一存储转换规则的规则内容;
规则执行模块,用于根据解析得到的规则内容,按照预定的规则执行策略,对标记有标签的数据文件执行所述第一存储转换规则。
一种电子设备,包括:
存储器,用于存放计算机指令集;
处理器,用于通过执行所述存储器上存放的指令集,实现如上任一项所述的文件的存储转换处理方法。
一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机指令集,所述计算机指令集被处理器执行时实现如上任一项所述的文件的存储转换处理方法。
根据以上方案可知,本申请实施例提供的文件的存储转换处理方法、装置、电子设备及存储介质,对于数据文件的存储转换处理,支持对文件进行标签标记,并支持基于标记的标签配置对文件的第一存储转换规则,使用者即用户可根据需求对数据文件进行标签标记并配置基于标签的第一存储转换规则,后端存储系统通过对用户配置的第一存储转换规则进行解析,并根据解析得到的规则内容,按照预定的规则执行策略对数据文件执行第一存储转换规则,即可实现自动化的、基于标签的文件存储转换处理。无需用户按人工方式对海量文件进行管理(如手动删除过期文件、手动将文件归档或转低频等),且灵活的标签标记及基于标签的规则配置,更好地满足了用户日渐产生的多样化数据文件的多样化存储管理需求。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1是本申请实施例提供的文件的存储转换处理方法的流程示意图;
图2是本申请实施例提供的扫描数据文件的文件索引的实现过程流程图;
图3是本申请实施例提供的基于规则解析,自动对文件进行存储转换处理的逻辑示意图;
图4是本申请实施例提供的文件的存储转换处理装置的结构示意图;
图5是本申请实施例提供的电子设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
相关技术从时间、文件的使用频次这些常规维度对数据文件进行存储管理,申请人经研究发现,该方式难以满足用户日渐产生的多样化数据文件的多样化存储管理需求。例如,针对内容提供商/App运营商的海量、多样化的数据文件,图片、文章、视频等不同文件类型的数据文件,或同一文件类型的不同内容类型(如,娱乐、时政、新闻、科普等)的数据文件,或同一内容类型的不同重要程度的数据文件等等,可能有不同的管理需求,有些数据文件可在达到一定的存储时长时删除,有些则只允许转归档或转低频,上述方式中,需由用户针对海量、多样化数据文件的不同管理需求,逐一对其进行按需管理,为用户对多样化数据文件的存储管理带来了不便,尤其是需要用户通过人工方式来完成对这些海量、多样化数据信息记录及存储管理,为用户增加了其自身业务之外的额外负担。
为解决相关技术在对数据文件的存储转换处理中存在的上述技术问题,本申请公开一种文件的存储转换处理方法、装置、电子设备及存储介质,旨在通过实现自动化的、基于标签的文件存储转换处理,来更好地满足用户多样化数据的多样化存储管理需求,并减轻用户负担。
参见图1,示出了本申请实施例提供的文件的存储转换处理方法的一种流程示意图,该方法可应用于数据存储场景,典型的,可应用于云存储场景的云存储系统中,其中,云存储是一种网上在线存储的模式,即把数据存放在通常由第三方托管的多台虚拟服务器,而非专属的服务器上,相应的,在云存储场景中,可在云存储系统的虚拟服务器上部署并实施本申请的方法,但不限于此,对于非云存储场景,还可将本申请方法应用于实体服务器或个人计算机等物理设备。
如图1所示,本实施例的存储转换处理方法至少包括以下步骤:
步骤101、获取预先配置的第一存储转换规则。
其中,第一存储转换规则为:通过预先为数据文件标记标签(tag),并基于为数据文件标记的标签配置的规则。
为更好地满足用户多样化数据的存储管理需求,本申请为用户提供对数据文件的标签标记功能,支持用户根据文件的实际存储管理需求,为文件标记一维或多维标签。
用户为数据文件标记的标签可以是但不限于文件类型、文件的内容类型、文件的重要度、文件的关键信息等中的任意一维或多维标签。文件类型包括但不限于图片、视频、文章等,内容类型包括但不限于娱乐、时政、新闻、科普、教育等,文件的重要度包括但不限于高、中、低等多种不同的重要级别,文件的关键信息包括文件内容所对应的关键字、关键词或短语等。
存储系统如云存储系统的用户,可以是但不限于个人终端用户(如手机、平板用户),或内容提供商/App运营商用户。
针对其海量、多样化数据文件,用户可通过在其设备界面上对各个/各类(如视频类)数据文件打标签,实现从逻辑上对各数据文件进行分组,比如,为选择的多篇文章标记重要度“低”、内容类别为“娱乐”的标签,为选择的另外多篇文章标记重要度“高”、内容类别为“科普”的标签,为选择的多个视频标记重要度“中”、内容类别为“电视剧集”的标签等。
之后,可进一步基于为各数据文件标记的标签,进行第一存储转换规则的按需配置。第一存储转换规则包括一个或多个第一子规则,第一子规则可以是但不限于基于标签的过期删除子规则、转换归档子规则和转换低频子规则中的任意一种。也即,具体可将第一存储转换规则配置为,包括但不限于基于标签的过期删除子规则、转换归档子规则和转换低频子规则中的任意一种或多种。
第一存储转换规则中的任一第一子规则,至少包括对应的时间条件、标签条件和操作类型。
其中,第一子规则中的时间条件,用来指示第一子规则对应的待处理文件应满足的时间,时间条件可以但不限于采用绝对时间或相对时间的形式表示。以过期删除子规则为例,时间条件可表示为一个绝对时间点:2020-08-01,该绝对时间点表示需将2020-08-01日及其之前存储的符合标签条件的数据文件删除,时间条件还可表示为一个相对时间:21天,该相对时间表示需将存储时长达到21天的符合标签条件的数据文件删除。
时间条件可由用户设置或由系统默认设置。
第一子规则中的标签条件,用来指示第一子规则对应的待处理文件应具备的标签,第一子规则的标签条件可包括用户设置的一组或多组标签,每组标签包括用户设置的一维标签,或设置的多维标签的组合,数据文件具备标签条件中的任一组标签,即判定数据文件满足标签条件。简单举例说明,假设在过期删除子规则中设置的标签条件为:标签组一:文章-娱乐,标签组二:文章-教育-重要度“低”、标签组三:视频-广告,只要某一数据文件具备标签条件中的任一组标签,如“文章-娱乐”,该数据文件就满足标签条件。
第一子规则对应的操作类型,用来指示需对第一子规则对应的待处理文件执行的操作。其中,过期删除子规则对应的操作类型为删除,用于将数据文件从存储系统中删除;转换归档子规则对应的操作类型为转换归档,用于将数据文件在文件系统中的存储类型从标准存储或低频存储转换为归档存储;转换低频子规则对应的操作类型为转换低频,用于将数据文件在文件系统中的存储类型从标准存储转换为低频存储。不同第一子规则对应的不同操作类型相对固定,优选的,可由系统默认设置。
标准存储、低频存储和归档存储,为云存储的对象存储提供的三种存储类型,分别用于频繁访问的热点数据、低频访问的备份数据和适用于长期保存的归档数据的存储,以全面覆盖从热到冷的各种数据存储场景。
用户可根据需求,为通过标签标记实现逻辑分组的各数据文件进行所需的规则配置,例如,将允许过期删除的各数据文件分别对应的标签以标签组的方式设置在过期删除子规则中,将允许转换归档的各数据文件分别对应的标签以标签组的方式设置在转换归档子规则中,将允许转换低频的各数据文件分别对应的标签以标签组的方式设置在转换低频子规则中等,灵活地对不同处理需求的数据文件(如,某些数据文件允许按存储时间的增加而依次转低频、转归档、删除,某些数据文件只允许转低频、不允许转归档及删除,某些数据文件允许按存储时间的增加而依次转低频、转归档,但不允许删除等),按标签进行处理规则设置,最终可生成如以下形式的第一存储转换规则:
过期删除子规则
标签组11、标签组12、标签组13……;
转换归档子规则
标签组21、标签组22、标签组23……;
转换低频子规则
标签组31、标签组32、标签组33……。
实际应用中,允许在任一第一子规则中设置任意数量的标签组,甚至不设置标签组;且允许在不同的第一子规则中设置相同或不同的标签组。
当用户为文件标记标签,并基于标记的标签完成对文件的第一存储转换规则配置后,进一步将配置的第一存储转换规则提交至后端存储系统中。比如,对于云存储场景,具体可由手机、电脑等前端设备的用户将其配置的第一存储转换规则,通过互联网络传输至云存储系统。
步骤102、解析第一存储转换规则,得到第一存储转换规则的规则内容。
存储系统获取并解析用户配置的第一存储转换规则,得到第一存储转换规则包括的时间条件、标签条件和操作类型等规则内容。
具体的,对于第一存储转换规则中的过期删除子规则,相应可解析得到其第一时间条件、第一标签条件和删除操作类型等规则内容。
对于第一存储转换规则中的转换归档子规则,可解析得到其第二时间条件、第二标签条件和转换归档操作类型等规则内容。
对于第一存储转换规则中的转换低频子规则,可解析得到其第三时间条件、第三标签条件和转换低频操作类型等规则内容。
步骤103、根据解析得到的规则内容,按照预定的规则执行策略,对标记有标签的数据文件执行第一存储转换规则。
在解析得到第一存储转换规则的规则内容基础上,进一步按照预定的规则执行策略,执行第一存储转换规则中的各个第一子规则,以此实现基于标签维度,对数据文件进行所需的存储转换处理。
可以但不限于将上述的规则执行策略设定为:
按照优先级高低顺序依次执行第一存储转换规则包括的各个第一子规则。
其中,第一存储转换规则中的过期删除、转换归档和转换低频这些第一子规则的优先级依次降低,即,在优先级方面,删除>转换归档>转换低频,相应按照删除>转换归档>转换低频的优先级,串行执行过期删除、转换归档和转换低频这些第一子规则对应的操作。
其中,在执行第一存储转换规则的任一第一子规则时,具体确定符合该第一子规则对应的时间条件和标签条件的目标数据文件,并对确定出的目标数据文件执行该第一子规则所对应的操作类型的操作。
实施中,对于第一存储转换规则中的当前第一子规则,可扫描数据文件的文件索引。其中,文件索引中的每条索引包括所对应数据文件的文件标识、时间戳(mdtime)及数据文件的至少一个标签,除此之外,可选的,还可以包括文件的存储类型(storageClass)、文件在云存储系统中对应的桶标识(bucketname)等中的任一种或多种。数据文件的文件索引可以但不限于实现为索引表或索引目录等形式。
下文将主要以索引表为例进行说明。
在扫描过程中,识别时间戳满足当前第一子规则对应的时间条件且标记的标签满足当前第一子规则对应的标签条件的数据文件,将其作为第一子规则待处理的目标数据文件,并对目标数据文件执行第一子规则所对应操作类型的操作。
本申请实施例通过按照优先级高低顺序,依次执行第一存储转换规则中的过期删除子规则、转换归档子规则和转换低频子规则,可支持在执行转换归档子规则时,仅扫描并处理存储系统中未删除的数据文件,以及支持在执行转换低频子规则时,仅扫描并处理存储系统中未删除且未转换归档的数据文件。
实施中,针对用户配置的第一存储转换规则,可实时或定时启动对第一存储转换规则的执行,或按设定的周期条件在各个周期节点(如,每天的固定时刻)周期性执行用户设置的第一存储转换规则,对此不作限制。
根据以上方案可知,本申请实施例提供的文件的存储转换处理方法,对于数据文件的存储转换处理,支持对文件进行标签标记,并支持基于标记的标签配置对文件的第一存储转换规则,使用者即用户可根据需求对数据文件进行标签标记并配置基于标签的第一存储转换规则,后端存储系统通过对用户配置的第一存储转换规则进行解析,并根据解析得到的规则内容,按照预定的规则执行策略对数据文件执行第一存储转换规则,即可实现自动化的、基于标签的文件存储转换处理。无需用户按人工方式对海量文件进行管理(如手动删除过期文件、手动将文件归档或转低频等),且灵活的标签标记及基于标签的规则配置,更好地满足了用户日渐产生的多样化数据文件的多样化存储管理需求。
以下进一步对扫描数据文件的文件索引的实现过程进行详述。
如图2所示,具体可通过以下流程实现对数据文件的文件索引进行扫描:
步骤201、在执行第一存储转换规则的当前第一子规则时,确定第一存储转换规则中是否存在优先级高于该当前第一子规则的高优先级第一子规则;若不存在,执行步骤202,若存在,转至执行步骤203。
为避免对存储系统中全量索引表的扫描,相应避免对同一数据文件执行多个操作,在按序执行到第一存储转换规则的当前第一子规则时,优选的,可确定第一存储转换规则中是否存在优先级高于该当前第一子规则的高优先级第一子规则,若存在,相应可以以高优先级第一子规则的执行进度作为参考,来确定执行当前第一子规则时采用的当前扫描进度。
步骤202、获取当前第一子规则对应的上一次扫描进度,根据当前第一子规则对应的上一次扫描进度确定当前第一子规则的当前扫描进度,并根据确定的当前扫描进度扫描数据文件的文件索引。
另外,为了避免因进程重启(如,云存储系统在不同的周期节点因开始执行规则而产生的进程重启,或规则执行过程中因进程异常导致的重启等)导致的重复扫描,本实施例在执行规则时还会记录对文件的扫描进度。
其中,具体记录执行第一存储转换规则中的每一第一子规则后达到的扫描进度,以支持在后续执行同一第一子规则(如,在下一周期节点执行同一第一子规则)时,可将上一次执行该第一子规则时记录的扫描进度作为参照进行扫描,避免在已产生扫描进度的情况下从索引表的起始位置扫描。
相应的,在第一存储转换规则中不存在优先级高于该当前第一子规则的高优先级第一子规则的情况下,可直接取该当前第一子规则对应的上一次扫描进度(非空)作为当前扫描进度,对索引表进行扫描。
其中,若该当前第一子规则对应的上一次扫描进度为空,则从索引表的起始位置开始扫描。
步骤203、获取当前第一子规则对应的上一次扫描进度和上述高优先级第一子规则对应的上一次扫描进度,根据当前第一子规则对应的上一次扫描进度和该高优先级第一子规则对应的上一次扫描进度确定当前第一子规则的当前扫描进度,并根据确定的当前扫描进度扫描数据文件的文件索引。
在第一存储转换规则中存在优先级高于该当前第一子规则的高优先级第一子规则的情况下,根据该当前第一子规则对应的上一次扫描进度和该高优先级第一子规则对应的上一次扫描进度,来确定当前第一子规则的当前扫描进度。
其中,主要包括以下几种情况:
1)当前第一子规则与高优先级第一子规则两者的标签条件完全不同
即,当前第一子规则的标签条件与其高优先级第一子规则的标签条件中不存在相同的标签组。该情况下,直接取该当前第一子规则对应的上一次扫描进度(非空)作为当前扫描进度,对索引表进行扫描。
其中,若该当前第一子规则对应的上一次扫描进度为空,则从索引表的起始位置开始扫描。
扫描过程中,基于当前第一子规则的标签条件包括的全部标签组,过滤、识别出符合标签条件的目标数据文件,并将目标数据文件的文件信息推送至当前第一子规则对应的处理队列。
其中,推送至处理队列中的每条文件信息至少包括文件标识,如文件名称,除此之外,可选的,还可以包括文件的时间戳、标签等信息中的任意一种或多种。
2)当前第一子规则与高优先级第一子规则两者的标签条件完全相同
即,当前第一子规则的标签条件包括的各个标签组,与其对应的高优先级第一子规则的标签条件包括的各个标签组完全相同。
该情况下,确定当前第一子规则对应的上一次扫描进度和该高优先级第一子规则对应的上一次扫描进度中取值最大的扫描进度,并将取值最大的扫描进度作为该当前第一子规则的当前扫描进度。
扫描过程中,基于当前第一子规则的标签条件包括的全部标签组,过滤、识别出符合标签条件的目标数据文件,并将目标数据文件的文件信息(如,文件名)推送至当前第一子规则对应的处理队列。
3)当前第一子规则与高优先级第一子规则两者的标签条件部分相同
即,当前第一子规则的标签条件包括的各标签组中的一部分标签组,与其高优先级第一子规则的标签条件包括的各标签组中的一部分标签组相同。
该情况下,若高优先级第一子规则对应的上一次扫描进度不大于当前子第一规则对应的上一次扫描进度,取该当前第一子规则对应的上一次扫描进度(非空)作为当前扫描进度,对索引表进行扫描。且扫描过程中,基于当前第一子规则的标签条件包括的全部标签组,过滤、识别出符合标签条件的目标数据文件,并将目标数据文件的文件信息推送至当前第一子规则对应的处理队列。
若高优先级第一子规则对应的上一次扫描进度大于当前第一子规则的对应的上一次扫描进度,同样取该当前第一子规则对应的上一次扫描进度作为当前扫描进度,对索引表进行扫描。但扫描过程中,在当前第一子规则对应的上一次扫描进度与高优先级第一子规则对应的上一次扫描进度之间,基于当前第一子规则的标签条件包括的各个标签组中与高优先级第一子规则的标签条件包括的各个标签组中相区别的标签组,来过滤、识别出符合标签条件的目标数据文件,并将目标数据文件的文件信息推送至当前第一子规则对应的处理队列。以避免该时间段内符合当前第一子规则和高优先级第一子规则对应的相同标签组的同一数据文件被执行多个不同的动作(如,既将其转换归档,又将其转换低频等)。
通过上述的扫描过程,针对过期删除子规则,可得到其对应的待执行删除操作的文件信息队列;针对转换归档子规则,可得到其对应的待执行转换归档操作的文件信息队列;针对转换低频子规则,相应可得到其对应的待执行转换低频操作的文件信息队列。
每一第一子规则均对应相匹配的处理进程,后续可由第一子规则对应的处理进程,从第一子规则的对应的文件信息队列中依次取出各文件信息(如,文件名),并对文件信息指示的目标数据文件执行第一子规则所对应操作类型的操作即可。
具体的,对于过期删除子规则,其处理进程将其队列中各文件信息分别指示的目标数据文件从存储系统中删除;对于转换归档子规则,其处理进程将其队列中各文件信息分别指示的目标数据文件在存储系统中的存储类型转换为归档存储;对于转换低频子规则,其处理进程将其队列中各文件信息分别指示的目标数据文件在存储系统中的存储类型转换为低频存储。
本申请实施例通过按照删除>转换归档>转换低频的优先级高低顺序依次执行第一存储转换规则中的各个子规则,并结合记录的历史扫描进度合理确定当前扫描进度,有效避免了对索引表的全量扫描,以及避免了对同一数据文件执行多个操作(删除、转换归档、转换低频)。
本申请实施例中,除了为用户提供对数据文件的标签标记功能,还为用户提供对数据文件的标签更新功能,标签更新可以是指对数据文件增加标签、删除标签或修改标签。
云存储场景中,当用户将其数据文件上传至云存储系统进行存储时,系统将该文件的上传时间(或称文件的创建时间)记录为文件的时间戳,同时为文件创建包括文件标识、时间戳、文件标签等信息的一条索引,并将该条索引按照时间戳顺序添加至索引表中。后续,当用户因文件内容更新导致对数据文件重新覆盖式上传时,系统将该文件的时间戳调整为覆盖式上传的上传时间,并对其索引做同步调整。
与之相区别,文件标签的更新不会导致系统中文件的时间戳发生变化,这在基于标签的文件扫描及存储转换处理中,容易因文件标签发生更新而导致遗漏对文件的转换处理。为便于理解,现举例说明:假设在过期删除扫描中,已经扫描到2020-08-01,文件x的时间戳在该进度之前,假设为2020-07-25,且假设在扫描至2020-08-01的过程中,文件x由于不符合标签条件未被识别为待删除的目标数据文件,如果此时修改文件x的标签,使其满足标签条件,但由于当前进度已经扫描到2020-08-01(超过2020-07-25)从而会导致修改后符合标签条件的文件x被遗漏(即,遗漏删除标签修改后的该文件x)。
为解决上述技术问题,本申请实施例采用存量索引和增量索引来标识文件,可选的,具体可将存量索引实现为存量索引表形式,将增量索引实现为增量索引表形式。
其中,存量索引表包括:在向存储系统中存入数据文件时为数据文件生成的索引,以及在更新存储系统中数据文件的标签时为数据文件更新生成的索引;增量索引表包括:在更新存储系统中数据文件的标签时为数据文件更新生成的索引,即,增量索引表仅包括标签发生了更新的数据文件对应的索引。参见以下表1,提供了对存量索引表、增量索引表更详细的说明:
表1
基于上述两个索引表,在执行第一存储转换规则中的相应第一子规则,进行文件扫描时,一并扫描数据文件的存量索引表以及增量索引表,并将扫描出的相应第一子规则待处理的目标数据文件的文件信息,推送至该第一子规则对应的队列中。
具体的,如果存量索引表和增量索引表的待扫描任务仅包括执行第一存储转换规则之前生成的索引,存量索引表和增量索引表的先后扫描顺序可以是任意的,即,可以先扫描增量索引表,或者还可以先扫描存量文件索引,或者还可以并行扫描存量和增量两个索引表。
如果存量索引表和增量索引表的待扫描任务包括执行第一存储转换规则之前生成的索引以及执行第一存储转换规则过程中生成的索引,则优选的,先扫描存量索引表,后扫描增量索引表,以避免在执行第一存储转换规则过程中因修改某些文件的标签而导致对些文件的遗漏处理。
另外,针对存量和增量两个索引表的扫描,均会分别记录存量和增量扫描对应的扫描进度,并在存量扫描的这一扫描分支中,按步骤201-203实现对存量索引表的扫描,相类似,可选的,在增量扫描的这一扫描分支中,同样可参考记录的增量索引表的扫描进度对增量索引表进行扫描,若增量索引表的进度为空,则从增量索引表的起始索引位置开始扫描。
通过基于存量和增量两个索引表,对文件进行基于标签的扫描及存储转换处理,可保证在文件的标签发生更改后,总会在存量或者增量索引中扫描到文件,不会遗漏。
本申请实施例中,虽然提供了对数据文件的标签标记功能,以及基于标签的存储转换规则配置功能,但不限定用户必须对数据文件进行基于标签的存储转换处理,还可以兼容原有的仅基于时间等常规维度对数据文件的存储转换处理。
针对该情况,在一实施方式中,本申请的方法在执行第一存储转换规则之前,还可以包括:
确定在执行第一存储转换规则之前是否有执行第二存储转换规则。
其中,第二存储转换规则为基于数据文件的时间戳配置的规则。
相类似,第二存储转换规则包括基于时间戳的过期删除子规则、转换归档子规则和转换低频子规则中的至少一种,本实施例将这些子规则称为第二子规则,以与第一存储转换规则的第一子规则形成区分。
第二存储转换规则中每一第二子规则的规则内容,相应仅包括时间条件和操作类型,第二子规则中的时间条件和操作类型,与第一存储转换规则的第一子规则中的时间条件和操作类型分别类似,具体可参见上文实施例对第一子规则中时间条件和操作类型的说明,不再赘述。
若在执行第一存储转换规则之前有执行第二存储转换规则,那么在执行第一存储转换规则过程中,针对第一存储转换规则的当前第一子规则,在根据当前第一子规则对应的上一次扫描进度确定当前第一子规则的当前扫描进度时,具体可通过以下处理方式实现:
根据当前第一子规则对应的上一次扫描进度和第二存储转换规则中与该当前第一子规则类型相同的第二子规则对应的上一次扫描进度,确定该当前第一子规则的当前扫描进度。
相类似,若在执行第一存储转换规则之前有执行第二存储转换规则,那么在执行第一存储转换规则过程中,针对第一存储转换规则的当前第一子规则,在根据该当前第一子规则对应的上一次扫描进度和其高优先级第一子规则对应的上一次扫描进度确定该当前第一子规则的当前扫描进度时,具体可通过以下处理方式实现:
根据当前第一子规则对应的上一次扫描进度和第二存储转换规则中与该当前第一子规则类型相同的第二子规则对应的上一次扫描进度,以及根据该当前第一子规则的高优先级第一子规则对应的上一次扫描进度和第二存储转换规则中与高优先级第一子规则类型相同的第二子规则对应的上一次扫描进度,确定该当前第一子规则的当前扫描进度。
其中,上述的类型相同,是指子规则对应的操作类型相同,例如,若某一第一子规则为第一存储转换规则中的转换低频子规则,则第二存储转换规则中与该第一子规则类型相同的第二子规则,是指第二存储转换规则中的转换低频子规则。
为便于理解,以下以一具体实例对上述处理过程进行说明:
该实例假设在执行第一存储转换规则之前有执行第二存储转换规则。
且该实例中,假设第一存储转换规则中的过期删除到期时间为ex_end_date(第一时间条件),即指示ex_end_date之前的符合第一标签条件的文件都删除;转换归档时间为ar_end_date,即指示ar_end_date之前的符合第二标签条件且未被删除的文件都转换归档;转换低频时间为ia_end_date,即指示ia_end_date之前的符合第三标签条件且未被删除、未归档的文件都转换低频。
基于上述假设,结合参见图3,在执行第一存储转换规则时,首先确定第一存储转换规则中是否配置有过期删除子规则,如果有过期删除子规则,则:
11)查询第二存储转换规则对应记录的最新过期删除进度,记为pre_ex_process;
12)查询第一存储转换规则对应记录的最新过期删除进度,记为pretag_ex_process;
13)取max(pre_ex_process,pretag_ex_process)为当前的过期删除子规则应采用的进度,记为curr_process,基于该进度curr_process扫描存量索引表;如果pre_ex_process、pretag_ex_process均为空,则从存量索引表的起始索引位置开始扫描;扫描到ex_end_date时停止。
14)查询增量索引表的过期删除进度,不为空,以当前进度开始扫描增量索引表,进度为空,则从增量索引表的起始索引位置开始扫描。
在扫描增量索引表的过程中,如果文件的时间戳小于curr_process,将文件信息放入过期删除队列待处理,直至增量数据文件的时间戳大于设定的时间界限时,停止扫描增量索引表。如,假设设定增量扫描最多扫描到前一日产生的增量索引(当日因修改文件标签而产生的增量索引在下一次执行规则时扫描),则该时间界限相应可设置为today-1。针对增量扫描,同时可记录增量索引表的过期删除进度。
之后,确定第一存储转换规则中是否配置有转换归档子规则,如果有转换归档子规则,则:
21)查询第二存储转换规则对应记录的最新转换归档进度,记为pre_ar_process;查询第一存储转换规则对应记录的最新转换归档进度,记为pretag_ar_process;
22)查询第二存储转换规则对应记录的最新过期删除进度,记为pre_ex_process;查询第一存储转换规则对应记录的最新过期删除进度,记为pretag_ex_process;
23)取max(pre_ar_process,pretag_ar_process,pre_ex_process,pretag_ex_process)为当前进度curr_process,基于该进度curr_process扫描存量索引表;若4个进度都为空,从存量索引表的起始索引位置开始扫描;扫描到ar_end_date时停止。
24)查询增量索引表的转换归档进度,不为空,以当前进度开始扫描增量索引表,进度为空,则从增量索引表的起始索引位置开始扫描。
相类似,在扫描增量索引表的过程中,如果文件的时间戳小于curr_process,将文件信息放入转换归档队列待处理,直至增量数据文件的时间戳大于设定的时间界限(如,上述的today-1),停止扫描增量索引表。同时可记录增量索引表的转换归档进度。
最后,确定第一存储转换规则中是否配置有转换低频子规则,如果有转换低频子规则,则:
31)查询第二存储转换规则对应记录的最新转换低频进度,记为pre_ia_process;查询第一存储转换规则对应记录的最新转换低频进度,记为pretag_ia_process
32)查询第二存储转换规则对应记录的最新转换归档进度,记为pre_ar_process;查询第一存储转换规则对应记录的最新转换归档进度,记为pretag_ar_process;
33)查询第二存储转换规则对应记录的最新过期删除进度,记为pre_ex_process;查询第一存储转换规则对应记录的最新过期删除进度,记为pretag_ex_process;
34)取max(pre_ia_process,pretag_ia_process,pre_ar_process,pretag_ar_process,pre_ex_process,pretag_ex_process)为当前进度curr_process,基于该进度curr_process扫描存量索引表;若6个进度都为空,从存量索引表的起始索引位置开始扫描;扫描到ia_end_date时停止;
35)查询增量索引表的转换低频进度,不为空,以当前进度开始扫描增量索引表,进度为空,则从增量索引表的起始索引位置开始扫描。
相类似,在扫描增量索引表的过程中,如果文件的时间戳小于curr_process,将文件信息放入转换低频队列待处理,直至增量数据文件的时间戳大于设定的时间界限(如,上述的today-1),停止扫描增量索引表。同时可记录增量索引表的转换归档进度。
本实施中,在执行第一存储转换规则之前有执行第二存储转换规则的情况下,通过结合第一、第二存储转换规则的相应进度记录,来确定当前的扫描进度,可更高程度地避免对索引表的重复扫描,相应更高程度地避免了对同一数据文件执行多种操作。
对应于上述的方法,本申请实施例还公开一种文件的存储转换处理装置,如图4所示,该装置包括:
获取模块401,用于获取预先配置的第一存储转换规则;第一存储转换规则为:通过预先为数据文件标记标签,并基于为数据文件标记的标签配置的规则;
解析模块402,用于解析第一存储转换规则,得到第一存储转换规则的规则内容;
规则执行模块403,用于根据解析得到的规则内容,按照预定的规则执行策略,对标记有标签的数据文件执行第一存储转换规则。
在一实施方式中,解析模块402具体用于:解析第一存储转换规则,得到第一存储转换规则包括的至少一个第一子规则的规则内容;
其中,第一子规则的规则内容包括:时间条件、标签条件和操作类型。
在一实施方式中,第一存储转换规则的第一子规则为基于标签的过期删除子规则、转换归档子规则和转换低频子规则中的任意一种;
其中:
基于标签的过期删除子规则的规则内容包括:第一时间条件、第一标签条件和删除操作类型;
基于标签的转换归档子规则的规则内容包括:第二时间条件、第二标签条件和转换归档操作类型;
基于标签的转换低频子规则的规则内容包括:第三时间条件、第三标签条件和转换低频操作类型。
在一实施方式中,规则执行模块403具体用于:根据解析得到的相应第一子规则的规则内容,按照优先级高低顺序依次执行第一存储转换规则包括的各个第一子规则;
其中,第一存储转换规则中基于标签的过期删除子规则、转换归档子规则和转换低频子规则的优先级依次降低;
规则执行模块403在执行第一存储转换规则的任一第一子规则时,确定符合第一子规则对应的时间条件和标签条件的目标数据文件,并对目标数据文件执行第一子规则所对应操作类型的操作。
在一实施方式中,规则执行模块403包括:
扫描单元,用于扫描数据文件的文件索引,文件索引中的每条索引包括所对应数据文件的文件标识、时间戳及数据文件的至少一个标签;
识别单元,用于在扫描过程中,识别时间戳满足第一子规则对应的时间条件且标记的标签满足第一子规则对应的标签条件的目标数据文件。
在一实施方式中,扫描单元具体用于:
在执行当前第一子规则时,确定第一存储转换规则中是否存在优先级高于当前第一子规则的高优先级第一子规则;
若不存在,获取当前第一子规则对应的上一次扫描进度,根据获取的上一次扫描进度确定当前第一子规则的当前扫描进度,并根据确定的当前扫描进度扫描数据文件的文件索引;
若存在,获取当前第一子规则对应的上一次扫描进度和高优先级第一子规则对应的上一次扫描进度,根据当前第一子规则的上一次扫描进度和高优先级第一子规则的上一次扫描进度确定当前第一子规则的当前扫描进度,并根据确定的当前扫描进度扫描数据文件的文件索引。
在一实施方式中,扫描单元具体用于:
扫描数据文件的存量索引和增量索引,并将扫描出的相应第一子规则待处理的目标数据文件的文件信息推送至上述相应第一子规则对应的队列中;
其中,存量索引包括:在向存储系统中存入数据文件时为数据文件生成的索引,以及在更新存储系统中数据文件的标签时为数据文件更新生成的索引;增量索引包括:在更新存储系统中数据文件的标签时为数据文件更新生成的索引;
在更新存储系统中数据文件的标签时,数据文件对应的时间戳不变。
在一实施方式中,规则执行模块403具体用于:
依次处理第一子规则对应的队列中的文件信息,以对文件信息对应的目标数据文件执行第一子规则所对应操作类型的操作。
在一实施方式中,扫描单元在扫描数据文件的存量索引和增量索引时,具体用于:
如果存量索引和增量索引的待扫描任务仅包括执行第一存储转换规则之前生成的索引,先扫描增量索引,或先扫描存量索引,或并行扫描存量索引和增量索引;
如果存量索引和增量索引的待扫描任务包括执行第一存储转换规则之前生成的索引以及执行第一存储转换规则过程中生成的索引,先扫描存量索引。
在一实施方式中,上述装置还包括:
确定模块,用于在执行第一存储转换规则之前,确定在执行第一存储转换规则之前是否有执行第二存储转换规则;
其中,第二存储转换规则为基于数据文件的时间戳配置的规则;第二存储转换规则包括基于时间戳的过期删除子规则、转换归档子规则和转换低频子规则中的至少一种;
若存在,扫描单元在根据获取的上一次扫描进度确定当前第一子规则的当前扫描进度时,具体用于:根据当前第一子规则对应的上一次扫描进度和第二存储转换规则中与当前第一子规则类型相同的第二子规则对应的上一次扫描进度,确定当前第一子规则的当前扫描进度;
若存在,扫描单元在根据当前第一子规则的上一次扫描进度和高优先级第一子规则的上一次扫描进度确定当前第一子规则的当前扫描进度时,具体用于:根据当前第一子规则对应的上一次扫描进度和第二存储转换规则中与当前第一子规则类型相同的第二子规则对应的上一次扫描进度,以及根据高优先级第一子规则对应的上一次扫描进度和第二存储转换规则中与高优先级第一子规则类型相同的第二子规则对应的上一次扫描进度,确定当前第一子规则的当前扫描进度。
对于本申请实施例公开装置而言,由于其与上文各方法实施例公开的文件的存储转换处理方法相对应,所以描述的比较简单,相关相似之处请参见上文相应方法实施例的说明即可,此处不再详述。
本申请实施例还公开了一种电子设备,该电子设备可以是但不限于云存储环境中用于承载并运行虚拟服务器的服务器设备,或非云存储环境中的实体服务器或个人计算机等设备。
如图5示出的电子设备的结构示意图,至少包括:
存储器501,用于存放计算机指令集;
所述的计算机指令集可以采用计算机程序的形式实现。
存储器501可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
处理器502,用于通过执行存储器上存放的指令集,实现如上任一方法实施例的文件的存储转换处理方法。
其中,处理器502可以为中央处理器(Central Processing Unit,CPU),特定应用集成电路(application-specific integrated circuit,ASIC),数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者其他可编程逻辑器件等。
除此之外,调度设备还可以包括通信接口、通信总线等组成部分。存储器、处理器和通信接口通过通信总线完成相互间的通信。
通信接口用于调度设备与其他设备(如CDN调度系统中的中控设备等)之间的通信。通信总线可以是外设部件互连标准(Peripheral Component Interconnect,PCI)总线或扩展工业标准结构(Extended Industry Standard Architecture,EISA)总线等,该通信总线可以分为地址总线、数据总线、控制总线等。
本实施例中,电子设备中的处理器通过执行存储器中存放的计算机指令集,支持对文件进行标签标记,并支持基于标记的标签配置对文件的第一存储转换规则,使用者即用户可根据需求对数据文件进行标签标记并配置基于标签的第一存储转换规则,后端存储系统通过对用户配置的第一存储转换规则进行解析,并根据解析得到的规则内容,按照预定的规则执行策略对数据文件执行第一存储转换规则,即可实现自动化的、基于标签的文件存储转换处理。无需用户按人工方式对海量文件进行管理(如手动删除过期文件、手动将文件归档或转低频等),且灵活的标签标记及基于标签的规则配置,更好地满足了用户日渐产生的多样化数据文件的多样化存储管理需求。
另外,本申请实施例还公开一种计算机可读存储介质,该计算机可读存储介质内存储有计算机指令集,计算机指令集被处理器执行时实现如上文任一方法实施例公开的文件的存储转换处理方法。
具体地,本实施例的计算机可读存储介质中的计算机指令集被处理器执行时,支持对文件进行标签标记,并支持基于标记的标签配置对文件的第一存储转换规则,使用者即用户可根据需求对数据文件进行标签标记并配置基于标签的第一存储转换规则,后端存储系统通过对用户配置的第一存储转换规则进行解析,并根据解析得到的规则内容,按照预定的规则执行策略对数据文件执行第一存储转换规则,即可实现自动化的、基于标签的文件存储转换处理。无需用户按人工方式对海量文件进行管理(如手动删除过期文件、手动将文件归档或转低频等),且灵活的标签标记及基于标签的规则配置,更好地满足了用户日渐产生的多样化数据文件的多样化存储管理需求。
综上所述,本申请公开的方法、装置、电子设备及存储介质,与相关技术相比,至少具备以下技术优势:
1)文件的标签更改后,总会在存量或者增量索引中被扫描到,不会遗漏;
2)文件如果满足多种子规则,优先按照过期、转归档、转低频的顺序并结合扫描进度对文件进行处理,不会对一个文件执行多种操作;
3)操作过程会记录进度,进程重启不会重复扫描。
4)用户简单易用,只需按需配置转换规则,后端自动解析规则并执行存储转换,减轻了用户负担,使之能够专心处理自己的业务。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
为了描述的方便,描述以上系统或装置时以功能分为各种模块或单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例或者实施例的某些部分所述的方法。
最后,还需要说明的是,在本文中,诸如第一、第二、第三和第四等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅是本申请的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。