一种数据生命周期的控制方法、装置、电子设备及介质与流程-j9九游会真人

文档序号:35696923发布日期:2023-10-11 19:53阅读:1来源:国知局
1.本技术涉及大数据领域,尤其涉及一种数据生命周期的控制方法、装置、电子设备及介质。
背景技术
::2.目前大数据领域主流的数据文件存储架构使用的是apache基金会开发的hadoop分布式系统基础架构,其中包括了一种分布式文件系统组件hdfs(hadoopdistributedfilesystem),它可以在低廉的硬件上部署,实现高吞吐量、高容错的文件管理功能。同时hadoop架构中另一数据仓库工具hive,可以将结构化的数据文件映射为一张数据库表,并提供sql查询功能。因此hdfs文件系统及hive数仓工具,已被广泛应用于海量数据文件的存储、查询及分析。但随着公司业务的快速增长,数据文件在不断累积,然而hdfs文件系统及hive数仓工具原生不具有对其数据文件进行生命周期管理的功能,不能及时高效的对生命周期之外的历史数据进行删除,从而使过期的历史数据长期留存,造成公司集群的存储成本不断增加。3.目前在大数据生命周期管理方面,主要的j9九游会真人的解决方案是针对于hive表数据文件的生命周期管理,通过固定的时间间隔,使程序定时获取待进行生命周期管理的hive表元数据信息,按照设定的生命周期数,对其过期的数据文件存储的物理路径进行删除操作。4.而采用这种方式会产生两点问题:若时间间隔设定的较长,则对过期的数据文件进行删除的时效性会降低,同时每一次程序启动时需要删除的数据文件也会累积增加,使程序执行速度缓慢;若时间间隔设定较短,则生命周期管理程序会频繁的访问hive元数据库,并频繁的生成冗余的生命周期管理任务,从而对元数据库的连接请求造成较大压力。因此采用定时启动方式的生命周期管理程序,面对不断增加的删除任务,运行压力将会不断增加,使过期的数据文件不能及时的、高效的进行删除。技术实现要素:5.本技术提供一种数据生命周期的控制方法、装置、电子设备及介质,用以解决过期的数据文件不能及时的、高效的进行删除问题。6.一方面,本技术提供一种数据生命周期的控制方法,包括:7.当元数据库的分区数据发生新增时,触发生成元数据表的生命周期管理任务,所述生命周期管理任务中包括所述元数据表的信息,所述元数据表的信息包括:所述元数据表所在的集群及其所属的数据库,以及所述元数据表的标识;所述元数据为数据文件的描述信息;8.根据所述元数据表的信息,从对应的元数据库中查询所述元数据表当前的分区数量;9.将所述元数据表的分区数量与预先配置的生命周期数进行比较,若所述分区数据超过所述生命周期数,则根据分区值的时间顺序生成删除任务,所述删除任务中包括待删除的元数据信息;10.在所述元数据表中执行所述删除任务。11.进一步地,所述在所述元数据表中执行所述删除任务,包括:12.在所述元数据表中删除的所述元数据表所在集群名称及其所属的数据库名称;13.删除所述元数据表的标识及其分区数量。14.进一步地,所述在所述元数据表中执行所述删除执行任务之前,还包括:15.可采用单线程或多线程方式,将所述删除任务提交至hive的接口以执行所述删除任务。16.进一步地,所述在所述元数据表中执行所述删除执行任务之后,还包括:17.将所述删除任务的执行结果存储至删除记录数据库。18.进一步地,所述方法还包括:19.按照设定时间区间,在所述删除记录数据库中确定在所述时间区间内执行的所述删除任务信息,所述删除任务信息包括:删除的元数据表标识、数量及其删除的分区总数量;20.将所述设定时间区间内的删除任务信息与历史相同时间区间的删除任务信息进行对比;21.若比对结果表示设定时间区间内的删除任务信息异常,则输出异常通知消息。22.进一步地,所述元数据库为从元数据库,所述方法还包括:23.为主元数据库创建所述从元数据库,通过主从同步中间件的方式对主元数据库和从元数据库进行元数据同步。24.另一方面,本技术提供一种数据生命周期控制装置,包括:25.配置模块,用于配置生命周期管理表的基本信息;26.触发模块,用于触发生命周期管理表的管理任务;27.判断模块,用于将生命周期管理表当前的分区数量与配置的生命周期数进行比较判断;28.执行模块,用于与hive的接口交互执行任务;29.通知模块,用于对生命周期管理任务的执行情况进行异常通知。30.第三方面,本技术提供一种电子设备,包括:31.包括存储器和处理器,所述存储器用于存储计算机执行指令,所述处理器用于执行所述存储器存储的计算机执行指令,以实现如权利要求1-6中任一项所述的方法。32.第四方面,本技术提供一种介质,所述介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如权利要求1至6任一项所述的方法。33.本技术提供的数据生命周期的控制方法、装置、电子设备及介质,通过当元数据库的分区数据发生新增时,触发生成元数据表的生命周期管理任务,生命周期管理任务中包括元数据表的信息,元数据表的信息包括:元数据表所在的集群及其所属的数据库,以及元数据表的标识;元数据为数据文件的描述信息;根据元数据表的信息,从对应的元数据库中查询元数据表当前的分区数量;将元数据表的分区数量与预先配置的生命周期数进行比较,若分区数据超过生命周期数,则根据分区值的时间顺序生成删除任务,删除任务中包括待删除的元数据信息;在元数据表中执行删除任务。实现了降低元数据库连接压力,同时可以及时高效的执行生命周期删除任务的效果。附图说明34.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本技术的实施例,并与说明书一起用于解释本技术的原理。35.图1为本技术提供的一种数据生命周期的控制方法的流程示意图;36.图2为本技术提供的又一种数据生命周期的控制方法的流程示意图;37.图3为本技术提供的一种数据生命周期控制装置的结构示意图;38.图4为本技术提供的一种电子设备的结构示意图。39.通过上述附图,已示出本技术明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本技术构思的范围,而是通过参考特定实施例为本领域技术人员说明本技术的概念。具体实施方式40.这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本技术相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本技术的一些方面相一致的装置和方法的例子。41.首先对本技术所涉及的名词进行解释:42.hadoop:是一个由apache基金会所开发的分布式系统基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。43.hdfs:是一种分布式文件系统组件,有高容错性的特点,并且设计用来部署在低廉的硬件上;而且它提供高吞吐量来访问应用程序的数据,适合那些有着超大数据集的应用程序。44.hive:是基于hadoop的一个数据仓库工具,用来进行数据提取、转化、加载,这是一种可以存储、查询和分析存储在hadoop中的大规模数据的机制。hive数据仓库工具能将结构化的数据文件映射为一张数据库表,并提供sql查询功能,能将sql语句转变成mapreduce任务来执行。45.当前主流数仓中的数据表通过hive客户端创建、加载并使用,其数据表的元数据信息将保存在metastore(元数据库)中,其数据文件将保存在hdfs中。通常在创建存储业务数据的hive表时,会设定账期字段,即每日获得的数据将按照获取的日期写入到hive表中,用于储存每日的业务数据。随着公司业务的不断发展,业务数据也会不断累计,hdfs上的数据文件将不断增加。因此需要对hive表进行生命周期管理,通过设定hive表的生命周期数,并使用账期字段进行判断,若当前存储的数据文件的账期超过设定的生命周期数,即数据文件超过了有效期,将对其进行删除,从而减少hdfs使用的存储空间,优化存储治理。但是目前通常采用的定期获取元数据信息会导致频繁启动程序使运行压力增加或启动程序时间间隔过久使过期数据文件不能及时删除的问题。46.本技术提供的数据传输的方法,旨在解决现有技术的如上技术问题。47.下面以具体地实施例对本技术的技术方案以及本技术的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本技术的实施例进行描述。48.图1为本技术提供的一种数据生命周期的控制方法的实施例一,该方法具体包括如下步骤:49.s101、当元数据库的分区数据发生新增时,触发生成元数据表的生命周期管理任务,生命周期管理任务中包括元数据表的信息,元数据表的信息包括:元数据表所在的集群及其所属的数据库,以及元数据表的标识;元数据为数据文件的描述信息。50.元数据(metadata),又称中介数据、中继数据,为描述数据的数据,主要是描述数据属性的信息,用来支持如指示存储位置、历史数据、资源查找、文件记录等功能。例如:元数据可以为数据说明其元素或属性(名称、大小、数据类型等),或其结构(长度、字段、数据列),或其相关数据(位于何处、如何联系、拥有者)。51.一个元数据库中可以包含有多个元数据表,当需要进行生命周期管理的表在元数据库中的分区数据发生新增变化时,会触发生命周期管理任务,生命周期管理任务中包括了元数据表的一些基本信息,这些信息是通过配置模块进行配置,该配置模块是用于保存进行生命周期管理表的基本信息。具体的,可以包括如集群名、数据库名、表名、表账期格式、生命周期数。52.集群名(cluster_id):是指该数据表所在的集群名称或id。53.数据库名(database_name):是指该数据表所在的数据库名。54.数据表名(table_name):是指该数据表的名称。55.账期格式(date_format):是指该数据表的账期分区格式,用于计算账期分区数量。56.生命周期数(lifecycle_num):是指该数据表的生命周期数,以表的时间类型为单位设定生命周期数。57.配置信息需保存在配置数据库中,可使用mysql或postgresql等关系型数据库表保存。58.s102、根据元数据表的信息,从对应的元数据库中查询元数据表当前的分区数量。59.在本步骤中,首先需要从消息队列中获取数据表的id,“消息队列”是在消息的传输过程中保存消息的容器。在获取表id后,需要连接配置数据库来查询该表的配置信息,根据配置信息中的表基础信息,连接元数据库来查询该表当前的分区数量。60.此处的分区数量是按照配置信息中的账期格式来进行计算的,账期格式可以按年、年-月、年-月-日、年-月-日-时等格式进行设置,当账期格式设置为年-月-日的格式时,此时分区数量就是按日期进行计算,当账期格式设置为年-月的格式时,此时分区数量就是按月来进行计算。61.s103、将元数据表的分区数量与预先配置的生命周期数进行比较,若分区数据超过生命周期数,则根据分区值的时间顺序生成删除任务,删除任务中包括待删除的元数据信息。62.生命周期数是数据从创建和初始存储,到数据过期被删除的整个周期。本步骤中预先配置的生命周期数是通过配置模块自行设置的,此处以数据表的时间类型为单位,来设置合适的生命周期数。63.当生命周期数设置好之后,将元数据表的分区数量与预先配置的生命周期数进行比较,如果分区数量超过设定的生命周期数,那么就按照时间顺序生成删除任务。这里的按照时间顺序删除是删除了超出数据生命周期的最早的分区值。例如设置的生命周期数为20天,数据的创建日期为1月1日,数据发生新增时的日期为1月30日,则计算出的账期分区数量为30天,超过了设定的生命周期数20天,此时就需要将超出的最早的分区部分,即1月1日到1月10日这十天的数据进行删除。即选择超出的最早的账期分区值,生成对应的删除任务。在生成删除任务后,将删除任务推送到任务队列。如果计算出的分区数量没有超过设定的生命周期数,则不生成删除任务。64.s104、在元数据表中执行删除任务。65.在元数据表中执行删除任务可以通过执行模块来实现。该模块的实现步骤又可以通过以下具体步骤来实现:66.首先从任务队列中获取删除任务,任务队列是用于保存生生的删除任务,可以使用redis等中间件进行保存。redis(remotedictionaryserver)即远程字典服务,是一个基于内存的key-value结构化存储的存储系统。是一个开源的使用ansic语言编写、支持网络、可基于内存亦可持久化的日志型、key-value数据库,并提供多种语言的api。在获取删除任务之后,就可以执行该删除任务,执行删除任务的方式可采用单线程或多线程的方式提交删除任务语句到hive的接口以执行该删除任务。在hive接口返回语句执行结果后,保存执行结果相关信息至删除记录数据库。67.本实施例提供的数据生命周期的控制方法,通过在数据库的分区数据发生新增时,触发生成元数据表生命周期管理任务,并查询该表的当前分区数量,使之与预先配置的生命周期数比较,当超过生命周期数时生成删除任务将最早的账期分区值删除。可以避免定时启动方式时间设定较短时删除数据造成的元数据库请求压力大或设定时间较长时使过期数据不能及时、高效地进行删除地问题。68.图2为本技术提供的又一种数据生命周期的控制方法的流程示意图,该方法具体包括如下步骤:69.s201、当元数据库的分区数据发生新增时,触发生成元数据表的生命周期管理任务,生命周期管理任务中包括元数据表的信息,元数据表的信息包括:元数据表所在的集群及其所属的数据库,以及元数据表的标识;元数据为数据文件的描述信息。70.在本步骤中,触发操作是通过触发模块来实现。该模块首先采用数据库主从同步的方式,创建hive元数据的从元数据库,本步骤中的元数据库指的是从元数据库,后续的所有操作均与从元数据库连接进行。之后在从元数据库中添加触发器,对从元数据库中的分区信息表进行触发,当分区信息表新增分区记录时,将新增分区对应的表id发送至消息队列中。本方法使用redis作为消息队列存储,可使用mysql2redis等插件或程序实现。71.hive元数据库通常使用derby、mysql数据库等,本方法以mysql数据库作为hive元数据库为例。首先创建hive元数据库的主从同步数据库,可使用binlog复制或mysql主从同步中间件等方法,使后续的模块及操作只与从元数据库进行交互,减小hive元数据库的连接请求。binlog是记录所有数据库表结构变更以及表数据修改的二进制日志。72.在本步骤中,除了在从元数据库中添加触发器之外,还可以通过自建数据库,定时从hive主元数据库或从元数据库中提取所需信息,进而获取需要进行生命周期管理的表信息,并将表id发送至消息队列。由于自建了数据库,程序访问时只需要访问自建数据库的表信息,而不需要访问hive元数据库,这样也可以避免程序频繁地访问hive元数据库,对元数据库的连接请求造成较大压力的问题。73.s202、根据元数据表的信息,从对应的元数据库中查询元数据表当前的分区数量。74.s203、将元数据表的分区数量与预先配置的生命周期数进行比较,若分区数据超过生命周期数,则根据分区值的时间顺序生成删除任务,删除任务中包括待删除的元数据信息。75.s204、在元数据表中执行删除任务。76.本实施例中的步骤s202-s204与实施例1中的步骤s102-104类似,在此不再赘述。77.s205、将删除任务的执行结果存储至删除记录数据库。78.删除记录数据库,是用于保存执行任务的相关信息,该信息可以包括以下内容:79.删除表集群名:是指删除的hive表所在集群名称或id;80.删除表数据库名:是指删除的hive表所在数据库名称;81.删除表名:是指删除的hive表的名称;82.删除表分区信息:是指删除的hive表的分区信息;83.删除表分区大小:是指删除的hive表的分区大小;84.删除执行时间:是指删除任务的执行时间;85.删除是否成功:是指该删除任务是否成功;86.删除报错信息:是指若删除任务执行失败,则保存hive返回的报错信息。87.这里可使用mysql或postgresql等关系型数据库表保存该删除记录。88.s206、按照设定时间区间,在删除记录数据库中确定在时间区间内执行的删除任务信息,删除任务信息包括:删除的元数据表标识、数量及其删除的分区总数量。89.在本步骤中,需要与删除记录数据库进行连接,获取删除记录数据,获取数据可以按照一定的时间区间,对在该时间区间内执行删除任务的表的名称、删除成功的表数量以及删除的分区总数量等信息进行统计,即可确定在该时间区间内执行的删除任务信息。90.s207、将设定时间区间内的删除任务信息与历史相同时间区间的删除任务信息进行对比。91.在通过统计单元对在设定时间内的删除任务信息进行统计之后,可以与相同时间区间内的历史同期数据进行比对统计,在进行对比之后,就可以确定在该时间区间内是否存在删除错误的任务信息。92.s208、若比对结果表示设定时间区间内的删除任务信息异常,则输出异常通知消息。93.当在设定的时间内统计的删除结果与历史同期数据比较后显示删除任务信息异常时,那么就需要输出异常通知消息给用户。该异常通知消息可使用短信、邮件通知等方式,定时或实时的发送删除任务的运行情况,及时的对报错信息进行告警通知。94.本实施例提供的数据生命周期的控制方法,通过将删除任务保存到删除记录数据库,并对删除任务进行统计并发送异常通知,可以使用户清楚地了解该删除任务的当前运行情况,及时按照报错信息对数据进行修复。95.图3为本技术提供的一种数据生命周期控制装置的示意图,包括:96.配置模块,用于配置生命周期管理表的基本信息。97.触发模块,用于触发生命周期管理表的管理任务。98.判断模块,用于将生命周期管理表当前的分区数量与配置的生命周期数进行比较判断。99.执行模块,用于与hive的接口交互执行任务。100.通知模块,用于对生命周期管理任务的执行情况进行异常通知。101.图4为本技术提供的一种电子设备的结构示意图,包括:102.存储器和处理器,存储器用于存储计算机执行指令,处理器用于执行存储器存储的计算机执行指令,以实现如权利要求1-6中任一项所示的方法。103.本技术提供一种介质,该介质中存储有计算机执行指令,计算机执行指令被处理器执行时用于实现如权利要求1至6任一项所示的方法。104.本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本技术的其它实施方案。本技术旨在涵盖本技术的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本技术的一般性原理并包括本技术未公开的本
技术领域
:中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本技术的真正范围和精神由下面的权利要求书指出。105.应当理解的是,本技术并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本技术的范围仅由所附的权利要求书来限制。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
网站地图