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的数据,如一个或更多HANA表、建模视图(比如属性视图,计算视图)、HANA表类型,确定的决策可以在相关表里更新,或者它也可以被返回到调用的应用程序中。要知道更多关于如何在SP05中创建决策表的信息,参考该PDF文档(142页)。

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

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

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

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

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

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

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

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

结论:

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

SAP HANA 中的决策表(Decision Table)的更多相关文章

  1. SAP HANA中的SLT简介

    在以SAP系统作为主要ERP的企业中,不同系统之间的数据库数据同步是个重要的工作.对于这种需求,除了开发ABAP接口之外,也有高效的工具可用.SLT就是其中之一. SLT是SAP的第一个ETL(Ext ...

  2. SAP HANA中创建计算视图(Calculation View)

    [Step By Step]SAP HANA中创建计算视图(Calculation View) Demo Instruction: 该视图将两个表AUDIOBOOKS和BOOKS中的数据进行连接,并作 ...

  3. 【HANA系列】SAP HANA中null变成问号的问题

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[HANA系列]SAP HANA中null变成问 ...

  4. SAP HANA中创建层次分析视图(Hierarchy Analytic View)

    1. 创建层次Attribute View: ATTR_PRODUCT_HIERACHY ref:  http://www.cnblogs.com/omygod/archive/2013/04/30/ ...

  5. SAP HANA中创建分析权限(Analytic Privilege)

    Demo Instruction: 假定CustomerID > 100的为VIP客户,我们的权限设置为只显示VIP客户 所使用的Attribute View: ATTR_CUSTOMER_FU ...

  6. 【HANA系列】SAP HANA计算视图中的RANK使用方法

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[HANA系列]SAP HANA计算视图中的RA ...

  7. SAP NOTE 1999997 - FAQ: SAP HANA Memory

    Symptom You have questions related to the SAP HANA memory. You experience a high memory utilization ...

  8. SAP HANA procudure 创建用户

    SAP HANA中的用户是没有功能进行直接的拷贝的,但是我们可以通过建立存储过程调用,通过sql语句的方式进行拷贝: 存储过程定义如下,各位可根据自己的需求进行修改: CREATE PROCEDURE ...

  9. SAP HANA studio 创建分析视图

    [Step By Step]SAP HANA中创建分析视图(Analytic View) 1. 在Modeler视图中点击新建Analytic View 2. 设置分析视图的属性 Name: 分析视图 ...

随机推荐

  1. 移动web知识

    1.像素知识 px: css pixels,逻辑像素,浏览器使用的抽象单位 dp,pt:device independent pixels ,设备无关像素 dpr:devicePixelRatio 设 ...

  2. 应用内支付(IAP)可加入三方支付

    Windows Phone 放开政策 - 应用内支付(IAP)可加入三方支付   Windows Phone 应用商店在 今年(2013)11月04号 修改了商店政策 允许公司账户的应用使用三方支付S ...

  3. Unkown2

    续上个unkown,这里mark一下,接下来觉得还有可能考到,且自己不会的东西(或不太会) 数学方面: 随机化,概率,简单的几何计算,杂七杂八的数论,组合数学中的差分,康托展开,高斯消元,线性规划 树 ...

  4. C#的匿名委托 和 Java的匿名局部内部类

    .NET:C#的匿名委托 和 Java的匿名局部内部类 目录 背景实验备注 背景返回目录 这几天重温Java,发现Java在嵌套类型这里提供的特性比较多,结合自身对C#中匿名委托的理解,我大胆的做了一 ...

  5. 我的API HOOK库

    API HOOK有两种做法,一种是SetWindowHookEx,简单易用,但如果做其它的HOOK,如HOOK OpenProcess,就需要修改内存地址了,内存地址可以通过WriteProcessM ...

  6. storm源码之巧用java反射反序列化clojure的defrecord获取属性值

    [原创]storm源码之巧用java反射反序列化clojure的defrecord获取属性值 [原创]storm源码之巧用java反射反序列化clojure的defrecord获取属性值 storm源 ...

  7. IL反编译的实用工具

    初识Ildasm.exe——IL反编译的实用工具   Ildasm.exe 概要: 一.前言: 微软的IL反编译实用程序——Ildasm.exe,可以对可执行文件(ex,经典的控制台Hello Wor ...

  8. java用正则表达式获取domain

    在工作中经常用到获取url的来源和域名的黑白名单功能.前段时间写了一个获取url中域名的方法.但是在测试过程中发现有些小问题. /** * 根据URL获取domain * @param url * @ ...

  9. PostgreSQL9.1 with PostGIS 2.1.4 for mapping coordinates on linux/ubuntu 已经打包成deb 可下载

    For location based service, I try to use postgresql with postgis. You can download postgis from here ...

  10. PHP5.3 里面数组的的实现方式

    typedef struct _Bucket { char *key; void *value; struct _Bucket *next; } Bucket; typedef struct _Has ...