数据仓库技术业务的优化方法、装置及电子设备制造方法及图纸

技术编号:34422206 阅读:17 留言:0更新日期:2022-08-06 15:48
本申请提供了一种数据仓库技术业务的优化方法、装置及电子设备,该方法包括:接收用户下发的合并请求,所述合并请求用于指示合并至少两个ETL业务,所述至少两个ETL业务包括第一ETL业务和第二ETL业务;确定所述第一ETL业务和所述第二ETL业务的数据源是否相同,若相同,则基于预先配置的算子合并规则,合并所述第一ETL业务和所述第二ETL业务,得到目标ETL业务,其中,所述目标ETL业务为单次读数据及多次写数据的业务,所述目标ETL业务中的多次写数据包括所述第一ETL业务的写数据和所述第二ETL业务的写数据。该方法通过基于预先配置的算子合并规则,对各个相同数据源的ETL业务的算子进行合并,解决了ETL业务间计算逻辑的冗余问题。题。题。

【技术实现步骤摘要】
数据仓库技术业务的优化方法、装置及电子设备


[0001]本申请涉及计算机
,尤其涉及一种数据仓库技术业务的优化方法、装置及电子设备。

技术介绍

[0002]数据仓库技术(Extract

Transform

Load,ETL)业务可以用来描述数据从源端经过对数据的抽取(extract)、转换(transform)、加载(load)到目的端的过程;其目的可以是将企业中的分散、零乱、标准不统一的数据整合到一起,为企业的决策提供分析依据。其中,源端可以为业务系统数据库、分布式文件系统、以及其他数仓等,目的端可以为目标系统数据库、目标文件系统、以及其他目标数仓等。在ETL业务中输入到目的端的结果可以包括业务指标、统计数据、一致性数据等。
[0003]目前,随着通信技术的快速发展,用户流量、5G业务等在数量上得到了爆发式增长。但在运营商大数据处理中,ETL业务系统的定制业务逻辑往往并不是最佳的,其各个ETL业务之间的计算逻辑常常存在大量冗余,这就导致ETL业务占用的计算资源、输入输出(input&output,IO)资源、存储资源等随之激增,进而导致大量资源的浪费。
[0004]因此,如何解决ETL业务间计算逻辑的冗余问题,是目前亟需解决的技术问题。

技术实现思路

[0005]本申请实施例提供了一种数据仓库技术业务的优化方法、装置及电子设备,通过基于预先配置的算子合并规则,对各个相同数据源的ETL业务的算子进行合并,解决了ETL业务间计算逻辑的冗余问题。
[0006]第一方面,本申请实施例提供了一种数据仓库技术业务的优化方法,该方法包括:接收用户下发的合并请求,合并请求用于指示合并至少两个ETL业务,至少两个ETL业务包括第一ETL业务和第二ETL业务;确定第一ETL业务和第二ETL业务的数据源是否相同,若相同,则基于预先配置的算子合并规则,合并第一ETL业务和第二ETL业务,得到目标ETL业务,其中,目标ETL业务为单次读数据及多次写数据的业务,目标ETL业务中的多次写数据包括第一ETL业务的写数据和第二ETL业务的写数据。
[0007]由此,在多个ETL业务的数据源相同时,将多个ETL业务合并成一个单次读数据多次写数据的ETL业务,减少了合并前多个ETL业务的计算逻辑冗余、读写冗余等,解决了ETL业务间计算逻辑的冗余问题。
[0008]在一种可能的实现方式中,基于预先配置的算子合并规则,合并第一ETL业务和第二ETL业务,包括:确定第一ETL业务中各个算子的算子深度,算子深度用于表征第一算子与第一ETL业务中第一读算子之间的间隔,第一读算子用于读取数据,各个算子包括第一算子,第一算子包括第一读算子;依据算子深度的大小次序,由小到大依次基于算子合并规则,合并第一ETL业务中的第一算子和第二ETL业务中的第二算子,得到目标算子,第一算子和第二算子的算子深度相同。
[0009]在一种可能的实现方式中,还包括:在目标算子包括公共算子时,基于算子合并规则,合并第一ETL业务中的第三算子和第二ETL业务中的第四算子,第三算子与第一算子相邻,第四算子与第二算子相邻,其中,公共算子为在目标ETL业务中第一ETL业务和第二ETL业务共同对应的算子。
[0010]在一种可能的实现方式中,还包括:在目标算子包括公共算子、第一分支算子和第二分支算子时,基于预先配置的算子交换规则,交换第一目标算子和第二目标算子的次序,其中,公共算子为在目标ETL业务中第一ETL业务和第二ETL业务共同对应的算子,第一分支算子为在目标ETL业务中第一ETL业务对应的算子,第二分支算子为在目标ETL业务中第二ETL业务对应的算子,第一目标算子包括第一分支算子和第二分支算子中的至少一项,第二目标算子为第一ETL业务中的第三算子或第二ETL业务中的第四算子,第三算子与第一算子相邻,第四算子与第二算子相邻,第一目标算子和第二目标算子对应相同的ETL业务;在交换第一目标算子和第二目标算子的次序后,基于算子合并规则,合并第三算子和第四算子。
[0011]在一种可能的实现方式中,还包括:在第一算子和第二算子无法合并,或者第一目标算子和第二目标算子无法交换次序,或者目标操作次数大于预设次数阈值时,目标操作次数包括相同类型的算子的合并次数和交换次序次数中的至少一项,结束合并第一ETL业务和第二ETL业务;依据算子深度的大小,将已得到的目标算子与第一ETL业务中未合并的算子组合,得到第一分支ETL业务,以及将已得到的目标算子与第二ETL业务中未合并的算子组合,得到第二分支ETL业务,其中,目标ETL业务包括第一分支ETL业务和第二分支ETL业务。
[0012]在一种可能的实现方式中,还包括:在得到目标算子时,确定第三ETL业务的执行代价,第三ETL业务由已得到的目标算子与第一ETL业务或第二ETL业务中未合并的算子构成;根据第三ETL业务的执行代价,确定目标ETL业务。
[0013]在一种可能的实现方式中,根据第三ETL业务的执行代价,确定目标ETL业务,包括:在第三ETL业务为多个时,若第四ETL业务的执行代价小于或等于第一ETL业务与第二ETL业务的执行代价之和,则将第四ETL业务作为目标ETL业务,第四ETL业务为执行代价最小的第三ETL业务。
[0014]在一种可能的实现方式中,将第四ETL业务作为目标ETL业务,包括:在第四ETL业务中第三目标算子包含的公共算子后设置缓存算子,得到目标ETL业务,第三目标算子为第四ETL业务中算子深度最大的目标算子,缓存算子用于缓存公共算子输出的数据,以及向公共算子后的分支算子提供数据。
[0015]在一种可能的实现方式中,得到目标ETL业务之后,还包括:基于上沉下浮规则,对目标ETL业务进行修正,上沉下浮规则为:收缩算子向ETL业务的头部上浮,扩张算子向ETL业务的尾部下沉;其中,收缩算子为经过算子处理后数据量减少的算子,扩张算子为经过算子处理后数据量增大的算子。
[0016]在一种可能的实现方式中,目标ETL业务包括公共算子、缓存算子和至少两串分支算子,缓存算子位于公共算子和至少两串分支算子之间,缓存算子用于缓存公共算子输出的数据,以及向第一串分支算子提供数据;其中,公共算子包括一个读算子,至少两串分支算子包括第一串分支算子,第一串分支算子包括第一ETL业务的写算子,读算子用于读取数据,写算子用于写入数据。
[0017]第二方面,本申请实施例提供了一种数据仓库技术业务的优化装置,该装置包括:接收模块,用于接收用户下发的合并请求,合并请求用于指示合并至少两个ETL业务,至少两个ETL业务包括第一ETL业务和第二ETL业务;处理模块,用于确定第一ETL业务和第二ETL业务的数据源是否相同,若相同,则基于预先配置的算子合并规则,合并第一ETL业务和第二ETL业务,得到目标ETL业务,其中,目标ETL业务为单次读数据及多次写数据的业务,目标ETL业务中的多次写数据包括第一ETL业务的写数据和第本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据仓库技术ETL业务的优化方法,其特征在于,所述方法包括:接收用户下发的合并请求,所述合并请求用于指示合并至少两个ETL业务,所述至少两个ETL业务包括第一ETL业务和第二ETL业务;确定所述第一ETL业务和所述第二ETL业务的数据源是否相同,若相同,则基于预先配置的算子合并规则,合并所述第一ETL业务和所述第二ETL业务,得到目标ETL业务,其中,所述目标ETL业务为单次读数据及多次写数据的业务,所述目标ETL业务中的多次写数据包括所述第一ETL业务的写数据和所述第二ETL业务的写数据。2.根据权利要求1所述的方法,其特征在于,所述基于预先配置的算子合并规则,合并所述第一ETL业务和所述第二ETL业务,包括:确定所述第一ETL业务中各个算子的算子深度,所述算子深度用于表征第一算子与所述第一ETL业务中第一读算子之间的间隔,所述第一读算子用于读取数据,所述各个算子包括所述第一算子,所述第一算子包括所述第一读算子;依据所述算子深度的大小次序,由小到大依次基于所述算子合并规则,合并所述第一ETL业务中的第一算子和所述第二ETL业务中的第二算子,得到目标算子,所述第一算子和所述第二算子的算子深度相同。3.根据权利要求2所述的方法,其特征在于,还包括:在所述目标算子包括公共算子时,基于所述算子合并规则,合并所述第一ETL业务中的第三算子和所述第二ETL业务中的第四算子,所述第三算子与所述第一算子相邻,所述第四算子与所述第二算子相邻,其中,所述公共算子为在所述目标ETL业务中所述第一ETL业务和所述第二ETL业务共同对应的算子。4.根据权利要求2所述的方法,其特征在于,还包括:在所述目标算子包括公共算子、第一分支算子和第二分支算子时,基于预先配置的算子交换规则,交换第一目标算子和第二目标算子的次序,其中,所述公共算子为在所述目标ETL业务中所述第一ETL业务和所述第二ETL业务共同对应的算子,所述第一分支算子为在所述目标ETL业务中所述第一ETL业务对应的算子,所述第二分支算子为在所述目标ETL业务中所述第二ETL业务对应的算子,所述第一目标算子包括所述第一分支算子和所述第二分支算子中的至少一项,所述第二目标算子为所述第一ETL业务中的第三算子或所述第二ETL业务中的第四算子,所述第三算子与所述第一算子相邻,所述第四算子与所述第二算子相邻,所述第一目标算子和所述第二目标算子对应相同的ETL业务;在交换所述第一目标算子和所述第二目标算子的次序后,基于所述算子合并规则,合并所述第三算子和所述第四算子。5.根据权利要求2

4任一所述的方法,其特征在于,还包括:在所述第一算子和所述第二算子无法合并,或者所述第一目标算子和所述第二目标算子无法交换次序,或者目标操作次数大于预设次数阈值时,所述目标操作次数包括相同类型的算子的合并次数和交换次序次数中的至少一项,结束合并所述第一ETL业务和所述第二ETL业务;依据所述算子深度的大小,将已得到的所述目标算子与所述第一ETL业务中未合并的算子组合,得到第一分支ETL业务,以及将已得到的所述目标算子与所述第二ETL业务中未合并的算子组合,得到第二分支ETL业务,其中,所述目标ETL业务包括所述第一分支ETL业
务和所述第二分支ETL业务。6.根据权利要求2

5任一所述的方法,其特征在于,还包括:在得到所述目标算子时,确定第三ETL业务的执行代价,所述第三ETL业务由已得到的所述目标算子与所述第一ETL业务或所述第二ETL业务中未合并的算子构成;根据所述第三ETL业务的执行代价,确定所述目标ETL业务。7.根据权利要求6所述的方法,其特征在于,所述根据所述第三ETL业务的执行代价,确定所述目标ETL业务,包括:在所述第三ETL业务为多个时,若第四ETL业务的执行代价小于或等于所述第一ETL业务与所述第二ETL业务的执行代价之和,则将所述第四ETL业务作为所述目标ETL业务,所述第四ETL业务为执行代价最小的所述第三ETL业务。8.根据权利要求7所述的方法,其特征在于,所述将所述第四ETL业务作为所述目标ETL业务,包括:在所述第四ETL业务中第三目标算子包含的公共算子后设置缓存算子,得到所述目标ETL业务,所述第三目标算子为所述第四ETL业务中算子深度最大的目标算子,所述缓存算子用于缓存所述公共算子输出的数据,以及向所述公共算子后的分支算子提供数据。9.根据权利要求1

8任一所述的方法,其特征在于,所述得到目标ETL业务之后,还包括:基于上沉下浮规则,对所述目标ETL业务进行修正,所述上沉下浮规则为:收缩算子向ETL业务的头部上浮,扩张算子向ETL业务的尾部下沉;其中,所述收缩算子为经过算子处理后数据量减少的算子,所述扩张算子为经过算子处理后数据量增大的算子。10.根据权利要求1

9任一所述的方法,其特征在于,所述目标ETL业务包括公共算子、缓存算子和至少两串分支算子,所述缓存算子位于所述公共算子和所述至少两串分支算子之间,所述缓存算子用于缓存所述公共算子输出的数据,以及向第一串分支算子提供数据;其中,所述公共算子包括一个读算子,所述至少两串分支算子包括所述第一串分支算子,所述第一串分支算子包括所述第一ETL业务的写算子,所述读算子用于读取数据,所述写算子用于写入数据。11.一种数据仓库技术ETL业务的优化装置,其特征在于,所述装置包括:接收模块,用于接收用户下发的合并请求,所述合并请求用于指示合并至少两个ETL业务,所述至少两个ETL业务包括第一ETL业务和第二ETL业务;处理模块,用于确定所述第一ETL业务和所述第二ETL业务的数据源是否相同,若相同,则基于预先配置的算子合并规则,合并所述第一ETL业务和所述第二ETL业务,得到目标ETL业务,其中,所...

【专利技术属性】
技术研发人员:刘娟刘怀忠李阳王晓武
申请(专利权)人:华为技术服务有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1