Technical Articles
BW/4HANAのモデリングにおける留意点
2023/3/14追記)External HANA Viewを利用するための権限についての情報などを追記しました。
はじめに
このブログポストでは、最近Premium Engagementなどのサービスを通じて、多くのBW/4HANA導入を支援してきた中で多く見られるモデリングについて共有したいと考えています。以下に記載している内容は、実際のアセスメントの際に指摘させていただいた内容となっておりますので、BW/4HANAのモデリングをする際のご参考となれば、幸いです。
最近よく見るBW/4HANAのモデリングの特長
最近の日本のお客様のBW/4HANAのモデリングの特長は以下の図の通りです。どこに問題があるかわかるでしょうか?
ここからは実際にアセスメントの際に指摘させていただいた内容をいくつかご紹介します。
サポートされていない方法で実装されている
HANAのCalculation Viewの定義時にBWのマスタデータ(/BIC/Pxxxx)やトランザクションデータの格納されたテーブル(/BIC/Axxxx)を直接参照しているケースがありますが、この実装方法はサポート対象外となります。
以下のノートにあるように、BWアプリケーションが生成するマスタやADSOの透過テーブルを直接Calculation View内で参照されることはサポートされていません。エクスターナルビュー経由で参照するように定義を変更してください。
1682131 – SAP BW tables in SAP HANA Information Views and ABAP CDS Views not supported
2723506 – External SAP HANA SQL View with SAP BW/4HANA 2.0
エクスターナルビューから階層データを利用する場合にはBWクエリと同様の機能が動作しない場合があるので、事前に以下のオンラインヘルプやノートをご確認ください。
SAP HANA Views for Hierarchies
2317197 – External SAP HANA View: Frequently asked questions, feature availability
External HANA Viewを利用する場合、権限設定が必要となります。以下のノートやブログを参考にしてください。
2390443 – BW External SAP HANA Views and Analytic Privileges
External HANA view configuration in BW on HANA
クエリパフォーマンスの観点で最適でない実装されている
HANAレイヤでHANA Viewを実装した後に、BWのクエリで利用するために、BWのコンポジットプロバイダを定義する必要がありますが、コンポジットプロバイダのモデリングの仕方でパフォーマンスや機能に影響が出るケースがあります。コンポジットプロバイダに対して、直接HANA Viewを定義することは可能ですが、パフォーマンスの観点からはあまり望ましくありません。
まずは、オンラインヘルプにコンポジットプロバイダをモデリングする際の推奨事項が記載されているので、ご確認ください。
Recommendations for Modeling CompositeProviders
コンポジットプロバイダにてインフォプロバイダを結合する際の注意点や、物理データを参照する場合に最大限のパフォーマンスが保証されること、仮想データの場合もパフォーマンスのためにはSIDを紐づける設定をすること、などが記載されています。
ここで重要なのは、クエリのパフォーマンスを最適化するためには「SIDを紐づける設定をすること=インフォオブジェクトを利用すること」です。SIDがない場合、OLAP演算処理のプッシュダウンやOLAPキャッシュの機能が利用できず(2514442 – Cache in database cannot be used – Brain Dev 027)、クエリパフォーマンスに影響が出る可能性があります。
以下は、トランザクションコード:RSRTで確認できますが、SIDがないため、OLAP演算処理のプッシュダウンがされていないことがわかります。
クエリが参照するインフォプロバイダでは、物理テーブルにSIDが保持される設計にします。具体的には、物理データがある場合は、ADSO、仮想データを参照する必要がある場合は、Open ODS View(インフォオブジェクトに割り当てあり)をコンポジットプロバイダから参照するようにします。
また、コンポジットプロバイダのモデリングについては、以下のノートもあります。
最適なプッシュダウンのためには、検索キーにNULLが発生しないデータの準備や、複合特性をそろえておくこと、SIDは物理データとして利用可能とすること、ナビゲーション属性の定義の方法、などコンポジットプロバイダを定義される際に確認していただきたい事項が記載されているので、参考にしてください。
2271658 – Design Considerations for Composite Provider
Long runtimes in query on CompositeProvider
SIDがない場合の問題としては、以下のような問題もあります。
BWクエリが参照するインフォプロバイダにSIDが物理データとして存在している場合にのみ、トランザクションデータに存在するマスタデータのみを入力ヘルプに表示する設定が利用可能です。
1565809 – BW Query Input(F4) Help: Settings and Properties
2094816 – HCPR/ADSO: Input help in mode D: “Only Values in InfoProvider“
HANAにプッシュダウンされる処理は?
HANAレイヤ(HANA View)を利用するモデリングで実装している背景として、BW on HANA導入時に思ったようなパフォーマンスが出ないという経験をしており、なるべくHANAに近いレイヤでモデリングしようとしているのではないかと推測しています。BW on HANAのリリースから長い年月が経ち、現在では多くのBWの処理がHANAにプッシュダウンされるようになっています。
HANAは常に処理がプッシュダウンできるかどうかをチェックしています。詳細は以下のヘルプをご覧ください。
また、以下のノートでOLAP演算処理のうち、どの処理がどのバージョンからプッシュダウンされているかを確認することが可能です。まだプッシュダウンされていない処理もありますが、多くの処理がプッシュダウンされていることがわかります。
2063449 – Push down of BW OLAP functionalities to SAP HANA
最後に、以下のノートにプッシュダウン対象であるOLAP演算処理がプッシュダウンされない場合の原因調査の手順や、プッシュダウン機能を利用するための前提条件について記載されています。参考にしてください。
2400004 – Checking ‘Hana Pushdown’ of OLAP features like Exception Aggregation
また、プッシュダウンしても必ずしも高速になるわけではありません。以下のノートも参考にしてください。プッシュダウンにより、パフォーマンスが劣化した場合、BWクエリのパラメータを見直すなどしてください。
2365030 – BW Query slower with HANA pushdown (Operations in HANA)
まとめ
最近よく見るBW/4HANAのモデリングの特長から、BW/4HANAのモデリングの留意点を説明しました。このブログを通して、BW/4HANAのモデリングの留意点を確認していただき、モデルと管理のシンプル化やHANAの最適なパフォーマンスといったBW/4HANAのメリットを享受いただけると幸いです。