Technology Blogs by SAP
Learn how to extend and personalize SAP applications. Follow the SAP technology blog for insights into SAP BTP, ABAP, SAP Analytics Cloud, SAP HANA, and more.
cancel
Showing results for 
Search instead for 
Did you mean: 
I006726
Advisor
Advisor
2023/3/14追記)External HANA Viewを利用するための権限についての情報などを追記しました。

はじめに


このブログポストでは、最近Premium Engagementなどのサービスを通じて、多くのBW/4HANA導入を支援してきた中で多く見られるモデリングについて共有したいと考えています。以下に記載している内容は、実際のアセスメントの際に指摘させていただいた内容となっておりますので、BW/4HANAのモデリングをする際のご参考となれば、幸いです。

 

最近よく見るBW/4HANAのモデリングの特長


最近の日本のお客様のBW/4HANAのモデリングの特長は以下の図の通りです。どこに問題があるかわかるでしょうか?

もちろん、私たちSAPサービスがすべてのお客様に関わっているわけではないのですが、私たちがPremium EngagementやProfessional Serviceとして関わらせていただいたお客様のBW/4HANAのモデリングとして、HANAレイヤ(HANA View)を利用するモデリングが多いと感じています。技術的には、HANAレイヤ(HANA View)を利用することはもちろん可能なのですが、サポートされていない方法で実装されていたり、クエリパフォーマンスの観点で最適でない実装がされていたり、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 😧 "Only Values in InfoProvider"

 

 

HANAにプッシュダウンされる処理は?


HANAレイヤ(HANA View)を利用するモデリングで実装している背景として、BW on HANA導入時に思ったようなパフォーマンスが出ないという経験をしており、なるべくHANAに近いレイヤでモデリングしようとしているのではないかと推測しています。BW on HANAのリリースから長い年月が経ち、現在では多くのBWの処理がHANAにプッシュダウンされるようになっています。

HANAは常に処理がプッシュダウンできるかどうかをチェックしています。詳細は以下のヘルプをご覧ください。

Operations in SAP 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のメリットを享受いただけると幸いです。