SAP HANA 中的决策表(Decision Table)

时间:2024-06-25 20:05:08

http://scn.sap.com/community/developer-center/hana/blog/2013/01/11/what-can-you-do-with-decision-tables-in-sap-hana-sp05

利用SAP HANA,越来越多的计算和应用逻辑被放到数据库层,从而利用多核CPU的能力来更快的得到结果。但是在这样一个计算过程里,当一个应用想要做一个操作决 策,不论是应用层要拿回控制权来执行一些规则(BRFplus,NW BRM等等),还是这些规则被专家编写为SQL脚本/存储过程。

在第一种情况里,往返时间和ETL处理(把数据传送到规则引擎或者从规则引擎传出)花费了很多时间,这样你基于HANA的应用可能不会在你希望的亚秒级时间里应答你的动作,这对于大数据集来说更显而易见。

在第二种情况中,往返时间没有问题,但是规则不能被不懂SQL的人定义,比如一个业务用户。所以在建立规则的时候就会有潜在问题,这样就不够敏捷并且开销更多。所以,一个规则引擎宿主在SAP HANA中就非常必要。

决策表在SAP HANA SP05中提供,有了它,一名非技术用户可以用简单的语言定义操作决策/规则,他们懂得这些传输到SAP HANA的SQL存储过程中。

SAP HANA 中的决策表(Decision Table)

决策表让你为规则建模,根据来自不同SAP HANA的数据,如一个或更多HANA表、建模视图(比如属性视图,计算视图)、HANA表类型,确定的决策可以在相关表里更新,或者它也可以被返回到调用的应用程序中。要知道更多关于如何在SP05中创建决策表的信息,参考该PDF文档(142页)。

所有这些在博客中提到的,我想说的是决策表能做什么。

如果你读过上面的pdf文档,你应该意识到当你激活一个决策表,你定义的规则会被翻译成任何应用程序都可以调用的SQL存储过程。同样地,那些不更新数据集的决策表会生成一个基于列的视图。当你有规则编为存储过程和列视图,你可以变很多魔术;-)

1.应用可操作的业务规则——价格规则,信用决策,信用分数规则,报销,欺诈检测,数据清理规则,ETL规则,这张列表没完没了,我不会对此解释太多细节,因为这对于任何决策表来说是非常基础的需求。

3. 在其他存储过程中使用。由于决策表生成SQL存储过程,你可以从其他HANA SQL存储过程中使用它。

2. 在计算视图中使用。把决策表生成的列视图添加给计算视图,并且在开头部分添加你的逻辑。改变规则,激活,并刷新计算视图来模拟规则如何改变你的结果(然后适应最佳的规则)。

例子:这可以被用于模拟或者预计你的打折规则如何改变你的利润和利润率。

SAP HANA 中的决策表(Decision Table)

3. HANA分析中使用,并且得到最好的可能的决策,决定模式和趋势。

4. 你可以开发一款移动应用使用决策表生成的存储过程(通过jersey客户端或者HANA XS)。例如,理赔专员在客户现场可以查询理赔是否已经被批准了,或者还需要进一步的调查,这基于该客户历史保险理赔记录里的规律性/非规律性检查规则。

SAP HANA 中的决策表(Decision Table)

结论:

决策表是一种可用的SAP HANA,不仅可以在你的可操作规则中“传统地”使用它(来提高业务规则的敏捷性以及自动性),但是你也可以创建其他HANA组件(比如一个计算视图)或者一个移动应用来使用你的规则,从而浏览、模拟以及改编你的规则。