一种基于湖仓一体的存储自动优化实现方法与流程

文档序号:37282071发布日期:2024-03-12 21:22阅读:16来源:国知局
一种基于湖仓一体的存储自动优化实现方法与流程

本发明涉及it应用,具体地说,涉及一种基于湖仓一体的存储自动优化实现方法。


背景技术:

1、随着数据规模的爆炸性增长,数据仓库越来越无法容纳海量的数据,从技术角度讲数据仓库的计算能力与数据湖的存储能力相结合,构成湖仓一体的解决方案已经成为行业共识。湖仓一体的解决方案,以对象存储作为底层的数据存储,总规模可达数百pb,日增量可达1pb。在这样的数据规模下,优化数据存储布局,提高数据存储的效率,可以获得极大的性能和成本方面的收益。

2、现有的湖仓一体框架,例如开源的iceberg、hudi、delta lake等,其提供了存储优化的接口,但存储的优化依然需要框架的使用者来运行优化。其优化接口实现总结起来如下:采用周期性的优化方法,按照设定的文件大小合并数据文件,合并过程采用全量重写的方式。

3、但是现有技术中的优化方法存在较多缺陷,如:

4、1.未考虑优化必要性和优化时机:现有解决方案采用周期性优化的手段,是一种盲目性的优化手段,并没有考虑优化是否有必要,可能导致优化并没有提升查询效率;

5、2.未考虑优化收益边界:现有的优化手段采用完整优化,是一种一刀切的优化方法,并没有考虑优化的收益和成本之间的平衡;在当优化的收益递减时,根据设置的阈值进行优化,不要进行一刀切的设定;例如,如果数据分区(partition)进行完全合并的收益大于成本时,可以允许数据分区(partition)中有若干个小文件,不一定必须将所有的文件合并为一个大文件;

6、3.数据移动成本高(io成本高):在优化过程中,所有涉及的数据都进行合并优化,因为未考虑优化收益边界,所以全量重写的方式会消耗大量的io。

7、因此,优化的核心在于,最小化数据移动成本,如:只对必要的文件进行合并替换,避免将所有的数据文件进行重写,数据移动需要消耗磁盘的io、cpu等计算资源,最小化数据移动成本。鉴于此,为了解决上述问题,我们提出了一种基于湖仓一体的存储自动优化实现方法。


技术实现思路

1、本发明的目的在于提供一种基于湖仓一体的存储自动优化实现方法,以解决上述背景技术中提出的问题。

2、为实现上述技术问题的解决,本发明的目的之一在于,提供了一种基于湖仓一体的存储自动优化实现方法,包括如下步骤:

3、s1、设计湖仓一体自动优化系统的架构:在设计上将湖仓一体自动优化系统解耦为优化决策子系统和优化执行子系统两个子系统;其中,优化决策子系统作为整个架构中的优化决策者,优化执行子系统负责执行具体的优化动作;

4、s2、改进湖仓一体框架:改进元数据访问接口,支持将元数据的增量变化一并接入;增加湖仓一体存储优化子系统,实现消息订阅机制;

5、s3、优化决策算法:引入数据分区混乱度算法,以平衡自动优化的时效性、成本收益,实现最小化成本的决策;

6、s4、设定自动优化执行流程;具体包括如下步骤:

7、s4.1、首先通过第三方计算引擎或者工具向湖仓一体框架写入数据;

8、s4.2、湖仓一体框架接口中通知湖仓一体自动优化系统,数据集发生变更,并将变更事件通知出去;

9、s4.3、优化决策子系统收到数据集变更事件,获取对应的元数据,根据优化决策算法,如果需要进行优化,则生成优化执行计划,否则不生成优化执行计划,等待新的数据写入、删除、更新;

10、s4.4、优化执行子系统根据优化执行计划,采用分布式、容错的方式执行计划;使用湖仓一体框架提供的数据访问接口,从存储中获取待优化的数据文件;

11、s4.5、执行数据文件的优化,并通过湖仓一体框架的api写入到存储系统中,此时元数据会改变,并重新触发步骤s4.2。

12、作为本技术方案的进一步改进,所述步骤s1中,所述优化决策子系统在整个架构中是优化的决策者;当数据持续地写入时,由所述优化决策子系统持续监视数据和数据表的状态,决定是否优化、对哪些表进行优化以及什么时候进行优化,触发优化动作的执行,并协调不同数据表的优化顺序,达到最佳的资源利用效率;

13、所述优化决策子系统中的具体职责分为如下三步:

14、(1)监视:实时的监视数据仓库中数据入库情况,同时也负责监视用户对数据表的使用情况(即席查询等);

15、(2)定向:收集数据变化的表的调整参数;另外,根据数据或者访问的积压情况,调整表的资源分配或使用该表的人或者系统的数量;

16、(3)决策:根据收集的信息,决定对哪些表进行何种最佳的优化操作,优化操作的执行并不一定是即时生效的,要根据表和优化操作的优先级进行排队。

17、作为本技术方案的进一步改进,所述步骤s1中,所述优化执行子系统负责执行具体的优化动作(例如merge、排序、compaction等),所述优化执行子系统负责决策优化时机、优化的具体规划、触发执行哪些优化;

18、对于云端、超大规模的湖仓一体框架而言,其存储的数据量巨大、数据增量大,需要进行持续不断的自动优化;所述优化执行子系统需要考虑如下问题:

19、(1)优化本身消耗计算存储资源:自动优化本身也需要消耗cpu、内存、网路、磁盘等计算、存储资源,所以自动优化系统需要在有限的资源内执行计算优化;即自动优化执行子系统需要具备排队能力;

20、(2)数据在时间上不均衡:业务繁忙阶段,大量数据产生并写入到湖仓一体框架,增量数据大,业务空闲阶段则增量数据较少;

21、基于以上两点,优化执行子系统需具备排队能力,优化任务时需要具备分布式计算和容错能力。

22、作为本技术方案的进一步改进,所述步骤s2中,改进湖仓一体框架具体包括:

23、目前的湖仓一体的框架仅支持数据、元数据整体的访问接口,但并不支持将元数据的增量变化,可以采用如下改进达到该目标:

24、改进一、改进元数据访问接口,在写入、更新、删除时统计本次操作时,同时将变化行为为数据集变更事件;

25、改进二、实现消息订阅机制,向订阅方通知外部系统数据集发生变更,即增设湖仓一体存储优化子系统,从而触发数据自动优化流程。

26、作为本技术方案的进一步改进,所述步骤s3中,所述优化决策算法采用事件驱动的方式,即数据文件的合并(merge、compact等)是由数据表中数据变动——增、删、改来驱动;采用事件驱动的模式,可以及时的触发优化,尽可能降低合并触发的延迟,避免周期性优化的缺点;

27、同时为了避免优化频率过高,消耗过多的计算资源,该算法中必须要考虑优化边界,根据全量数据分区扫描的结果,自动优化系统可以充分的了解所有数据分区的状态,平衡优化收益和成本,计算出哪些优化操作是必要的(即收益>成本),只进行必要的优化,降低io成本;

28、基于事件驱动的问题在于,如果每次数据变化都扫描对应数据分区,成本就会非常高;所以如果能够根据数据的变化,滚动地计算出分区中“数据混乱度”,就可以避免无效的数据分区扫描;因此引入数据分区混乱度算法。

29、作为本技术方案的进一步改进,所述步骤s3中,所述数据分区混乱度算法中,数据分区混乱度(partition entropy,简称pe),用于测量数据分区是否需要达到优化的条件了,来降低优化的成本;数据分区混乱度使用各个分区的统计数据,快照后采用滚动模式来计算(即进行增量计算,避免全量扫描);

30、pe中针对计算文件大小混乱度的统计叫做fse(file size entropy),单个数据分区的fse为该分区的文件大小的均方误差(mse);

31、均方误差的计算公式如下:

32、

33、式中,各个参数含义如下:n为数据分区中的文件数量;target表示目标文件大小,即理想状态下每个文件的大小;actual=min(实际文件大小,目标文件大小),表示取实际文件和目标文件中的最小值;

34、扫描完一个数据分区之后,文件数量和大小就明确了,使用上述公式,就可以很容易计算出均方误差mse,将均方误差保存到redis中以备使用;

35、在扫描快照阶段,我们可以获得一次提交(commit)中包含的文件和其元数据(例如大小、记录数量等等,同时也会包含增加、删除、修改的数据内容),使用前边计算出的均方误差mse和数据分区的变化情况,计算出数据分区新的均方误差mse',公式如下:

36、

37、mse'=(mse*n+se)/(n+m)

38、式中,各个参数含义如下:n为前一次计算中数据分区中的文件数量;target表示目标文件大小,即理想状态下每个文件的大小;actual=min(实际文件大小,target),表示取实际文件和目标文件中的最小值;m为在本次提交中(快照)中包含的文件数量;se表示本次提交中target与actual的平方和,mse表示上一次计算中保存的均方误差;

39、计算出均方误差之后,还需要为每个数据分区设定一个阈值t,只有符合条件mse≥t2超过阈值才会进行优化操作,否则不进行优化;

40、通过如上方式的计算,通过增量计算和快照扫描,可以尽量避免数据分区全量扫描,也能降低实际的文件merge优化次数。

41、作为本技术方案的进一步改进,所述步骤s3中,优化决策算法中还包括最小化移动成本,具体为:

42、当对一个数据分区进行处理时,在符合优化目标的前提下,要找到成本最小优化方法来降低数据文件大小的混乱度,减少小文件的数量;

43、基于现有的两种算法,knuth/plass line breaking algorithm和first fitdecreasing bin packing algorithm,可实现不同场景下的最佳优化效果;其中:

44、knuth/plass line breaking algorithm算法适用于数据排序比较重要的场景,其算法复杂度为o(n^2);

45、first fit decreasing bin packing algorithm算法是原始ffd算法的变体,在不考虑数据排序的情况下,其算法复杂度为o(nlogn);

46、使用上述两个算法,可以在最小的文件移动成本下,达到平滑的优化文件大小。

47、本发明的目的之二在于,提供了一种存储自动优化平台装置,包括处理器、存储器以及存储在存储器中并在处理器上运行的计算机程序,处理器用于执行计算机程序时实现上述的基于湖仓一体的存储自动优化实现方法的步骤。

48、本发明的目的之三在于,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述的基于湖仓一体的存储自动优化实现方法的步骤。

49、与现有技术相比,本发明的有益效果:

50、1.该基于湖仓一体的存储自动优化实现方法中,首先通过改进湖仓一体组件的接口和实现机制,使之生成元数据变更事件,支持订阅数据集变更事件,从而能够让外部系统感知到数据集的变化;

51、2.该基于湖仓一体的存储自动优化实现方法中,其次提出湖仓一体的数据分区混乱度算法,平衡了自动优化的时效性、成本收益、最小化成本的决策算法,在数据规模越大的情况下,该算法的效果越好;

52、3.该基于湖仓一体的存储自动优化实现方法中,设计湖仓一体自动优化系统,将该系统与湖仓一体框架紧密配合,使优化系统可以对接湖仓一体框架,将优化计划分布式的方式执行,并且支持多租户、基于优先级调度、排队等特性;

53、4.该基于湖仓一体的存储自动优化实现方法中,相比现有的湖仓一体框架,本方案综合考虑了优化必要性和优化时机、优化收益边界、数据移动成本高(io成本高),是一种更佳的优化方法。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1