CN112269781B - 数据生命周期管理方法、装置、介质及电子设备 - Google Patents
数据生命周期管理方法、装置、介质及电子设备 Download PDFInfo
- Publication number
- CN112269781B CN112269781B CN202011268773.XA CN202011268773A CN112269781B CN 112269781 B CN112269781 B CN 112269781B CN 202011268773 A CN202011268773 A CN 202011268773A CN 112269781 B CN112269781 B CN 112269781B
- Authority
- CN
- China
- Prior art keywords
- data
- metadata
- task
- processed
- initial
- 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.)
- Active
Links
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/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
- G06F16/215—Improving data quality; Data cleansing, e.g. de-duplication, removing invalid entries or correcting typographical errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2457—Query processing with adaptation to user needs
- G06F16/24578—Query processing with adaptation to user needs using ranking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明的实施方式提供了一种数据生命周期管理方法、装置、介质及电子设备,涉及数据存储技术领域。该方法包括:从集群数据库获取待处理元数据,并确定待处理元数据的生命周期状态;从待处理元数据中确定处于目标生命状态的初始待删除元数据;对初始待删除元数据进行封装处理以生成初始逻辑删除任务,并对初始逻辑删除任务进行逻辑删除处理;将经过逻辑删除处理的初始逻辑删除任务确定为逻辑删除任务,并根据逻辑删除任务生成物理删除任务;获取分布式文件存储系统的状态参数,并根据状态参数对物理删除任务进行物理删除处理。本发明通过隔离化,异步化,细粒度化和自适应化的方式,提供了一种Hive生命周期治理的实现方案。
Description
技术领域
本发明的实施方式涉及数据存储技术领域,更具体地,本发明的实施方式涉及数据生命周期管理方法、数据生命周期管理装置、计算机可读存储介质及电子设备。
背景技术
本部分旨在为权利要求书中陈述的本发明的实施方式提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。
Apache Hive作为一款基于Hadoop的数据仓库工具,其最大的魅力在于可以将位于Hadoop分布式文件系统(Hadoop Distributed File System,HDFS)的结构化数据映射成为一张表,然后提供类结构化查询语言(Structured Query Language,SQL)的语法让用户使用来开展对数据的分析,在大数据领域有着极其广泛的应用。
随着业务规模的不断增长,存储的数据越来越多,由于Hive自身没有生命周期治理功能,造成大量无效数据残留在HDFS上,造成了资源的额极大浪费。目前,一种常见的Hive生命周期治理方案是通过改造Hive元数据服务(Hive MetaStore),利用Hive原生的表、分区删除功能来实现,即主要利用Hive自身的删除功能实现生命周期治理。
发明内容
但是,采用现有的Hive自身的删除功能实现生命周期治理的方案存在以下问题:(1)原生Hive没有生命周期治理功能,造成存储资源的浪费及HDFS名称节点(HDFSNameNode)的负担;(2)容易导致HDFS集群抖动,甚至宕机;(3)无法控制数据删除流程,在发生数据误删时,不能很好地对数据进行恢复;(4)现有实现方案直接修改MetaStore,容易影响MetaStore,不利于与社区版本长期兼容发展。
由此,在现有技术中,缺乏一种有效的Hive存储数据的生命周期治理方法。
为此,非常需要一种改进的数据生命周期管理方法,以避免存储资源浪费,并减轻名称节点的负担;同时解决现有Hive生命周期管理实现方案可能引发HDFS集群抖动甚至宕机的风险;并且在发生数据误删操作时可以方便地对误删数据进行恢复。
在本上下文中,本发明的实施方式期望提供一种数据生命周期管理方法、数据生命周期管理装置、计算机可读存储介质及电子设备。
在本发明实施方式的第一方面中,提供了一种数据生命周期管理方法,应用于生命周期管理服务器,包括:从集群数据库获取待处理元数据,并确定待处理元数据的生命周期状态;其中,待处理元数据基于初始元数据生成;从待处理元数据中确定生命周期状态处于目标生命状态的初始待删除元数据;对初始待删除元数据进行封装处理以生成初始逻辑删除任务,并对初始逻辑删除任务进行逻辑删除处理;将经过逻辑删除处理的初始逻辑删除任务确定为逻辑删除任务,并根据逻辑删除任务生成物理删除任务;获取分布式文件存储系统的状态参数,并根据状态参数对物理删除任务进行物理删除处理。
在本发明的一个实施例中,在从集群数据库获取待处理元数据之前,上述方法还包括:向元数据服务器发送元数据描述信息获取请求;接收并解析元数据服务器发送的初始元数据的元数据描述信息,并根据元数据描述信息重建初始元数据以生成待处理元数据;将与待处理元数据对应的目录统计信息确定为第一目录信息,并将待处理元数据和第一目录信息存储于集群数据库。
在本发明的一个实施例中,在将待处理元数据和第一目录信息存储于集群数据库之后,上述方法还包括:每隔第一预设时间从元数据服务器获取数据操作日志;根据数据操作日志确定数据操作记录;其中,数据操作记录包括与待处理元数据对应的存储数据相关的数据操作;根据数据操作记录更新集群数据库中的待处理元数据。
在本发明的一个实施例中,确定待处理元数据的生命周期状态,包括:每隔第二预设时间执行针对待处理元数据的数据扫描操作,以确定待处理元数据中的待处理数据表和待处理数据分区;获取待处理数据表的数据表生命标识以及待处理数据分区的分区生命标识;根据数据表生命标识确定待处理数据表的生命周期状态,并根据分区生命标识确定待处理数据分区的生命周期状态。
在本发明的一个实施例中,初始待删除元数据包括初始待删除数据表和初始待删除分区,从待处理元数据中确定生命周期状态处于目标生命状态的初始待删除元数据,包括:如果数据表生命标识处于目标生命状态,则将待处理数据表确定为初始待删除数据表;如果分区生命标识处于目标生命状态,则将待处理数据分区确定为初始待删除分区。
在本发明的一个实施例中,对初始待删除元数据进行封装处理以生成初始逻辑删除任务,并对初始逻辑删除任务进行逻辑删除处理,包括:将初始待删除数据表和初始待删除分区分别进行封装处理并推送至待处理任务队列,以生成初始逻辑删除任务;初始逻辑删除任务包括逻辑删除数据表和逻辑删除分区;确定逻辑删除数据表的初始表目录,并将初始表目录中的信息转移至移除表目录;确定逻辑删除分区的初始分区目录,并将初始分区目录中的信息转移至移除分区目录;确定并存储初始表目录与移除表目录之间的表目录映射关系,并删除初始表目录;确定并存储初始分区目录与移除分区目录之间的分区目录映射关系,并删除初始分区目录。
在本发明的一个实施例中,根据逻辑删除任务生成物理删除任务,包括:判断待处理任务队列的队列状态是否符合任务执行条件;任务执行条件包括待处理任务队列不为空且待处理任务队列中存在处于预设状态的目标任务且目标任务的任务建立时间大于目标时间阈值;如果队列状态符合任务执行条件,则从待处理任务队列中获取逻辑删除任务;将逻辑删除任务对应的存储数据统计信息推送至物理删除队列,以生成物理删除任务。
在本发明的一个实施例中,将逻辑删除任务对应的存储数据统计信息推送至物理删除队列,以生成物理删除任务,包括:确定逻辑删除任务中的逻辑删除元数据对应的待删除目录,并获取与待删除目录对应的第二目录信息;第二目录信息包括目标文件数;如果目标文件数小于第一阈值,则将逻辑删除任务对应的存储数据统计信息推送至物理删除队列,以生成物理删除任务;如果目标文件数大于等于第一阈值,则递归计算待删除目录下子目录元数据对应的子目录文件数;如果子目录文件数小于第一阈值,则将子目录元数据对应的存储数据统计信息推送至物理删除队列,以生成物理删除任务;根据逻辑删除元数据与子目录元数据确定剩余删除元数据;如果剩余删除元数据对应的剩余文件数小于第一阈值,则将剩余删除元数据对应的存储数据统计信息推送至物理删除队列,以生成物理删除任务。
在本发明的一个实施例中,物理删除任务包括目标删除任务,根据状态参数对物理删除任务进行物理删除处理,包括:获取分布式文件存储系统的待删除数据块数量和端口排队时间;如果待删除数据块数量小于第二阈值且端口排队时间小于第三阈值,则从物理删除队列的队首获取目标删除任务;向分布式文件存储系统发送针对目标删除任务的删除请求,以由分布式文件存储系统对目标删除任务执行物理删除操作。
在本发明的一个实施例中,上述方法还包括:确定待恢复数据;获取待恢复数据的初始存储目录以及待恢复数据的移除存储目录;将待恢复数据从移除存储目录移动至初始存储目录,以恢复待恢复数据;获取待恢复数据的数据建立语句,以根据待恢复数据的数据建立语句重建待恢复数据对应的待恢复数据表和待恢复数据分区。
在本发明实施方式的第二方面中,提供了一种数据生命周期管理装置,应用于生命周期管理服务器,包括:状态确定模块,用于从集群数据库获取待处理元数据,并确定待处理元数据的生命周期状态;其中,待处理元数据基于初始元数据生成;元数据确定模块,用于从待处理元数据中确定生命周期状态处于目标生命状态的初始待删除元数据;第一删除模块,用于对初始待删除元数据进行封装处理以生成初始逻辑删除任务,并对初始逻辑删除任务进行逻辑删除处理;任务生成模块,用于将经过逻辑删除处理的初始逻辑删除任务确定为逻辑删除任务,并根据逻辑删除任务生成物理删除任务;第二删除模块,用于获取分布式文件存储系统的状态参数,并根据状态参数对物理删除任务进行物理删除处理。
在本发明的一个实施例中,数据生命周期管理装置还包括元数据处理模块,元数据处理模块包括:信息获取请求发送单元,用于向元数据服务器发送元数据描述信息获取请求;元数据重建单元,用于接收并解析元数据服务器发送的初始元数据的元数据描述信息,并根据元数据描述信息重建初始元数据以生成待处理元数据;元数据存储单元,用于将与待处理元数据对应的目录统计信息确定为第一目录信息,并将待处理元数据和第一目录信息存储于集群数据库。
在本发明的一个实施例中,元数据处理模块还包括元数据更新单元,元数据更新单元被配置为:每隔第一预设时间从元数据服务器获取数据操作日志;根据数据操作日志确定数据操作记录;其中,数据操作记录包括与待处理元数据对应的存储数据相关的数据操作;根据数据操作记录更新集群数据库中的待处理元数据。
在本发明的一个实施例中,状态确定模块包括数据扫描单元,用于每隔第二预设时间执行针对待处理元数据的数据扫描操作,以确定待处理元数据中的待处理数据表和待处理数据分区;生命标识获取单元,用于获取待处理数据表的数据表生命标识以及待处理数据分区的分区生命标识;生命周期状态确定单元,用于根据数据表生命标识确定待处理数据表的生命周期状态,并根据分区生命标识确定待处理数据分区的生命周期状态。
在本发明的一个实施例中,元数据确定模块包括数据表确定单元,用于如果数据表生命标识处于目标生命状态,则将待处理数据表确定为初始待删除数据表;分区确定单元,用于如果分区生命标识处于目标生命状态,则将待处理数据分区确定为初始待删除分区。
在本发明的一个实施例中,第一删除模块被配置为:将初始待删除数据表和初始待删除分区分别进行封装处理并推送至待处理任务队列,以生成初始逻辑删除任务;初始逻辑删除任务包括逻辑删除数据表和逻辑删除分区;确定逻辑删除数据表的初始表目录,并将初始表目录中的信息转移至移除表目录;确定逻辑删除分区的初始分区目录,并将初始分区目录中的信息转移至移除分区目录;确定并存储初始表目录与移除表目录之间的表目录映射关系,并删除初始表目录;确定并存储初始分区目录与移除分区目录之间的分区目录映射关系,并删除初始分区目录。
在本发明的一个实施例中,任务生成模块包括:执行条件判断单元,用于判断待处理任务队列的队列状态是否符合任务执行条件;任务执行条件包括待处理任务队列不为空且待处理任务队列中存在处于预设状态的目标任务且目标任务的任务建立时间大于目标时间阈值;逻辑任务获取单元,用于如果队列状态符合任务执行条件,则从待处理任务队列中获取逻辑删除任务;物理任务生成单元,用于将逻辑删除任务对应的存储数据统计信息推送至物理删除队列,以生成物理删除任务。
在本发明的一个实施例中,物理任务生成单元被配置为:确定逻辑删除任务中的逻辑删除元数据对应的待删除目录,并获取与待删除目录对应的第二目录信息;第二目录信息包括目标文件数;如果目标文件数小于第一阈值,则将逻辑删除任务对应的存储数据统计信息推送至物理删除队列,以生成物理删除任务;如果目标文件数大于等于第一阈值,则递归计算待删除目录下子目录元数据对应的子目录文件数;如果子目录文件数小于第一阈值,则将子目录元数据对应的存储数据统计信息推送至物理删除队列,以生成物理删除任务;根据逻辑删除元数据与子目录元数据确定剩余删除元数据;如果剩余删除元数据对应的剩余文件数小于第一阈值,则将剩余删除元数据对应的存储数据统计信息推送至物理删除队列,以生成物理删除任务。
在本发明的一个实施例中,第二删除模块被配置为:获取分布式文件存储系统的待删除数据块数量和端口排队时间;如果待删除数据块数量小于第二阈值且端口排队时间小于第三阈值,则从物理删除队列的队首获取目标删除任务;向分布式文件存储系统发送针对目标删除任务的删除请求,以由分布式文件存储系统对目标删除任务执行物理删除操作。
在本发明的一个实施例中,数据生命周期管理装置还包括数据恢复模块,数据恢复模块被配置为:确定待恢复数据;获取待恢复数据的初始存储目录以及待恢复数据的移除存储目录;将待恢复数据从移除存储目录移动至初始存储目录,以恢复待恢复数据;获取待恢复数据的数据建立语句,以根据待恢复数据的数据建立语句重建待恢复数据对应的待恢复数据表和待恢复数据分区。
在本发明实施方式的第三方面中,提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上述所述的数据生命周期管理方法。
在本发明实施方式的第四方面中,提供了一种电子设备,包括:处理器;以及存储器,所述存储器上存储有计算机可读指令,所述计算机可读指令被所述处理器执行时实现如上述所述的数据生命周期管理方法。
根据本发明实施方式的技术方案,一方面,通过数据生命周期管理服务器实现数据生命周期的管理,可以避免存储资源的浪费。另一方面,将待处理元数据存储在集群数据库中,可以使数据生命周期管理独立于Hive和HDFS相关组件,不修改其组件,即便于版本兼容发展,也避免由于修改不当影响其正常运行。又一方面,对数据的删除操作的执行方式由同步优化为异步,当数据的生命周期到达时,先对数据进行逻辑删除并延迟进行物理删除,经过逻辑删除的数据已对用户不可见,达到用户角度的数据删除操作。再一方面,根据状态参数对物理删除任务进行物理删除,可以根据系统负载自适应地删除数据避免HDFS集群抖动甚至宕机,确保HDFS集群的稳定性。
附图说明
通过参考附图阅读下文的详细描述,本发明示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本发明的若干实施方式,其中:
图1示意性地示出了现有技术中Hive SQL执行流程的示意图;
图2示意性地示出了现有技术对Hive元数据生命周期管理方案的整体架构的示意图;
图3示意性地示出了根据本发明的一些实施例的示例性应用场景的系统架构的示意框图;
图4示意性地示出了根据本发明的一些实施例的数据生命周期管理方法的流程示意图;
图5示意性地示出了根据本发明的一些实施例的实现数据生命周期管理服务的整体架构的示意图;
图6示意性地示出了根据本发明的一些实施例的HDFS元数据分析服务执行流程的示意图;
图7示意性地示出了根据本发明的一些实施例的数据生命周期管理装置的示意框图;
图8示意性地示出了根据本发明的示例实施例的存储介质的示意图;以及
图9示意性地示出了根据发明的示例实施例的电子设备的方框图。
在附图中,相同或对应的标号表示相同或对应的部分。
具体实施方式
下面将参考若干示例性实施方式来描述本发明的原理和精神。应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本发明,而并非以任何方式限制本发明的范围。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
本领域技术人员知道,本发明的实施方式可以实现为一种系统、装置、设备、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式。
根据本发明的实施方式,提出了一种数据生命周期管理方法、数据生命周期管理装置、介质和电子设备。
在本文中,需要理解的是,所涉及的术语,比如HDFS是一种适合运行在通用硬件上的文件系统,具有较高的容错性,并且可以部署在廉价的硬件上,适用于具有大型数据集的应用程序。HDFS名称节点(HDFS NameNode)是管理HDFS元数据的主服务器,用于管理客户端对文件的操作,并确定文件与存储块的具体位置。元数据(Metadata),又称中介数据、中继数据,为描述数据的数据,主要是描述数据属性(property)的信息。此外,附图中的任何元素数量均用于示例而非限制,以及任何命名都仅用于区分,而不具有任何限制含义。
下面参考本发明的若干代表性实施方式,详细阐释本发明的原理和精神。
发明概述
Hive作为数据仓库的一个基础工具,在业务上有着大规模的使用,随着业务规模的不断增长,存储的数据也越来越多,很多数据对业务而言都是短期有效的,比如中间结果等,但Hive自身没有生命周期功能,造成大量无效数据残留在HDFS上,动辄几百吉字节(GigaByte,GB)甚至几十太字节(TeraByte,TB),不但造成了资源的极大浪费,而且也给NameNode造成了极大的负担。在介绍现有的Hive生命周期治理之前,先介绍下一个HiveSQL的大致执行流程。参考图1,图1示意性地示出了现有技术中Hive SQL执行流程的示意图。用户通过Hive工具110提供的用户交互界面111将SQL语句发送到驱动器112(Driver),Driver根据查询编译器113解析SQL语句,并从元数据服务器114(如MetaStore)中获取元数据(MetaData),接着进行优化,生成最终的执行计划,在第6步将执行计划发送给执行引擎115进行执行。执行引擎执行两个操作,操作一:操作Hive MetaStore修改Hive的元数据;操作二:生成映射规约(MapReduce)任务来操作Hadoop平台120中的HDFS,修改Hive的数据,其中。例如,一张表的删除操作,对应就是操作一中删除MetaStore上该表的元数据;在操作二中删除HDFS上该表存储的数据。执行完成后获取最终结果返回给用户。
在一种技术方案中,Hive生命周期治理方案是通过改造MetaStore、利用Hive原生的表、分区删除功能来实现,参考图2所示,图2示意性地示出了现有技术对Hive元数据生命周期管理方案的整体架构的示意图。客户端230分别与Hadoop分布式文件存储系统210、元数据服务器240之间建立连接,Hadoop分布式文件存储系统210可以通过映射规约220产生存储数据。在这种技术方案中,在元数据服务器(MetaStore)240中增加生命周期治理模块241,通过选主节点(Zookeeper)260实现选主操作,保证同时只会有一个MetaStore节点来执行生命周期治理功能。具体流程如下:步骤1:METASTORE节点定期启动生命周期治理线程,通过Zookeeper节点判断自己是否为主节点,若不是主节点,结束执行,等待下次启动;否则,执行步骤2;步骤2:读取元数据(MetaData)250,依次扫描所有库、表和分区,计算是否达到生命周期,挑选出所有达到生命周期的表和分区;步骤3:执行删除操作,调用Hive接口,删除待删的表和分区,完成已达生命周期的表和分区的清理。
然而,采用上述方案存在下述缺点:(1)直接使用Hive原生的删除功能删除表和分区,在HDFS侧会直接删除这些数据,如果表中文件数较多,比如百万级,或者HDFS集群负载较高时,会阻塞其他用户的请求,造成大量线程超时,引起集群抖动,甚至宕机。(2)无法控制删除流程,若生命周期被误设置,删除的数据将无法恢复。(3)对MetaStore带来很多不利影响,直接修改MetaStore,可能导致与后续版本不兼容,不利于后续升级;并且,MetaStore本身负载较高,大量的扫描、删除操作无疑会加重系统负载;此外,如果生命周期治理模块实现上存在问题,影响了MetaStore,会导致整个Hive不可用。
基于上述内容,本发明的基本思想在于,从集群数据库获取待处理元数据,并确定待处理元数据的生命周期状态;其中,待处理元数据基于初始元数据生成;从待处理元数据中确定生命周期状态处于目标生命状态的初始待删除元数据;对初始待删除元数据进行封装处理以生成初始逻辑删除任务,并对初始逻辑删除任务进行逻辑删除处理;将经过逻辑删除处理的初始逻辑删除任务确定为逻辑删除任务,并根据逻辑删除任务生成物理删除任务;获取分布式文件存储系统的状态参数,并根据状态参数对物理删除任务进行物理删除处理。通过隔离化、异步化、细粒度化和自适应化的数据管理方式,提供了一种Hive数据生命周期管理方案,可以避免存储资源浪费和名称节点的节点负担;同时可以解决HDFS集群抖动甚至宕机的问题。
在介绍了本发明的基本原理之后,下面具体介绍本发明的各种非限制性实施方式。
应用场景总览
首先参考图3,图3示出了可以应用本公开实施例的一种数据生命周期管理方法及装置的示例性应用场景的系统架构的示意框图。
如图3所示,系统架构300可以包括终端设备301、302、303中的一个或多个,网络304和服务器305。网络304用以在终端设备301、302、303和服务器305之间提供通信链路的介质。网络304可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。终端设备301、302、303可以是具有显示屏的各种电子设备,包括但不限于台式计算机、便携式计算机、智能手机和平板电脑等等。应该理解,图3中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。比如服务器305可以是多个服务器组成的服务器集群等。
本公开实施例所提供的数据生命周期管理方法一般由服务器305执行,相应地,数据生命周期管理装置一般设置于服务器305中。本公开实施例可以让用户通过终端设备301、302、303架构和使用分布式计算平台。举例而言,在一种示例性实施例中,可以获取分布存储在终端设备301、302、303中的数据,这些存储数据对应的待处理元数据存储在集群数据库中,从集群数据库获取待处理元数据,并将待处理元数据上传至服务器305,服务器通过本公开实施例所提供的数据生命周期管理方法根据待处理元数据的生命周期状态,对待处理元数据进行逻辑删除和物理删除,并将待处理元数据的是否已删除的处理结果传输给终端设备301、302、303等,在使终端设备301、302、303端,经过逻辑删除处理的数据对用户已不可见。
应该理解的是,图3所示的应用场景仅是本发明的实施例可以在其中得以实现的一个示例。本发明实施例的适用范围不受到该应用场景任何方面的限制。
示例性方法
下面结合图3的应用场景,参考图4来描述根据本发明示例性实施方式的数据生命周期管理方法。需要注意的是,上述应用场景仅是为了便于理解本发明的精神和原理而示出,本发明的实施方式在此方面不受任何限制。相反,本发明的实施方式可以应用于适用的任何场景。
本公开首先提供了一种数据生命周期管理方法,该方法执行主体可以是服务器,本示例实施例中以服务器执行该方法为例进行说明。
参照图4所示,在步骤S410中,从集群数据库获取待处理元数据,并确定待处理元数据的生命周期状态;其中,待处理元数据基于初始元数据生成。
在一些示例实施例中,元数据可以包括数据表和数据分区。初始元数据可以是HDFS中原生的元数据,初始元数据通常存在于名称节点的内存中。待处理元数据可以是对HDFS中的初始元数据复制操作后存储在另一存储位置的元数据。集群数据库可以是用于存储待处理元数据的数据库,例如,集群数据库可是HBase数据库。将初始元数据进行复制操作后,可以将生成的待处理元数据存储在集群数据库中。生命周期状态可以是表示待处理元数据当前生命周期所处的具体状态,例如,生命周期状态可以包括已到达生命周期或未到达生命周期等。
HDFS的原生元数据提供了目录、文件存储状态信息及目录文件层级关系的查询接口,但是,原生的接口需要递归节点,计算统计信息,NameNode的读写操作需共用读写锁,在节点较多时,将长时间阻塞其他用户请求,导致内部线程超时,引起集群抖动。因此,本发明使用数据管理服务器中的HDFS元数据分析服务替代NameNode节点,重建HDFS元数据。由于初始元数据原本是存储在NameNode内存中,现通过HDFS元数据分析服务将HDFS元数据存储到HBase集群数据库中,避免每次启动都需要重新计算加载所有数据,服务长时间不可用。
另外,HDFS元数据分析服务还提供目录统计信息、目录层级关系的查询功能,针对原生接口的不足进行优化。具体的,HDFS元数据分析服务在重建初始元数据时,可以对元数据目录下的文件信息进行统计,包括目录下递归和非递归计算得到的文件数,以及目录下递归和非递归计算得到的文件大小等信息,其他服务查询时可以直接查询HBase数据,避免像NameNode那样递归及加锁等操作,提高接口查询性能。
进一步地,由于数据生命周期管理服务由独立于Hive及HDFS相关组件之外的数据生命周期管理服务器提供,在提供生命周期管理服务时,可以不修改Hive及HDFS相关组件,在进行数据生命周期管理的过程中,可以便于和社区版本长期兼容发展,也避免由于修改不当而影响其正常运行。
在步骤S420中,从待处理元数据中确定生命周期状态处于目标生命状态的初始待删除元数据。
在一些示例实施例中,目标生命状态可以是已达到生命周期的状态。初始待删除元数据可以是已达到生命周期的待处理元数据。例如,可以对Hive元数据添加生命周期标识,通过生命周期标识的值判断待处理元数据的生命周期状态,生命周期标识可以采用“LIFECYCLE”这一属性字段表示。
由于原生Hive并没有生命周期管理功能,本发明使用Hive提供的表属性TBLPROPERTIES来增加生命周期标识,定义TABLE_LIFECYCLE作为数据表的生命周期,定义PARTITION_LIFECYCLE作为分区的生命周期。可以在创建表或者修改表时增加该属性,标识数据表和数据分区的生命周期,比如创建一张employees表,表生命周期设置为1年,分区生命周期设置为2周;再将表生命周期调整为5年,对应的SQL语句如下:
创建表:CREATE TABLE employees(name STRING)PARTITIONEDBY(countrySTRING)TBLPROPERTIES('TABLE_LIFECYCLE'='1y','PARTITION_LIFECYCLE'='2w')
修改表:ALTER TABLE employees SET TBLPROPERTIES('TABLE_LIFECYCLE'='5y')
数据生命周期管理服务启动时,将启动分布式任务调度器,用于Hive MetaData的扫描,对于已经达到生命周期的待处理元数据进行删除调度。例如,使用Hive提供的表属性TBLPROPERTIES作为元数据的生命状态标识,通过获取生命周期标识的值以确定待处理元数据的生命周期状态,并将生命周期状态为已达到生命周期的待处理元数据确定为初始待删除元数据。
在步骤S430中,对初始待删除元数据进行封装处理以生成初始逻辑删除任务,并对初始逻辑删除任务进行逻辑删除处理。
在一些示例实施例中,初始逻辑删除任务可以是对初始待删除元数据进行任务封装处理后生成的任务,可以对初始逻辑删除任务进行逻辑删除处理。逻辑删除处理可以是将初始逻辑删除任务进行逻辑删除操作,例如,逻辑删除操作可以是将初始逻辑删除任务从初始目录转移至待删除目录的操作。
在确定出初始待删除元数据后,可以对初始待删除元数据进行任务封装处理,生成初始逻辑删除任务,并提交到待处理任务队列中,以便逐个对待处理任务队列中的初始逻辑删除任务进行逻辑删除处理。在启动数据生命周期管理服务时,提供一个待处理任务队列用于记录待执行的删除任务,根据任务的操作状态可以对任务的种类进行划分。例如,任务的操作状态分为以下几种:pending,可以表示任务还未被执行;logical doing,可以表示该任务正在被执行逻辑删除;logical done,可以表示该任务已被执行逻辑删除;physical doing,可以表示该任务正在被执行物理删除;physical done,可以表示该任务已被执行物理删除;failed,可以表示该任务执行失败,需要重试;canceled,可以表示该任务已被取消;recovered,可以表示该任务中的数据已被恢复。初始逻辑删除任务可以是操作状态为pending的任务。
在步骤S440中,将经过逻辑删除处理的初始逻辑删除任务确定为逻辑删除任务,并根据逻辑删除任务生成物理删除任务。
在一些示例实施例中,逻辑删除任务可以是经过逻辑删除处理的任务,逻辑删除任务可以是操作状态为logical done的任务。只有在任务状态为逻辑删除任务时,即操作状态处于logical done时,才可以对该任务进行物理删除处理。物理删除任务可以是待执行物理删除操作的任务。
对初始逻辑删除任务进行逻辑删除处理时,任务的操作状态为logical doing,当对初始逻辑删除任务的逻辑删除处理结束后,任务的操作状态变为logical done,可以将操作状态为logical done的任务确定为逻辑删除任务。对逻辑删除任务进行任务生成处理,可以生成对应的物理删除任务。例如,可以将逻辑删除任务推送至物理删除任务队列中,生成物理删除任务。与现有技术中的数据生命周期管理服务相比,针对元数据对应的存储数据的删除操作,由执行器(Hive Execution)交由生命周期管理服务器进行,执行方式也由同步优化为异步,在数据表或者数据分区的生命周期达到时,Hive元数据将被HiveExecution立即删除,但HDFS上的存储数据将被延迟删除,此时存储数据已对用户不可见。
在步骤S450中,获取分布式文件存储系统的状态参数,并根据状态参数对物理删除任务进行物理删除处理。分布式文件存储系统的状态参数可以是表示HDFS当前状态的参数。例如,状态参数可以包括待删除数据块和客户端端口的排队时间;其中,可以采用PendingDeletionBlocks表示待删除数据块,采用RPCClientPortQueueTime表示客户端端口的排队时间。
在对物理删除任务进行物理删除处理之前,可以获取HDFS集群的状态参数,根据HDFS集群的状态参数确定当前是否进行物理删除操作,根据HDFS集群的状态自适应调整当前是否执行物理删除任务。
在一些示例实施例中,在从集群数据库获取待处理元数据之前,可以通过下述步骤将待处理元数据存储于集群数据库中:
向元数据服务器发送元数据描述信息获取请求;
接收并解析元数据服务器发送的初始元数据的元数据描述信息,并根据元数据描述信息重建初始元数据以生成待处理元数据;
将与待处理元数据对应的目录统计信息确定为第一目录信息,并将待处理元数据和第一目录信息存储于集群数据库。
其中,元数据服务器,也称为HDFS名称节点(HDFS NameNode),可以是管理HDFS元数据的主服务器,用于管理客户端对文件的操作,并确定文件与存储块的具体位置。元数据描述信息,即NameNode中的fsimage文件,保存了NameNode最新元数据的检查点,包含了整个HDFS文件系统的所有目录和文件的信息;对于文件维度而言,包括了数据块描述信息、修改时间、访问时间等;对于目录维度而言,包括了修改时间、访问权限控制信息(目录所属用户,所在组)等。第一目录信息可以是待处理元数据的目录统计信息。目录统计信息可以是待处理元数据对应目录的相关信息,例如,目录统计信息可以包括待处理元数据对应目录中包含的子目录数量、子目录层级结构以及包含的文件数。
在获取待处理元数据之前,可以先从元数据服务器中获取初始元数据,并根据初始元数据生成待处理元数据。参考图5,图5示意性地示出了根据本发明的一些实施例的实现数据生命周期管理服务的整体架构的示意图。对于Hadoop分布式文件存储系统510中存储数据的元数据,可以通过生命周期管理服务器520中的HDFS元数据分析服务模块521从Hive平台530的元数据服务器531中获取初始元数据,存储初始元数据的存储节点可以包括主节点532和从节点533,并根据获取到的初始元数据生成待处理元数据。
具体的,HDFS元数据分析服务的执行步骤包括:在HDFS元数据分析服务启动时,检查是否要从活动名称节点(即Active NameNode)中获取元数据描述信息,即拉取fsimage文件。如果需要拉取fsimage文件,则生命周期管理服务器可以向Active NameNode发送获取初始元数据的fsimage文件的获取请求,元数据服务器接收到该获取请求后,由ActiveNameNode确定出与该获取请求对应的fsimage文件,并将fsimage文件发送至生命周期管理服务器。生命周期管理服务器中的HDFS元数据分析服务模块521可以接收并解析fsimage文件,重建fsimage文件中的初始元数据,生成对应的待处理元数据。确定待处理元数据对应的目录以及目录下包含的文件等信息目录统计信息,并将其作为第一目录信息,将待处理元数据和第一目录信息存储在集群数据库,即HBase数据库630中。
由于采用原生查询接口进行查询,将对目录、文件加锁,递归计算,大目录不但耗时,而且易引起集群抖动。HDFS元数据分析服务重建了初始元数据,从而可以支持对元数据目录统计信息及层级关系的快速查询,实现Hive在HDFS上的大目录可以被自顶向下拆分成小目录,而后自底向上进行删除,避免对诸如百万级目录的直接删除。
在一些示例实施例中,将待处理元数据存储于集群数据库中之后,通过下述步骤更新集群数据库中的待处理元数据:
每隔第一预设时间从元数据服务器获取数据操作日志;
根据数据操作日志确定数据操作记录;其中,数据操作记录包括与待处理元数据对应的存储数据相关的数据操作;
根据数据操作记录更新集群数据库中的待处理元数据。
其中,第一预设时间可以是预先设定的时间间隔,根据第一预设时间可以周期性地从元数据服务器中获取数据操作日志。数据操作日志可以是根据HDFS数据的数据操作记录所生成的日志,例如,可以记录NameNode对HDFS的各种操作,定期合并成一个检查点,生成fsimage文件。数据操作日志可以共享存储在日志节点(JournalNode)中。待处理元数据对应的存储数据可以是采用待处理元数据进行描述的数据。数据操作记录可以包括对待处理元数据对应的存储数据的数据操作,例如,数据的增删改查等操作。
参考图6,HDFS元数据分析服务在服务启动时,可以从活动名称节点(ActiveNameNode)610中拉取fsimage文件从而获取最新元数据的检查点。在服务启动后,由于用户可能对元数据进行数据操作,因此Active NameNode可以将HDFS的数据操作以数据操作日志(即editlog)的形式提交到日志节点集群620的日志节点621中。通常HDFS元数据分析服务521每隔第一预设时间将从元数据服务器的日志节点中获取数据操作日志,以同步新增的editlog。根据新增的editlog可以确定出针对待处理元数据对应的存储数据新增的增删改查等数据操作,如文件创建、删除、修改、重命名、移动等。根据这些数据操作记录对上述操作进行回放,更新集群数据库(HBase)630中待处理元数据的存储信息。
然而,由于内存的读写速度远高于HBase,将数据存储到HBase数据库后,将导致元数据分析服务的消费速度赶不上操作日志(editlog)的生产速度,因此,通过对HBase读写、主键(rowKey键)设计、多线程处理等方面进行优化处理,以实现editlog的实时消费;具体的,HBase读写可以采用纯Java应用程序接口(Application Programming Interface,API)读写HBase的方式和HBase通过Phoenix(函数式编程语言Elixir的Web开发框架)读写的方式等;在进行主键设计时,可以将多个字段进行组合以组成对应的rowKey,以提高查询速度;多线程处理可以使获取editlog的程序代码被多个线程共享,以便这多个线程均可以处理editlog这一资源。
在一些示例实施例中,可以通过下述步骤确定待处理元数据的生命周期状态:
每隔第二预设时间执行针对待处理元数据的数据扫描操作,以确定待处理元数据中的待处理数据表和待处理数据分区;
获取待处理数据表的数据表生命标识以及待处理数据分区的分区生命标识;
根据数据表生命标识确定待处理数据表的生命周期状态,并根据分区生命标识确定待处理数据分区的生命周期状态。
其中,第二预设时间可以是用于进行数据扫描操作而预先设定的时间间隔,记为T1。数据扫描操作可以是针对元数据备库进行的扫描操作,以获取Hive平台中的数据表和数据分区;其中,一个数据表可以包含多个数据分区。待处理数据表可以是待处理元数据中包含的数据表。待处理数据分区可以是待处理元数据中包含的数据分区。数据表生命标识可以是用于表示待处理数据表的生命周期状态的标识。分区生命标识可以是用于表示待处理数据分区的生命周期状态的标识。
参考图5,在步骤S511中,生命周期管理服务器520中的分布式任务调度器523每隔第二预设时间调度一次MetaData备库的数据扫描操作,以获取待处理元数据中包含的所有的待处理数据表和待处理数据分区。在获取到待处理数据表后,可以获取待处理数据表的数据表生命标识以及数据分区标识,即分别获取TABLE_LIFECYCLE和PARTITION_LIFECYCLE。在步骤S512中,根据数据表生命标识确定待处理数据表的生命周期状态,并根据分区生命标识确定待处理数据分区的生命周期状态。
在本示例实施例中,从待处理元数据中确定生命周期状态处于目标生命状态的初始待删除元数据的过程包括下述步骤:
如果数据表生命标识处于目标生命状态,则将待处理数据表确定为初始待删除数据表;
如果分区生命标识处于目标生命状态,则将待处理数据分区确定为初始待删除分区。
其中,目标生命状态可以是表示元数据已达到生命周期的生命状态。根据待处理数据表的数据表生命标识计算待处理数据表的生命周期,判断其是否处于目标生命状态,即是否已达到生命状态。若已达到生命周期,则将待处理数据表确定为初始待删除数据表。同样的,根据待处理数据分区的分区生命标识计算待处理数据分区的生命周期,判断其是否处于目标生命状态,即是否已达到生命状态。若已达到生命周期,则将待处理数据分区确定为初始待删除分区。
在一些示例实施例中,可以通过下述步骤对初始待删除元数据进行逻辑删除处理:
将初始待删除数据表和初始待删除分区分别进行封装处理并推送至待处理任务队列,以生成初始逻辑删除任务;初始逻辑删除任务包括逻辑删除数据表和逻辑删除分区;
确定逻辑删除数据表的初始表目录,并将初始表目录中的信息转移至移除表目录;
确定逻辑删除分区的初始分区目录,并将初始分区目录中的信息转移至移除分区目录;
确定并存储初始表目录与移除表目录之间的表目录映射关系,并删除初始表目录;
确定并存储初始分区目录与移除分区目录之间的分区目录映射关系,并删除初始分区目录。
其中,逻辑删除处理可以是对待处理元数据(即Hive元数据)进行删除操作的处理。待处理任务队列可以是存储待处理任务的队列,待处理任务队列可以用于记录待执行任务,由数据生命周期管理服务器提供待处理任务队列。初始逻辑删除任务可以对初始待删除数据表和初始待删除分区分别进行封装处理,并推送至待处理任务队列所生成的待处理任务,初始逻辑删除任务可以包括逻辑删除数据表和逻辑删除分区。逻辑删除数据表可以是对初始待删除数据表进行封装处理所生成。逻辑删除分区可以是对初始待删除数据分区进行封装处理所生成。初始表目录可以是逻辑删除数据表在HDFS中的目录。移除表目录可以是逻辑删除数据表在待删目录中对应的目录。初始分区目录可以是逻辑删除数据分区在HDFS中的目录。移除分区目录可以是逻辑删除数据分区在待删目录中对应的目录。表目录映射关系可以是初始表目录与移除表目录之间的映射关系。分区目录映射关系可以是初始分区目录与移除分区目录之间的映射关系。
参考图5,在步骤S513中,将初始待删除数据表进行封装处理,生成待执行任务,并将该任务的操作状态设置为pending,将操作状态为pending待执行任务提交至待处理任务队列中,生成初始逻辑删除任务。同样的,对于待处理数据分区,可以采用同样的处理步骤将待处理数据分区生成初始逻辑删除任务;其中,在初始逻辑删除任务中,可以将根据初始待删除数据表生成的初始逻辑删除任务确定为逻辑删除数据表;将根据初始待删除数据分区生成的初始逻辑删除任务确定为逻辑删除分区。
在步骤S514中,可以对待处理元数据进行逻辑删除处理,当对逻辑删除数据表或逻辑删除分区进行逻辑删除处理时,可以将对应的逻辑删除数据表或逻辑删除分区对应任务的操作状态修改为logical doing。对于逻辑删除数据表,确定出逻辑删除数据表在HDFS中的初始表目录,将逻辑删除数据表转移到移除表目录下,并进行重命名。目录转移完成后,确定初始表目录与移除表之间的表目录映射关系,并记录数据表的数据库模式定义语言(Data Definition Language,DDL)语句,而后调用Hive删除接口对初始表目录中的元数据进行删除。同样的,对于逻辑删除分区,确定出逻辑删除分区在HDFS中的初始分区目录,将逻辑删除分区转移到移除分区目录下,并进行重命名。目录转移完成后,确定初始分区目录与移除分区之间的分区目录映射关系,并记录数据分区的DDL语句,而后调用Hive删除接口对初始分区目录中的元数据进行删除。
重复执行上述步骤,直至对获取到的所有待处理数据表和待处理数据分区操作完毕,则本次调度任务执行完毕。由于HDFS上原目录已不存在,因此Hive执行引擎在向HDFS提交删除任务时将很快返回,不会影响HDFS集群。在逻辑删除操作结束后,可以将初始逻辑删除任务的操作状态修改为logical done,将操作状态为logical done的任务确定为逻辑删除任务。在针对初始逻辑删除任务的逻辑删除执行完毕,此时数据对用户已不可见,但还未真正被删除。
在一些示例实施例中,根据逻辑删除任务生成物理删除任务可以包括下述步骤。
判断待处理任务队列的队列状态是否符合任务执行条件;任务执行条件包括待处理任务队列不为空且待处理任务队列中存在处于预设状态的目标任务且目标任务的任务建立时间大于目标时间阈值;
如果队列状态符合任务执行条件,则从待处理任务队列中获取逻辑删除任务;
将逻辑删除任务对应的存储数据统计信息推送至物理删除队列,以生成物理删除任务。
其中,队列状态可以是待处理任务队列的当前状态。任务执行条件可以是判断是否能够对待处理任务队列中的待执行任务执行物理删除操作的约束条件。预设状态可以是预先定义的任务状态,例如,预设状态可以包括logical done,physical doing,failed等操作状态。目标任务可以是待处理任务队列中的指定任务。任务建立时间可以是目标任务在当前时刻与任务建立时刻所间隔的时间。目标时间阈值可以是预先定义的数据保护期,记为T2,在T2时间段内存储数据不会被物理删除,可以随时恢复。存储数据统计信息可以是存储数据对应的目录统计信息,例如,目录统计信息可以包括目录文件数量、目录文件层级关系等信息。逻辑删除任务对应的存储数据统计信息可以是逻辑删除任务中包含的数据表对应的存储数据的目录统计信息以及数据分区对应的存储数据的目录统计信息。物理删除队列可以是用于存储物理删除任务的任务队列。物理删除任务可以是待执行物理删除操作的任务,可以是由元数据对应的HDFS存储数据封装而成的任务。物理删除操作可以是对待处理元数据对应在HDFS上的存储数据进行删除的操作。
具体的,在对待处理任务队列中的任务进行物理删除操作时,分布式任务调度器在任务启动时可以调度一个Hive存储数据的删除线程,以执行物理删除操作。参考图5,在步骤S515中,在执行物理删除操作之前,可以先根据逻辑删除任务生成物理删除任务,通过获取待处理任务队列的队列状态,并判断队列状态是否符合任务执行条件以确定是否生成物理删除任务。如果待处理任务队列的队列为空,或者队列中不存在logical done,physical doing,failed的目标任务,或者目标任务的任务建立时间未达到目标时间阈值,则休眠一段时间(如T3时间)继续检测队列状态,直至队列状态满足任务执行条件,则从待处理任务队列中获取逻辑删除任务。在从任务队列中获取到逻辑删除任务后,可以将获取到的逻辑删除任务的操作状态修改为physical doing,并检查逻辑删除任务对应的物理删除任务是否生成,如果还未生成物理删除任务,则执行根据逻辑删除任务生成物理删除任务的执行步骤;否则,执行步骤S516,即针对物理删除任务的物理删除操作。
在本示例实施例中,将逻辑删除任务对应的存储数据统计信息推送至物理删除队列,以生成物理删除任务,包括:确定逻辑删除任务中的逻辑删除元数据对应的待删除目录,并获取与待删除目录对应的第二目录信息;第二目录信息包括目标文件数;
如果目标文件数小于第一阈值,则将逻辑删除任务对应的存储数据统计信息推送至物理删除队列,以生成物理删除任务;
如果目标文件数大于等于第一阈值,则递归计算待删除目录下子目录元数据对应的子目录文件数;
如果子目录文件数小于第一阈值,则将子目录元数据对应的存储数据统计信息推送至物理删除队列,以生成物理删除任务;
根据逻辑删除元数据与子目录元数据确定剩余删除元数据;
如果剩余删除元数据对应的剩余文件数小于第一阈值,则将剩余删除元数据对应的存储数据统计信息推送至物理删除队列,以生成物理删除任务。
其中,待删除目录可以是逻辑删除任务中包含的元数据所对应的目录。第二目录信息可以是待删除目录中包含的目录信息,例如,第二目录信息可以包括目录层级关系、待删除目录的各子目录下包含的文件数。目标文件数可以是待删除目录下所包含的文件数量。第一阈值可以是预先设定的数值,可以将第一阈值记为约束条件R1。子目录文件数可以是待删除目录中某一子目录下包含的文件数量。子目录元数据可以是该子目录中所包含的元数据。剩余删除元数据可以是除去待删除目录中已生成物理删除任务的那一部分子目录元数据后的所剩余的元数据。剩余文件数可以使剩余删除元数据所包含的文件数量。物理删除队列,又称删除计划队列,可以是用于存储待处理的物理删除任务的任务队列。与上文所述的逻辑删除任务对应的存储数据统计信息相同,子目录元数据对应的存储数据统计信息可以是子目录元数据对应的存储数据的目录统计信息,剩余删除元数据对应的存储数据统计信息可以是剩余删除元数据对应的存储数据的目录统计信息。
具体的,在根据逻辑删除任务生成物理删除任务时,可以通过HDFS元数据分析服务确定出逻辑删除任务中包含的逻辑删除元数据对应的待删除目录,并获取待删除目录中包含的第二目录信息,例如,可以获取待删除目录中包含的目标文件数。如果待删除目录下的目标文件数小于第一阈值,即目标文件数小于约束条件R1,则认为该待删除目录满足约束条件,可以将逻辑删除任务直接推送至物理删除队列,根据逻辑删除任务中元数据对应的存储数据生成物理删除任务。如果目标文件数大于等于第一阈值,则通过元数据分析服务递归计算待删除目录下各子目录的目录统计信息,获取各子目录中包含的子目录文件数,并逐个判断这些子目录是否小于第一阈值,如果子目录文件数小于第一阈值,则将子目录元数据对应的存储数据推送至物理删除队列中,以生成物理删除任务。在将某一子目录下的子目录元数据对应的存储数据加入物理删除队列生成物理删除任务后,可以根据逻辑删除元数据与子目录元数据确定剩余删除元数据,并确定剩余删除元数据对应的剩余文件数。例如,可以将某一子目录对应的父目录下递归统计得到的文件数减去已加入物理删除队列中的子目录文件数,得到剩余文件数。如果剩余文件数小于第一阈值,则将其父目录下的剩余删除元数据对应的存储数据推送至物理删除队列中,生成物理删除任务;否则,继续递归剩余子目录下的子目录,直至所有目录均已满足约束条件,则物理删除任务生成过程完毕。
在一些示例实施例中,可以通过下述步骤根据状态参数对物理删除任务进行物理删除处理:
获取分布式文件存储系统的待删除数据块数量和端口排队时间;
如果待删除数据块数量小于第二阈值且端口排队时间小于第三阈值,则从物理删除队列的队首获取目标删除任务;
向分布式文件存储系统发送针对目标删除任务的删除请求,以由分布式文件存储系统对目标删除任务执行物理删除操作。
其中,待删除数据块数量可以是集群中当前待删除数据块的个数,可以采用PendingDeletionBlocks表示。端口排队时间可以是等待某一端口进行处理的排队等待时间,可以采用RPCClientPortQueueTime表示。第二阈值可以是预先设定的数值,用于与待删除数据块数量进行对比。第三阈值同样是预先设定的数值,第三阈值用于与端口排队时间进行对比。目标删除任务可以当前即将被执行物理删除操作的任务。
参考图5,在对物理删除任务执行物理删除操作之前,可以通过HDFS状态监控服务模块522获取分布式文件存储系统的当前状态信息,例如,可以获取HDFS的待删除数据块数量和端口排队时间,进而根据HDFS的状态确定当前是否进行物理删除操作。在步骤S515中,分别将待删除数据块数量与第二阈值进行对比,将端口排队时间与第三阈值进行对比,判断是否满足第二约束条件R2和第三约束条件R3,即待删除数据块数量小于第二阈值且端口排队时间小于第三阈值。如果不满足,则休眠T4时间后,执行是否已根据逻辑删除任务生成物理删除任务的判断步骤;如果均满足,则从物理删除队列中获取队首目录,以根据队首目录获取目标删除任务。在获取到目标删除任务之后,可以向HDFS发送目标删除任务的删除请求,以由HDFS对目标删除任务执行物理删除操作。由于目录很小,因此,HDFS可以很快响应删除请求,且不会对集群的稳定性产生影响。在队首目录删除完毕后,继续检测HDFS集群状态,如果仍然满足,则继续执行物理删除操作,直至物理删除队列为空或HDFS集群状态已不满足,如果物理删除队列已空,则修改任务状态为physical done,并从待删除队列中移除,执行是否已根据逻辑删除任务生成物理删除任务的判断步骤;否则,休眠T4时间,执行是否已根据逻辑删除任务生成物理删除任务的判断步骤。由于物理删除操作将根据集群状态自适应调整,一旦集群负载较高,将暂停物理删除操作,直到集群状态恢复,再重新开始物理删除操作。
在一些示例实施例中,可以通过下述步骤恢复误删除的数据:确定待恢复数据;获取待恢复数据的初始存储目录以及待恢复数据的移除存储目录;将待恢复数据从移除存储目录移动至初始存储目录,以恢复待恢复数据;获取待恢复数据的数据建立语句,以根据待恢复数据的数据建立语句重建待恢复数据对应的待恢复数据表和待恢复数据分区。
其中,待恢复数据可以是已执行逻辑删除操作但未进行物理删除操作的元数据。初始存储目录可以是待恢复数据初始所对应的目录。移除存储目录可以是对待恢复数据进行逻辑删除处理后,待恢复数据所对应的存储目录。数据建立语句可以是待恢复数据对应的DDL语句,DDL语句可以用于描述数据库中所要存储的现实世界实体的语言。例如,数据建立语句待恢复数据对应的创建数据库语句、创建数据库表格语句、修改数据库表格语句等。待恢复数据表可以是待恢复数据中包含的数据表。待恢复数据分区可以是待恢复数据中包含的数据分区。
由于Hive数据表或数据分区在进行逻辑删除处理后,对用户而言为不可见状态,但是数据并未被真正删除,而是保留T2时间,则在T2时间内,如果想要恢复某些已完成逻辑删除处理的元数据,可以执行数据恢复步骤以恢复被误删除的元数据。首先,可以确定待恢复数据,并将待恢复数据的操作状态设置为recovered,表示该数据已被恢复。其次,可以将待恢复数据从移除存储目录移动至初始存储目录,即把待恢复数据从移动后的目录移动至原来的目录,以恢复待恢复数据,即恢复Hive在HDFS上的数据。再次,获取待恢复数据的数据建立语句,包括数据表DDL语句和数据分区的DDL语句,以根据数据建立语句重建待恢复数据对应的待恢复数据表和待恢复数据分区,此时,Hive元数据已完成恢复操作。通过上述步骤,可以实现对误删除数据的快速恢复。
进一步地,在对待处理元数据进行物理删除之前,如果想要避免数据被删除,可以将数据对应任务的操作状态设置为canceled,该数据将不会被删除,直至该数据对应任务的操作状态被重新设置为physical doing。
示例性装置
在介绍了本发明示例性实施方式的方法之后,接下来,参考图7对本发明示例性实施例的数据生命周期管理装置进行说明。
在图7中,数据生命周期管理装置700可以包括状态确定模块710、元数据确定模块720、第一删除模块730、任务生成模块740以及第二删除模块750。其中:状态确定模块710,用于从集群数据库获取待处理元数据,并确定待处理元数据的生命周期状态;其中,待处理元数据基于初始元数据生成;元数据确定模块720,用于从待处理元数据中确定生命周期状态处于目标生命状态的初始待删除元数据;第一删除模块730,用于对初始待删除元数据进行封装处理以生成初始逻辑删除任务,并对初始逻辑删除任务进行逻辑删除处理;任务生成模块740,用于将经过逻辑删除处理的初始逻辑删除任务确定为逻辑删除任务,并根据逻辑删除任务生成物理删除任务;第二删除模块750,用于获取分布式文件存储系统的状态参数,并根据状态参数对物理删除任务进行物理删除处理。
在本发明的一些实施例中,所述数据生命周期管理装置700还包括元数据处理模块,元数据处理模块包括:信息获取请求发送单元,用于向元数据服务器发送元数据描述信息获取请求;元数据重建单元,用于接收并解析元数据服务器发送的初始元数据的元数据描述信息,并根据元数据描述信息重建初始元数据以生成待处理元数据;元数据存储单元,用于将与待处理元数据对应的目录统计信息确定为第一目录信息,并将待处理元数据和第一目录信息存储于集群数据库。
在本发明的一个实施例中,元数据处理模块还包括元数据更新单元,元数据更新单元被配置为:每隔第一预设时间从元数据服务器获取数据操作日志;根据数据操作日志确定数据操作记录;其中,数据操作记录包括与待处理元数据对应的存储数据相关的数据操作;根据数据操作记录更新集群数据库中的待处理元数据。
在本发明的一个实施例中,状态确定模块包括数据扫描单元,用于每隔第二预设时间执行针对待处理元数据的数据扫描操作,以确定待处理元数据中的待处理数据表和待处理数据分区;生命标识获取单元,用于获取待处理数据表的数据表生命标识以及待处理数据分区的分区生命标识;生命周期状态确定单元,用于根据数据表生命标识确定待处理数据表的生命周期状态,并根据分区生命标识确定待处理数据分区的生命周期状态。
在本发明的一个实施例中,元数据确定模块包括数据表确定单元,用于如果数据表生命标识处于目标生命状态,则将待处理数据表确定为初始待删除数据表;分区确定单元,用于如果分区生命标识处于目标生命状态,则将待处理数据分区确定为初始待删除分区。
在本发明的一个实施例中,第一删除模块被配置为:将初始待删除数据表和初始待删除分区分别进行封装处理并推送至待处理任务队列,以生成初始逻辑删除任务;初始逻辑删除任务包括逻辑删除数据表和逻辑删除分区;确定逻辑删除数据表的初始表目录,并将初始表目录中的信息转移至移除表目录;确定逻辑删除分区的初始分区目录,并将初始分区目录中的信息转移至移除分区目录;确定并存储初始表目录与移除表目录之间的表目录映射关系,并删除初始表目录;确定并存储初始分区目录与移除分区目录之间的分区目录映射关系,并删除初始分区目录。
在本发明的一个实施例中,任务生成模块包括执行条件判断单元,用于判断待处理任务队列的队列状态是否符合任务执行条件;任务执行条件包括待处理任务队列不为空且待处理任务队列中存在处于预设状态的目标任务且目标任务的任务建立时间大于目标时间阈值;逻辑任务获取单元,用于如果队列状态符合任务执行条件,则从待处理任务队列中获取逻辑删除任务;物理任务生成单元,用于将逻辑删除任务对应的存储数据统计信息推送至物理删除队列,以生成物理删除任务。
在本发明的一个实施例中,物理任务生成单元被配置为:确定逻辑删除任务中的逻辑删除元数据对应的待删除目录,并获取与待删除目录对应的第二目录信息;第二目录信息包括目标文件数;如果目标文件数小于第一阈值,则将逻辑删除任务对应的存储数据统计信息推送至物理删除队列,以生成物理删除任务;如果目标文件数大于等于第一阈值,则递归计算待删除目录下子目录元数据对应的子目录文件数;如果子目录文件数小于第一阈值,则将子目录元数据对应的存储数据统计信息推送至物理删除队列,以生成物理删除任务;根据逻辑删除元数据与子目录元数据确定剩余删除元数据;如果剩余删除元数据对应的剩余文件数小于第一阈值,则将剩余删除元数据对应的存储数据统计信息推送至物理删除队列,以生成物理删除任务。
在本发明的一个实施例中,第二删除模块被配置为:获取分布式文件存储系统的待删除数据块数量和端口排队时间;如果待删除数据块数量小于第二阈值且端口排队时间小于第三阈值,则从物理删除队列的队首获取目标删除任务;向分布式文件存储系统发送针对目标删除任务的删除请求,以由分布式文件存储系统对目标删除任务执行物理删除操作。
在本发明的一个实施例中,数据生命周期管理装置700还包括数据恢复模块,数据恢复模块被配置为:确定待恢复数据;获取待恢复数据的初始存储目录以及待恢复数据的移除存储目录;将待恢复数据从移除存储目录移动至初始存储目录,以恢复待恢复数据;获取待恢复数据的数据建立语句,以根据待恢复数据的数据建立语句重建待恢复数据对应的待恢复数据表和待恢复数据分区。
在本发明实施例的第三方面中,提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上述第一方面所述的数据生命周期管理方法。
示例性介质
在介绍了本发明示例性实施方式的装置之后,接下来,参考图8对本发明示例性实施例的存储介质进行说明。
在一些实施例中,本发明的各个方面还可以实现为一种介质,其上存储有程序代码,当所述程序代码被设备的处理器执行时用于实现本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施例的数据生命周期管理方法中的步骤。
例如,所述设备的处理器执行所述程序代码时可以实现如图4中所述的步骤S410,从集群数据库获取待处理元数据,并确定待处理元数据的生命周期状态;其中,待处理元数据基于初始元数据生成;步骤S420,从待处理元数据中确定生命周期状态处于目标生命状态的初始待删除元数据;步骤S430,对初始待删除元数据进行封装处理以生成初始逻辑删除任务,并对初始逻辑删除任务进行逻辑删除处理;步骤S440,将经过逻辑删除处理的初始逻辑删除任务确定为逻辑删除任务,并根据逻辑删除任务生成物理删除任务;步骤S450,获取分布式文件存储系统的状态参数,并根据状态参数对物理删除任务进行物理删除处理。
参考图8所示,描述了根据本发明的实施例的用于实现上述数据生命周期管理方法或者实现上述数据生命周期管理方法的程序产品800,其可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本发明的程序产品不限于此。
所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备。
示例性计算设备
在介绍了本发明示例性实施方式的数据生命周期管理方法、数据生命周期管理装置以及存储介质之后,接下来,参考图9对本发明示例性实施方式的电子设备进行说明。
所属技术领域的技术人员能够理解,本发明的各个方面可以实现为系统、方法或程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施例、完全的软件实施例(包括固件、微代码等),或硬件和软件方面结合的实施例,这里可以统称为“电路”、“模块”或“系统”。
在一些可能的实施例中,根据本发明的电子设备可以至少包括至少一个处理单元、以及至少一个存储单元。其中,所述存储单元存储有程序代码,当所述程序代码被所述处理单元执行时,使得所述处理单元执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施例的数据生命周期管理方法中的步骤。例如,所述处理单元可以执行如图4中所示的步骤S410,从集群数据库获取待处理元数据,并确定待处理元数据的生命周期状态;其中,待处理元数据基于初始元数据生成;步骤S420,从待处理元数据中确定生命周期状态处于目标生命状态的初始待删除元数据;步骤S430,对初始待删除元数据进行封装处理以生成初始逻辑删除任务,并对初始逻辑删除任务进行逻辑删除处理;步骤S440,将经过逻辑删除处理的初始逻辑删除任务确定为逻辑删除任务,并根据逻辑删除任务生成物理删除任务;步骤S450,获取分布式文件存储系统的状态参数,并根据状态参数对物理删除任务进行物理删除处理。
下面参照图9来描述根据本发明的示例实施例的电子设备900。图9所示的电子设备900仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图9所示,电子设备900以通用计算设备的形式表现。电子设备900的组件可以包括但不限于:上述至少一个处理单元901、上述至少一个存储单元902、连接不同系统组件(包括存储单元902和处理单元901)的总线903、显示单元907。
总线903表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器、外围总线、图形加速端口、处理器或者使用多种总线结构中的任意总线结构的局域总线。
存储单元902可以包括易失性存储器形式的可读介质,例如随机存取存储器(RAM)921和/或高速缓存存储器922,还可以进一步包括只读存储器(ROM)923。
存储单元902还可以包括具有一组(至少一个)程序模块924的程序/实用工具925,这样的程序模块924包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
电子设备900也可以与一个或多个外部设备904(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与电子设备900交互的设备通信,和/或与使得电子设备900能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口905进行。并且,电子设备900还可以通过网络适配器906与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器906通过总线903与电子设备900的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备900使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
应当注意,尽管在上文详细描述中提及了数据生命周期管理装置的若干单元/模块或子单元/模块,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多单元/模块的特征和功能可以在一个单元/模块中具体化。反之,上文描述的一个单元/模块的特征和功能可以进一步划分为由多个单元/模块来具体化。
此外,尽管在附图中以特定顺序描述了本发明方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
虽然已经参考若干具体实施方式描述了本发明的精神和原理,但是应该理解,本发明并不限于所公开的具体实施方式,对各方面的划分也不意味着这些方面中的特征不能组合以进行受益,这种划分仅是为了表述的方便。本发明旨在涵盖所附权利要求的精神和范围内所包括的各种修改和等同布置。
Claims (18)
1.一种数据生命周期管理方法,其特征在于,应用于生命周期管理服务器,包括:
从集群数据库获取待处理元数据,并确定所述待处理元数据的生命周期状态;其中,所述待处理元数据基于初始元数据生成;
从所述待处理元数据中确定生命周期状态处于目标生命状态的初始待删除元数据;
对所述初始待删除元数据进行封装处理以生成初始逻辑删除任务,并对所述初始逻辑删除任务进行逻辑删除处理;
将经过所述逻辑删除处理的初始逻辑删除任务确定为逻辑删除任务,并判断待处理任务队列的队列状态是否符合任务执行条件;所述任务执行条件包括所述待处理任务队列不为空且所述待处理任务队列中存在处于预设状态的目标任务且所述目标任务的任务建立时间大于目标时间阈值;
如果所述队列状态符合任务执行条件,则从所述待处理任务队列中获取所述逻辑删除任务;
确定所述逻辑删除任务中的逻辑删除元数据对应的待删除目录,并获取与所述待删除目录对应的第二目录信息;所述第二目录信息包括目标文件数;
如果所述目标文件数小于第一阈值,则将所述逻辑删除任务对应的存储数据统计信息推送至物理删除队列,以生成物理删除任务;
如果所述目标文件数大于等于所述第一阈值,则递归计算所述待删除目录下子目录元数据对应的子目录文件数;
如果所述子目录文件数小于所述第一阈值,则将所述子目录元数据对应的存储数据统计信息推送至所述物理删除队列,以生成所述物理删除任务;
根据所述逻辑删除元数据与所述子目录元数据确定剩余删除元数据;
如果所述剩余删除元数据对应的剩余文件数小于所述第一阈值,则将所述剩余删除元数据对应的存储数据统计信息推送至所述物理删除队列,以生成所述物理删除任务;
获取分布式文件存储系统的状态参数,并根据所述状态参数对所述物理删除任务进行物理删除处理。
2.根据权利要求1所述的数据生命周期管理方法,其特征在于,在所述从集群数据库获取待处理元数据之前,所述方法还包括:
向元数据服务器发送元数据描述信息获取请求;
接收并解析所述元数据服务器发送的所述初始元数据的元数据描述信息,并根据所述元数据描述信息重建所述初始元数据以生成所述待处理元数据;
将与所述待处理元数据对应的目录统计信息确定为第一目录信息,并将所述待处理元数据和所述第一目录信息存储于所述集群数据库。
3.根据权利要求2所述的数据生命周期管理方法,其特征在于,在所述将所述待处理元数据和所述第一目录信息存储于所述集群数据库之后,所述方法还包括:
每隔第一预设时间从所述元数据服务器获取数据操作日志;
根据所述数据操作日志确定数据操作记录;其中,所述数据操作记录包括与所述待处理元数据对应的存储数据相关的数据操作;
根据所述数据操作记录更新所述集群数据库中的所述待处理元数据。
4.根据权利要求1所述的数据生命周期管理方法,其特征在于,所述确定所述待处理元数据的生命周期状态,包括:
每隔第二预设时间执行针对所述待处理元数据的数据扫描操作,以确定所述待处理元数据中的待处理数据表和待处理数据分区;
获取所述待处理数据表的数据表生命标识以及所述待处理数据分区的分区生命标识;
根据所述数据表生命标识确定所述待处理数据表的生命周期状态,并根据所述分区生命标识确定所述待处理数据分区的生命周期状态。
5.根据权利要求4所述的数据生命周期管理方法,其特征在于,所述初始待删除元数据包括初始待删除数据表和初始待删除分区,所述从所述待处理元数据中确定生命周期状态处于目标生命状态的初始待删除元数据,包括:
如果所述数据表生命标识处于所述目标生命状态,则将所述待处理数据表确定为所述初始待删除数据表;
如果所述分区生命标识处于所述目标生命状态,则将所述待处理数据分区确定为所述初始待删除分区。
6.根据权利要求5所述的数据生命周期管理方法,其特征在于,所述对所述初始待删除元数据进行封装处理以生成初始逻辑删除任务,并对所述初始逻辑删除任务进行逻辑删除处理,包括:
将所述初始待删除数据表和所述初始待删除分区分别进行所述封装处理并推送至待处理任务队列,以生成所述初始逻辑删除任务;所述初始逻辑删除任务包括逻辑删除数据表和逻辑删除分区;
确定所述逻辑删除数据表的初始表目录,并将所述初始表目录中的信息转移至移除表目录;
确定所述逻辑删除分区的初始分区目录,并将所述初始分区目录中的信息转移至移除分区目录;
确定并存储所述初始表目录与所述移除表目录之间的表目录映射关系,并删除所述初始表目录;
确定并存储所述初始分区目录与所述移除分区目录之间的分区目录映射关系,并删除所述初始分区目录。
7.根据权利要求1所述的数据生命周期管理方法,其特征在于,所述物理删除任务包括目标删除任务,所述根据所述状态参数对所述物理删除任务进行物理删除处理,包括:
获取所述分布式文件存储系统的待删除数据块数量和端口排队时间;
如果所述待删除数据块数量小于第二阈值且所述端口排队时间小于第三阈值,则从物理删除队列的队首获取目标删除任务;
向所述分布式文件存储系统发送针对所述目标删除任务的删除请求,以由所述分布式文件存储系统对所述目标删除任务执行物理删除操作。
8.根据权利要求1所述的数据生命周期管理方法,其特征在于,所述方法还包括:
确定待恢复数据;
获取所述待恢复数据的初始存储目录以及所述待恢复数据的移除存储目录;
将所述待恢复数据从所述移除存储目录移动至所述初始存储目录,以恢复所述待恢复数据;
获取所述待恢复数据的数据建立语句,以根据所述待恢复数据的数据建立语句重建所述待恢复数据对应的待恢复数据表和待恢复数据分区。
9.一种数据生命周期管理装置,其特征在于,应用于生命周期管理服务器,包括:
状态确定模块,用于从集群数据库获取待处理元数据,并确定所述待处理元数据的生命周期状态;其中,所述待处理元数据基于初始元数据生成;
元数据确定模块,用于从所述待处理元数据中确定生命周期状态处于目标生命状态的初始待删除元数据;
第一删除模块,用于对所述初始待删除元数据进行封装处理以生成初始逻辑删除任务,并对所述初始逻辑删除任务进行逻辑删除处理;
任务生成模块,用于将经过所述逻辑删除处理的初始逻辑删除任务确定为逻辑删除任务,并包括:
执行条件判断单元,用于判断待处理任务队列的队列状态是否符合任务执行条件;所述任务执行条件包括所述待处理任务队列不为空且所述待处理任务队列中存在处于预设状态的目标任务且所述目标任务的任务建立时间大于目标时间阈值;
逻辑任务获取单元,用于如果所述队列状态符合任务执行条件,则从所述待处理任务队列中获取所述逻辑删除任务;
物理任务生成单元,用于确定所述逻辑删除任务中的逻辑删除元数据对应的待删除目录,并获取与所述待删除目录对应的第二目录信息;所述第二目录信息包括目标文件数;如果所述目标文件数小于第一阈值,则将所述逻辑删除任务对应的存储数据统计信息推送至物理删除队列,以生成物理删除任务;如果所述目标文件数大于等于所述第一阈值,则递归计算所述待删除目录下子目录元数据对应的子目录文件数;如果所述子目录文件数小于所述第一阈值,则将所述子目录元数据对应的存储数据统计信息推送至所述物理删除队列,以生成所述物理删除任务;根据所述逻辑删除元数据与所述子目录元数据确定剩余删除元数据;如果所述剩余删除元数据对应的剩余文件数小于所述第一阈值,则将所述剩余删除元数据对应的存储数据统计信息推送至所述物理删除队列,以生成所述物理删除任务;
第二删除模块,用于获取分布式文件存储系统的状态参数,并根据所述状态参数对所述物理删除任务进行物理删除处理。
10.根据权利要求9所述的数据生命周期管理装置,其特征在于,所述数据生命周期管理装置还包括元数据处理模块,所述元数据处理模块包括:
信息获取请求发送单元,用于向元数据服务器发送元数据描述信息获取请求;
元数据重建单元,用于接收并解析所述元数据服务器发送的所述初始元数据的元数据描述信息,并根据所述元数据描述信息重建所述初始元数据以生成所述待处理元数据;
元数据存储单元,用于将与所述待处理元数据对应的目录统计信息确定为第一目录信息,并将所述待处理元数据和所述第一目录信息存储于所述集群数据库。
11.根据权利要求10所述的数据生命周期管理装置,其特征在于,所述元数据处理模块还包括元数据更新单元,所述元数据更新单元被配置为:
每隔第一预设时间从所述元数据服务器获取数据操作日志;
根据所述数据操作日志确定数据操作记录;其中,所述数据操作记录包括与所述待处理元数据对应的存储数据相关的数据操作;
根据所述数据操作记录更新所述集群数据库中的所述待处理元数据。
12.根据权利要求9所述的数据生命周期管理装置,其特征在于,所述状态确定模块包括:
数据扫描单元,用于每隔第二预设时间执行针对所述待处理元数据的数据扫描操作,以确定所述待处理元数据中的待处理数据表和待处理数据分区;
生命标识获取单元,用于获取所述待处理数据表的数据表生命标识以及所述待处理数据分区的分区生命标识;
生命周期状态确定单元,用于根据所述数据表生命标识确定所述待处理数据表的生命周期状态,并根据所述分区生命标识确定所述待处理数据分区的生命周期状态。
13.根据权利要求12所述的数据生命周期管理装置,其特征在于,所述元数据确定模块包括:
数据表确定单元,用于如果所述数据表生命标识处于所述目标生命状态,则将所述待处理数据表确定为初始待删除数据表;
分区确定单元,用于如果所述分区生命标识处于所述目标生命状态,则将所述待处理数据分区确定为初始待删除分区。
14.根据权利要求13所述的数据生命周期管理装置,其特征在于,所述第一删除模块被配置为:
将所述初始待删除数据表和所述初始待删除分区分别进行所述封装处理并推送至待处理任务队列,以生成所述初始逻辑删除任务;所述初始逻辑删除任务包括逻辑删除数据表和逻辑删除分区;
确定所述逻辑删除数据表的初始表目录,并将所述初始表目录中的信息转移至移除表目录;
确定所述逻辑删除分区的初始分区目录,并将所述初始分区目录中的信息转移至移除分区目录;
确定并存储所述初始表目录与所述移除表目录之间的表目录映射关系,并删除所述初始表目录;
确定并存储所述初始分区目录与所述移除分区目录之间的分区目录映射关系,并删除所述初始分区目录。
15.根据权利要求9所述的数据生命周期管理装置,其特征在于,所述第二删除模块被配置为:
获取所述分布式文件存储系统的待删除数据块数量和端口排队时间;
如果所述待删除数据块数量小于第二阈值且所述端口排队时间小于第三阈值,则从物理删除队列的队首获取目标删除任务;
向所述分布式文件存储系统发送针对所述目标删除任务的删除请求,以由所述分布式文件存储系统对所述目标删除任务执行物理删除操作。
16.根据权利要求9所述的数据生命周期管理装置,其特征在于,所述数据生命周期管理装置还包括数据恢复模块,所述数据恢复模块被配置为:
确定待恢复数据;
获取所述待恢复数据的初始存储目录以及所述待恢复数据的移除存储目录;
将所述待恢复数据从所述移除存储目录移动至所述初始存储目录,以恢复所述待恢复数据;
获取所述待恢复数据的数据建立语句,以根据所述待恢复数据的数据建立语句重建所述待恢复数据对应的待恢复数据表和待恢复数据分区。
17.一种电子设备,其特征在于,包括:
处理器;以及
存储器,所述存储器上存储有计算机可读指令,所述计算机可读指令被所述处理器执行时实现如权利要求1至8中任意一项所述的数据生命周期管理方法。
18.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至8中任意一项所述的数据生命周期管理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011268773.XA CN112269781B (zh) | 2020-11-13 | 2020-11-13 | 数据生命周期管理方法、装置、介质及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011268773.XA CN112269781B (zh) | 2020-11-13 | 2020-11-13 | 数据生命周期管理方法、装置、介质及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112269781A CN112269781A (zh) | 2021-01-26 |
CN112269781B true CN112269781B (zh) | 2023-07-25 |
Family
ID=74339134
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011268773.XA Active CN112269781B (zh) | 2020-11-13 | 2020-11-13 | 数据生命周期管理方法、装置、介质及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112269781B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112988722A (zh) * | 2021-02-05 | 2021-06-18 | 新华三大数据技术有限公司 | 一种Hive分区表数据清理方法、装置及存储介质 |
CN113051221B (zh) * | 2021-03-31 | 2023-06-30 | 网易(杭州)网络有限公司 | 数据存储方法、装置、介质、设备及分布式文件系统 |
CN113157414B (zh) * | 2021-04-19 | 2023-11-21 | 北京星辰天合科技股份有限公司 | 任务处理方法、装置、非易失性存储介质及处理器 |
CN113434492A (zh) * | 2021-06-21 | 2021-09-24 | 青岛海尔科技有限公司 | 数据的检测方法、装置、存储介质和电子装置 |
CN113867628B (zh) * | 2021-09-02 | 2024-01-19 | 网易(杭州)网络有限公司 | 数据删除方法、装置、存储介质和计算设备 |
CN115687333B (zh) * | 2022-09-27 | 2024-03-12 | 西部科学城智能网联汽车创新中心(重庆)有限公司 | 一种v2x大数据生命周期管理方法及装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07319742A (ja) * | 1994-05-24 | 1995-12-08 | Nec Corp | 論理削除データ物理削除方式 |
CN103778148A (zh) * | 2012-10-23 | 2014-05-07 | 阿里巴巴集团控股有限公司 | Hadoop分布式文件系统数据文件的生命周期管理方法和设备 |
CN105279261A (zh) * | 2015-10-23 | 2016-01-27 | 北京京东尚科信息技术有限公司 | 动态可扩展数据库归档方法和系统 |
CN109815219A (zh) * | 2019-02-18 | 2019-05-28 | 国家计算机网络与信息安全管理中心 | 支持多数据库引擎的数据生命周期管理的实现方法 |
CN111459900A (zh) * | 2020-04-22 | 2020-07-28 | 广州虎牙科技有限公司 | 大数据生命周期设置方法、装置、存储介质及服务器 |
-
2020
- 2020-11-13 CN CN202011268773.XA patent/CN112269781B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07319742A (ja) * | 1994-05-24 | 1995-12-08 | Nec Corp | 論理削除データ物理削除方式 |
CN103778148A (zh) * | 2012-10-23 | 2014-05-07 | 阿里巴巴集团控股有限公司 | Hadoop分布式文件系统数据文件的生命周期管理方法和设备 |
CN105279261A (zh) * | 2015-10-23 | 2016-01-27 | 北京京东尚科信息技术有限公司 | 动态可扩展数据库归档方法和系统 |
CN109815219A (zh) * | 2019-02-18 | 2019-05-28 | 国家计算机网络与信息安全管理中心 | 支持多数据库引擎的数据生命周期管理的实现方法 |
CN111459900A (zh) * | 2020-04-22 | 2020-07-28 | 广州虎牙科技有限公司 | 大数据生命周期设置方法、装置、存储介质及服务器 |
Also Published As
Publication number | Publication date |
---|---|
CN112269781A (zh) | 2021-01-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112269781B (zh) | 数据生命周期管理方法、装置、介质及电子设备 | |
CN107169083B (zh) | 公安卡口海量车辆数据存储与检索方法及装置、电子设备 | |
CA2929776C (en) | Client-configurable security options for data streams | |
US9740582B2 (en) | System and method of failover recovery | |
CA2930101C (en) | Partition-based data stream processing framework | |
CA2930026C (en) | Data stream ingestion and persistence techniques | |
EP3069274B1 (en) | Managed service for acquisition, storage and consumption of large-scale data streams | |
US11132350B2 (en) | Replicable differential store data structure | |
US10684990B2 (en) | Reconstructing distributed cached data for retrieval | |
US11461347B1 (en) | Adaptive querying of time-series data over tiered storage | |
KR20180021679A (ko) | 일관된 데이터베이스 스냅샷들을 이용한 분산 데이터베이스에서의 백업 및 복원 | |
Das et al. | All aboard the Databus! Linkedin's scalable consistent change data capture platform | |
US11599514B1 (en) | Transactional version sets | |
US11977532B2 (en) | Log record identification using aggregated log indexes | |
JPWO2011108695A1 (ja) | 並列データ処理システム、並列データ処理方法及びプログラム | |
US11709809B1 (en) | Tree-based approach for transactionally consistent version sets | |
US11886422B1 (en) | Transactional protocol for snapshot isolation without synchronized clocks | |
US11941014B1 (en) | Versioned metadata management for a time-series database | |
Wadkar et al. | Hadoop concepts | |
Chen | Google big table | |
CN116975053A (zh) | 一种数据处理方法、装置、设备、介质及程序产品 | |
Fortino | Reengineering of a Big Data architecture for real-time ingestion and data analysis | |
CN114706832A (zh) | 一种数据重分布方法、装置、设备及存储介质 | |
CN118012577A (zh) | 任务调度方法和装置、计算设备、存储介质及程序产品 | |
Ran | Analysis of Optional Architecture for Big Data Processing |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |