Technical Articles
SAP Analytics Cloud ストーリーを最適なパフォーマンスでご利用いただくために
はじめに
SAP Analytics Cloudでは、チャート、テーブル、テキストや画像などを使用してデータを分析することができます。モデルやストーリーを作成するときにご確認いただきたいパフォーマンスに関するベストプラクティスと、理想的なパフォーマンスが実現できないときの対応策検討に役立つ実行時間分析の手順についてご紹介します。
パフォーマンスのためのベストプラクティス
複雑なデザインや大量のデータが、ストーリーの実行時間を長くすることがあります。パフォーマンス問題を未然に防ぎ、スムーズにストーリーをご利用いただくために、最適なストーリーパフォーマンスのためのベストプラクティスが提供されています。
モデルの定義や、ストーリーに配置するフィルタ、テーブルや地図などのウィジェットについて利用時のtipsが記載されています。最後には、Webinar: SAP Analytics Cloud Story Performance Tips & Tricks のリンクがあります。
パフォーマンス問題発生時のトラブルシュートのNoteです。How to optimize performance for on-premise SAP BW and BW4/HANA Live connectivityというBWライブ接続時のベストプラクティスが添付されています。この文書にはパフォーマンスに関連するBWライブ接続時特有の設定について記載されています。
ベストプラクティスで推奨されている実装方法のすべてに従ってストーリーを作成するとビジネス要件がみたせないなど難しいことがあるかもしれません。一方で、同じデータを表示するための手法が何通りかのうち、高速化が期待できる実装方法を採用するなど、要件の実現とパフォーマンス最適化と両方をみたす実装にすることもできます。まずは、パフォーマンスのためのベストプラクティスを確認し、データソースからSAP Analytics Cloudストーリーにいたる一連のシステム構成の中での最適化をおこないます。
ストーリーの実行時間分析
一般的なベストプラクティスの推奨を適用したあと、さらにストーリーのロード時間を短くしたい場合は、ストーリーのロード時に実行されている処理全体の実行時間にたいして占める割合の高い特定の処理を対象に、適切な対応を実施すると効果的です。ボトルネックとなる処理を見つけるために、ロード処理実行時間の分析をします。
問題の切り分け
実行時間が長くなる主な原因を効率よくさがすために、ストーリーが実行されるときのシステム構成をもとに4つの領域にわけて、問題の切り分けを行います。
システム構成
1. クライアント時間
クライアント時間とは、ストーリーを実行するPCやモバイル側でかかる時間です。以下のような要素がクライアント時間に影響を与えます。
- クライアントPCのCPU・RAM、バッテリの電源オプション(省電力モード)
- ブラウザの設定や利用状況(plugin、extension)
- PCで実行されているほかのアプリケーション
上記の要素を考慮しながら、別のPCにて実行時間を確認、PCの電源オプションを高パフォーマンスに設定、技術的前提条件を満たしていることの確認などをして、特定のPCやモバイルにおいて実行時間が長いのかどうかを確認します。
2. ネットワーク時間
ネットワーク環境はストーリーのパフォーマンスに大きく影響します。無線と有線、Reverse Proxyの利用の有無、VPNの利用の有無で実行時間を比較し、ネットワーク環境がボトルネックかどうか確認します。
3. SAP Analytics Cloud時間
SAP Analytics Cloud製品は、継続的にパフォーマンス改善のためのシステム修正を提供しています。最新のシステムアップデートによるパフォーマンス改善をストーリーに反映するために、ストーリーを保存しなおします。システムアップデートによる改善で解消されない場合は、複数配置しているウィジェットのうち、どのウィジェットによる影響が大きいのか、個別の実行時間を確認します。
4. データソース時間
ライブデータ接続を使用している場合、ブラウザに表示するデータは、直接バックエンドのサーバ(SAP HANA, SAP S/4HANA, SAP BW, SAP BW/4HANA, SAP BusinessObjects Business Intelligence, SAP BPC)にリクエストされます。バックエンドのサーバにて、ビューやクエリ単体の実行時間を計測します。
4つの領域それぞれの確認の中で、問題を切り分けることで、実行時間を劣化させる主なボトルネックを見つけることができます。
開発者トレースの取得
PCやネットワーク環境にはロード処理が遅くなる原因はなく、また、個々のウィジェットやクエリ、ビューの実行時間がストーリーの大部分を占めるものではなく、明らかにボトルネックとなる個別の領域や処理が見つからない場合もあります。そのようなときは、ブラウザにてログを取得し、HTTPリクエストの処理状況を確認して、ページがロードされるまでの処理をさらに詳細に分析します。
下記の手順で開発者トレースを取得します。(Chromeの場合)
1. Chromeメニュー(メニュー > その他のツール > デベロッパーツール)からChromeデベロッパーツールを開きます。ブラウザにフォーカスしているときに、Ctrl+Shift+CやF12を押下してデベロッパーツールを開くこともできます。
2. デベロッパーツールを開いたらNetworkタブを開きます。左上のアイコンが赤くなっていてネットワークログの記録が始まっています。赤色ではなくグレーの場合は、グレーのアイコンをクリックしてログの記録を開始します。
3. 実行時間分析を行いたいストーリーのロード処理のみのネットワークログを取得するため、ログのクリアボタンをクリックします。
4. Preserve logとDisable cacheにチェックをつけます。
5. 計測対象のストーリーを実行し、ロード処理が終わったらStop recording network logボタン(赤いボタン)をクリックします。取得したネットワークログをファイルに保存するときは、Export HAR file…ボタンをクリックしてHARファイルをエクスポートします。
開発者トレースの分析
取得したネットワークログからは、ロード処理全体の概要(HTTPリクエスト数の数やリクエストの処理状況)を確認することができます。ログ全体を俯瞰して見ることにより、効率よく並列処理がされているかどうか、全体の中で目立って長いリクエスト処理があるかどうか、一回のロードにたいしてHTTPリクエストの数は多すぎないか、などの視点から個々の領域で原因の切り分けをしようとしたときには見つかりにくいようなボトルネックが見つかることがあります。
ロード処理時間の多くを占めるリクエスト例
個別のリクエストの詳細情報を確認することもできます。クライアントにデータが届くまで、サーバ側の処理に時間がかかったのか、ネットワーク時間がかかったのかなどを確認することができます。
サーバー側の処理とデータ転送時間例
ライブデータ接続の場合は、バックエンドでのデータ処理(GetResponseリクエスト)に多くの時間が消費されていることがよくあります。GetResponseリクエストに関する詳細ログには、バックエンドのサーバーの設定やログとマッピングして分析をすすめることができる情報が記録されています。これは、バックエンドサーバーでの処理時間の詳細を、SAP HANA、SAP BWシステム特有のログや設定の確認と合わせて分析するときの手掛かりとして有用な情報です。
ライブデータ接続時のネットワークログの内容については、次のブログポストにてご紹介します。
まとめ
SAP Analytics Cloudにて快適な実行時間でデータの分析をしていただくために、パフォーマンスに関するベストプラクティスにそったストーリーの作成をおすすめします。ストーリーの実行時間改善をするときにどこから手を付けたらよいのか分からない場合は、システム構成に基づいた問題の切り分けをしてみてください。さらにデベロッパーツールにてログを確認することで、問題の切り分けの時には見えなかった原因が見つかることもあります。ベストプラクティスの確認、問題の切り分け、ログの分析、という手順で効率のよいパフォーマンス分析をしていただけると幸いです。