本发明涉及数据管理,尤其涉及一种数据压缩管理方法、系统、设备和存储介质。
背景技术:
1、数据离线压缩主要是合并hudi avro类型数据日志文件生成parquet数据基础文件,从而提升数据查询效率,目前hudi数据文件的压缩主要是通过表级别压缩任务独立部署调度执行,依赖于调度系统以及任务平台多个模块共同管理。
2、然而,目前hudi数据文件的压缩方法存在以下几个问题:压缩任务需要人工维护,对于新增的表场景无法支持自动感知并及时构建压缩任务,导致数据文件过大,查询缓慢,这无疑增加了人工维护成本,使得整个流程显得繁琐,且延迟压缩影响数据文件过大,也直接影响数据查询效率;当前压缩任务的调度方式采取全量策略,这导致出现了大量的无效任务,从而造成了不必要的资源浪费,使得系统的运行效率大打折扣;对于压缩任务的状态,目前系统无法提供精细化的失败情况区分,这使得我们在处理问题时难以针对性地定位并解决,增加了解决问题的难度;由于任务平台的模块涉及的内容较多,任务调度主要依赖于脚本及接口请求的方式,这使得在需要进行变更时,成本会相对较高,不利于系统的灵活调整与优化。
技术实现思路
1、有鉴于此,本技术的目的在于提供一种数据压缩管理方法、系统、设备和存储介质,帮助提高hudi数据表离线压缩任务的自动化管理水平,降低人工干预的需求,并且使hudi离线压缩任务的管理更加高效和可靠。
2、第一方面,本技术实施例提供一种数据压缩管理方法,包括:
3、扫描初始hudi数据表,并生成每个所述初始hudi数据表的压缩计划;
4、检测具有压缩计划的候选hudi数据表,并过滤得到具有有效压缩计划的目标hudi数据表;
5、基于所述目标hudi数据表构建压缩任务,将所述压缩任务提交到缓存队列中,以检测所有所述目标hudi数据表是否重名,并保留具有所述重名的一个目标hudi数据表,得到筛选后的目标hudi数据表;
6、将所述筛选后的目标hudi数据表对应的压缩任务提交到任务提交控制器中,以通过所述任务提交控制器将所述对应的压缩任务提交到任务压缩容器内,从而运行所述筛选后的目标hudi数据表对应的压缩任务。
7、结合第一方面,本技术实施例提供了第一方面的第一种可能的实施方式,其中,所述通过所述任务提交控制器将所述对应的压缩任务提交到任务压缩容器内,之前还包括:
8、通过任务并发控制器并发管理多个所述压缩任务,并通过所述任务提交控制器检测待运行压缩任务的任务压缩容器的运行环境是否准备完成;
9、若所述任务压缩容器的运行环境异常,则创建一个新的任务压缩容器,用以运行所述待运行压缩任务。
10、结合第一方面,本技术实施例提供了第一方面的第二种可能的实施方式,其中,所述通过所述任务提交控制器将所述对应的压缩任务提交到任务压缩容器内,之后还包括:
11、在所述任务压缩容器中配置任务线程池,并根据所述任务线程池的核心线程数控制所述压缩任务的并行运行数量;
12、通过任务监听器监测所述压缩任务的运行状态,并将所述压缩任务的运行状态进行可视化展示;
13、当监测到所述压缩任务运行失败时,触发告警,并将运行失败的所述压缩任务调度到所述任务并发控制器中。
14、结合第一方面,本技术实施例提供了第一方面的第三种可能的实施方式,其中,所述检测具有压缩计划的候选hudi数据表,包括:
15、将所述具有压缩计划的候选hudi数据表进行缓存,并确定候选hudi数据表的提交批次;
16、通过编程模型异步触发提交的单个批次的所述候选hudi数据表进行压缩计划检测,并对提交的多个批次的所述候选hudi数据表并行进行压缩计划检测。
17、结合第一方面,本技术实施例提供了第一方面的第四种可能的实施方式,其中,所述过滤得到具有有效压缩计划的目标hudi数据表,包括:
18、根据过滤规则过滤得到所述具有有效压缩计划的候选hudi数据表,并删除具有无效压缩计划的所述候选hudi数据表;
19、其中,所述过滤规则包括:
20、所述压缩计划的标识不为空,且所述压缩计划的时间戳不在回滚请求的时间戳范围内。
21、结合第一方面,本技术实施例提供了第一方面的第五种可能的实施方式,其中,所述缓存队列对应的队列线程池中自定义添加所述目标hudi数据表的重名检测逻辑和过滤逻辑,所述检测所有所述目标hudi数据表是否重名,并保留具有所述重名的一个目标hudi数据表,包括:
22、调用所述重名检测逻辑和所述过滤逻辑,以检测并过滤所述重名的目标hudi数据表,并只保留一个所述重名的目标hudi数据表。
23、结合第一方面,本技术实施例提供了第一方面的第六种可能的实施方式,其中,所述筛选后的目标hudi数据表对应的压缩任务提交到任务提交控制器中,之后还包括:
24、触发清理所述队列线程池的压缩任务缓存操作,以将已完成提交的所述压缩任务删除,而未完成提交的所述压缩任务等待提交。
25、第二方面,本技术实施例还提供一种数据压缩管理系统,包括:
26、压缩任务协调模块,用于扫描初始hudi数据表,并生成每个所述初始hudi数据表的压缩计划;
27、压缩任务协调模块,还用于检测具有压缩计划的候选hudi数据表,并过滤得到具有有效压缩计划的目标hudi数据表;
28、任务管理模块,用于基于所述目标hudi数据表构建压缩任务,将所述压缩任务提交到缓存队列中,以检测所有所述目标hudi数据表是否重名,并保留具有所述重名的一个目标hudi数据表,得到筛选后的目标hudi数据表;
29、任务管理模块,还用于将所述筛选后的目标hudi数据表对应的压缩任务提交到任务提交控制器中,以通过所述任务提交控制器将所述对应的压缩任务提交到任务压缩容器内,从而运行所述筛选后的目标hudi数据表对应的压缩任务。
30、第三方面,本技术实施例还提供一种计算机设备,包括存储器以及处理器,所述存储器存储有计算机程序,所述计算机程序在所述处理器上运行时执行所述的数据压缩管理方法。
31、第四方面,本技术实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序在处理器上运行时执行所述的数据压缩管理方法。
32、本技术的实施例具有如下有益效果:
33、本技术实施例的一种数据压缩管理方法、系统、设备和存储介质,该数据压缩管理方法包括:扫描hudi数据表,并生成每个所述hudi数据表的压缩计划;检测具有压缩计划的候选hudi数据表,并过滤得到具有有效压缩计划的目标hudi数据表;基于所述目标hudi数据表构建压缩任务,将所述压缩任务提交到缓存队列中,以检测所有所述目标hudi数据表是否重名,并保留具有所述重名的一个目标hudi数据表,得到筛选后的hudi数据表;将所述筛选后的hudi数据表对应的压缩任务提交到任务提交控制器中,以通过所述任务提交控制器将所述对应的压缩任务提交到任务压缩容器内,以运行所述筛选后的hudi数据表对应的压缩任务。
34、基于上述方案,本技术所提供的数据压缩管理方法能够自动扫描新增的hudi数据表,并自动触发离线压缩任务的构建,确保新hudi数据表能够及时得到压缩处理;该数据压缩管理方法支持过滤未生成压缩计划的hudi数据表,资源利用最大化并且降低任务失败率,并且支持压缩任务运行状态可视化,及时发现并解决潜在问题,确保压缩稳定性;该数据压缩管理方法实现收敛压缩任务,将压缩任务集成到协调器统一管理,全流程自动化构建并自动调度执行,降低了模块架构复杂度,降低维护成本。
1.一种数据压缩管理方法,其特征在于,包括:
2.根据权利要求1所述的数据压缩管理方法,其特征在于,所述通过所述任务提交控制器将所述对应的压缩任务提交到任务压缩容器内,之前还包括:
3.根据权利要求2所述的数据压缩管理方法,其特征在于,所述通过所述任务提交控制器将所述对应的压缩任务提交到任务压缩容器内,之后还包括:
4.根据权利要求1所述的数据压缩管理方法,其特征在于,所述检测具有压缩计划的候选hudi数据表,包括:
5.根据权利要求1或4所述的数据压缩管理方法,其特征在于,所述过滤得到具有有效压缩计划的目标hudi数据表,包括:
6.根据权利要求1所述的数据压缩管理方法,其特征在于,所述缓存队列对应的队列线程池中自定义添加所述目标hudi数据表的重名检测逻辑和过滤逻辑,所述检测所有所述目标hudi数据表是否重名,并保留具有所述重名的一个目标hudi数据表,包括:
7.根据权利要求6所述的数据压缩管理方法,其特征在于,所述筛选后的目标hudi数据表对应的压缩任务提交到任务提交控制器中,之后还包括:
8.一种数据压缩管理系统,其特征在于,包括:
9.一种计算机设备,其特征在于,包括存储器以及处理器,所述存储器存储有计算机程序,所述计算机程序在所述处理器上运行时执行如权利要求1-7任一项所述的数据压缩管理方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序在处理器上运行时执行如权利要求1-7任一项所述的数据压缩管理方法。