SAP HANA项目过程中优化分析以及可行性验证

在HANA项目中遇到模型运行效率问题,针对20亿条数据的复杂计算,项目组进行了多方位优化探讨。尝试了SQL替换、属性视图、模型拆分、图形化与SQL结合及模型落地等方法,但效果不理想。最终通过减少数据量、优化JOIN顺序、减少PROJECTION和aggregation、避免重复数据使用和混合运算机制等方式,实现了有效的模型优化。尽管优化仍待深入研究,但这些实践经验对提升HANA运行效率具有指导意义。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

       在项目开发过程中,经常会遇到HANA模型运行效率的问题;

  以我们项目为例,HANA平台要求模型运行时间不能超过10秒,但是在大数量和计算逻辑复杂的情况下(例如:ERP中的BKPF和BSEG量表的年数据总量超过20亿条),HANA模型的运行时间基本上都在1分钟以上。在不关联其它表,单单是几个板块的BKPF和BSEG表UNION ALL,运行时间都超过1分钟。鉴于这种情况,项目组对HANA模型是否存在优化空间,进行了分析和探讨,也请教了HANA平台的专家对HANA的优化给出可行性建议。

  最终的分析结果,最简单、最高效的优化方法就是减少数据量,当然这个方法基本上不用说,没什么技术含量,仅仅是数量级的减少。对我们程序员来说,当然不能满足这么简单粗暴的方法。

  经过讨论,制定几条优化的方向:

  1.将复杂的可视化模型通过SQL SCIRPT替换;

  2.现有的模型都是通过计算视图实现的。查看了相关资料后,发现HANA的属性视图、分析视图、计算视图对应不同的处理机制。属性视图擅长大数据量的关联。分析视图适合逻辑运算。计算视图是在效果上可以理解为集合属性和分析视图的两种功能。于是采用将数据量比较大的关联和汇总通过属性视图实现。

  3.拆分大的模型为几个小的模型组合。

  4.图形化和SQL SCRIPT结合使用;

  5.模型落地;

  确定了方向后,项目组开始针对以上几点进行验证;

  首先,将复杂的可视化模型全部用SQL实现,实验的结果并不理想。于是上网查相关资料,发现可视化模型和SQL模型的处理机制不一样,HANA对可视化模型的运算速度要高于SQL的运行效率。而我们将SQL模型和可视化模型的运行速度进行比较,发现SQL模型的运行时间要大于可视化模型。例如,同样的数据量,同样的逻辑,最终的结果是SQL的运行时间比可视化模型的运行时间多一秒左右。当然这只是经过多次运行以后得出的规律行时间差。通过以上的对比,我们发现SQL替换可视化模型的方案不可行。

  其次,我们将BSEG和BKPF几大板块UNION ALL的过程以属性视图实现,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值