BW里的一些对象,比如ADSO,CP都能生成external HANA view, 在激活的时候就可以勾选生成了。
如果选了生成外部HANA视图,就是说我们能在HANA那边看到了,能用在HANA的calculation view里做混合建模了。
当然能干这些的前提条件是:
1. 你的HANA user(在DBMS下,如果没有DBMS要去SM30 去维护这个USER_DBMS_SYSTEM的表)有个全局role比如 bw2hana/<ABAP_Schema>_SAP_BW_MODEL_GENERATION 让你能从BW系统生成外部HANA view。
2. BW的分析授权要复制到HANA里。(也就是下面这个program:RS2HANA_AUTH_RUN 得有个job负责复制,这就解除了你生成BW对象的view,但是跑到HANA那一看还是insufficient privilege的错)
3.还需要HANA admin给你的一些object privilege,比如在Schema _SYS_BI的select权限,在REPOSITORY_REST上的execute权限等等。其他我就不知道了,大概还有个REPO.READ的在package上的权限。
相关的Tcode:
RS2HANA_ADMIN:所有跟external HANA view 相关的admin工作。从这个Tcode里能直接链接到其他Tcode里。
RS2HANA_VIEW:更新所有跟external HANA view相关的设置,在生成HANA view之前就得在这里设置参数。
RS2HANA_CHECK:如果生成view的时候除了啥错,要从这里看状态。
以上这些能保证我们BW里生成的external HANA view能在HANA里正常使用了。但是到这一步才是混合建模的开始。
如果我们决定用BW+HANA混合建模了,就要考虑到HANA 计算视图里的一些可以代替query的功能,把一些复杂公式从query里直接下推到HANA里。比如说一些个限制列,计算列。一些例外聚集。一些过滤条件也是直接下放到HANA里去,不用从query里搞filter了,因为你在query里过滤的话,数据还是得从HANA先给到application server ,然后再处理。不如直接在HANA里处理。