計算のシミュレーションによる計算時間の見積り

Essbaseブロック・ストレージ・キューブのモデルで計算のシミュレーションを実行して、実際の計算にかかる時間を見積もることができます。これを実行するには、SET MSG ONLYおよびSET NOTICE HIGHを使用して計算スクリプトを実行し、完了時間をメモし、推定します。

計算スクリプトでSET MSG ONLYを使用して、計算のシミュレーションを実行できます。シミュレート計算により、同じデータとアウトラインに基づく実際の計算のパフォーマンスを分析するために役立つ結果が得られます。

SET NOTICE HIGHなどのコマンドでシミュレート計算を実行することで、それぞれの疎ディメンションの計算にかかる相対的な時間を把握できます。その後、1つ以上のディメンションで実際の計算を実行することで、フル計算にかかる時間を見積ることができます。これは、シミュレート計算の実行にかかる時間が、実際の計算の実行にかかる時間に比例するためです。

たとえば、計算を9:50:00 AMに開始し、最初の通知のタイムスタンプが09:50:10 AM、2番目のタイムスタンプが9:50:20 AMの場合、この部分の計算にはそれぞれ10秒かかったことがわかります。次に、最初の部分のみで実際の計算を実行し、その実行に30秒かかったことを確認した場合、その他の部分にも30秒かかることがわかります。合計2つのメッセージがあるとすると、実際の計算には約60秒(20 / 10 * 30 = 60秒)かかることになります。

次のトピックでは、シミュレート計算の実行方法、およびシミュレート計算を使用して計算時間を見積る方法について説明します。

計算のシミュレート

SET MSG ONLYおよびSET NOTICE HIGHコマンドを使用して計算スクリプトを実行し、アプリケーション・ログのタイムスタンプを書き留めて、Essbaseブロック・ストレージ・キューブのモデルで計算をシミュレートします。

計算時間を見積る前に、実際のキューブに基づいたデータ・モデル上でシミュレート計算を実行する必要があります。その後、アプリケーション・ログを確認して、計算にかかった時間を確認できます。

アプリケーション・ログの場所を学習するには、Essbaseプラットフォームの環境の場所を参照してください。

シミュレート計算を実行するには:

  1. 情報が必要なすべてのディメンションおよびすべての詳細レベルを使用するデータ・モデルを作成します。
  2. すべてのデータをロードします。この手順では、キューブにロードされたデータのみが計算されます。
  3. 次のエントリを使用して計算スクリプトを作成します。
    SET MSG ONLY;
    SET NOTICE HIGH;
    CALC ALL;

    密ディメンションに動的計算を使用する場合、CALC ALLコマンドを、計算の必要な特定のディメンションに置換します(CALC DIM EASTなど)。

    ノート:

    スクリプトを検証しようとすると、Essbaseでエラーが報告されます。このエラーは無視してください。

  4. スクリプトを実行します。
  5. アプリケーション・ログで最初の疎の計算メッセージを見つけて、メッセージ内の時間を確認します。
  6. それ以降の各メッセージの時間も確認します。
  7. 動的に計算されないモデルの密ディメンションを計算します。
    CALC DIM (DENSE_DIM1, DENSE_DIM2, …);
  8. モデルの疎ディメンションを計算します。
    CALC DIM (SPARSEDIM1, SPARSEDIM2, …);
  9. 通知が行われる間隔を見積り、疎の計算結果と照らし合わせて確認します。それによって、計算時間を見積ることができます。

計算コマンドを参照します:

計算時間の見積り

シミュレート計算の結果を記録し、それを使用してEssbaseブロック・ストレージ・キューブの実際の計算時間を見積ります。

合計計算時間を見積るには:

  1. SET NOTICE HIGHで生成されたアプリケーション・ログ・メッセージが、どのくらいの間隔で生成されたかをすべて確認します。

    次の表を参照してください。

  2. 次の計算方法を使用して、実際の計算にかかる時間を見積ります。

    シミュレート計算にかかった合計時間/シミュレート計算における最初の通知間隔X実際の計算における最初の時間間隔。

    表35-1 ログ・メッセージの間隔の例

    計算通知番号 シミュレート計算の時間間隔(秒) 疎ディメンションの計算間隔(秒)

    1

    7

    45

    2

    5

     

    3

    6

     

    4

    3

     

    5

    4

     

    6

    2

     

    7

    6

     

    8

    4

     

    9

    3

     

    10

    3

     

    合計計算時間

    43

     

    この例では、43 / 7 X 45 = 276.4秒となるため、実際の計算は276.4秒かかることになります。

見積りの精度に影響する要因

Essbaseブロック・ストレージ・キューブのシミュレート計算に基づく見積りの精度は、ブロック密度やアウトライン構造などの要因によって影響を受ける可能性があります。

シミュレート計算では、バリエーションを引き起こす主要な要因が存在しない場合、約5%の正確な時間が戻されます。

これらの要因が存在する場合は、Essbaseでのシミュレート計算が30 - 40% (SET NOTICE HIGHによって生成されるメッセージの30 - 40%)に達したとき、この見積り手法によって計算時間がより厳密に予測されます。

連鎖的な影響による変動

計算時間の見積り手法としてSET MSG ONLYを使用する場合は、後でCALCNOTICE間隔と照らし合わせて検証する必要があります。この見積り手法の結果は、次のような連鎖的な影響によって変動します。

  1. 実際の集計プロセスによって、各ブロックのブロック密度に違いが発生し、そのため

  2. Essbaseによって各ブロックがディスクに書き込まれる速度に違いが発生し、そのため

  3. 各ブロックがキャッシュで処理される速度に違いが発生し、そのため

  4. 実際の結果が、予想された計算時間と異なる場合があります。

アウトラインの構造による変動

実際の結果を予測とは大きく異なるものにする可能性のあるもう1つの要因は、アウトラインの構造です。CALCNOTICE間隔に基づいた計算では、アウトライン全体を通して処理時間のバランスが均等であることが前提とされます。このバランスを損う可能性のある要因に、次のような状況があります。

  • モデル内に他の疎ディメンションと比べて大きな疎ディメンションが1、2個含まれています。

  • 大きいディメンションが、複数の共有ロールアップが発生する原因となるメンバー構成になっています。

結果に基づくアウトラインの変更

Essbaseブロック・ストレージ・キューブのモデルのシミュレート計算を見積もって分析したら、アウトラインを変更してパフォーマンスを改善できます。

アウトライン内の上から下へ、上位ブロックで最もパーセンテージの増加が少なくなるよう、次のように疎ディメンションを順序付けします。

  • モデルのフル・ロードの後の、レベル0のブロック: 100,000

  • 疎ディメンション1のみを集計した状態の上位レベルのブロック: 1,000,000

  • 疎ディメンション2のみを集計した状態の上位レベルのブロック: 3,000,000

  • 疎ディメンション3のみを集計した状態の上位レベルのブロック: 10,000,000

  • 疎ディメンション4のみを集計した状態の上位レベルのブロック: 300,000

  • 疎ディメンション5のみを集計した状態の上位レベルのブロック: 5,700,000

例:

  • #4 (メンバー= 10,000、4レベル)

  • #1 (メンバー= 500、2レベル)

  • #2 (メンバー= 100、4レベル)

  • #5 (メンバー= 10,000、4レベル)

  • #3 (メンバー= 20、フラット)

シミュレート計算を使用して、上位ブロックのカウントを生成します。これらの数は、前述のアイテムの隣に示されている実際のディメンション・サイズにかかわらず、正確な場合があります。

注意:

メンバーの最大のカウントは、必ずしも有効な予測材料ではありません。

ハイブリッド・モードの使用を検討します。ハイブリッド・モード・キューブでは、ディメンションの順序を並べ替えるかわりに、解決順序を簡単にカスタマイズできます。