ASO勘定科目ディメンションのタイム・バランスおよびフロー・メトリック

Essbase集約ストレージ(ASO)キューブのタイム・バランス・プロパティは、時間ディメンションに沿った組込みの計算を提供します。フロー・タグは、時間関連の勘定科目の計算を最適化するのに役立ちます。フロー・メトリックは、定期的および年次累計の値を保管する、符号なし勘定科目ディメンション・メンバーです。

ASOの勘定科目ディメンションでのタイム・バランス・タグの使用

集約ストレージのAccountsディメンションにタイム・バランス・プロパティを設定することで、Timeディメンションに沿った組込みの計算を実行できます。これにより、メンバー式を使用してタイムバランス機能を実行するときの時間とパフォーマンスのオーバーヘッドが削減されます。

保管済または式を持つAccountsディメンション・メンバーでは、次のタイムバランス・プロパティがサポートされています。

  • タイム・バランスの「期首」、タイム・バランスの「期末」、タイム・バランスの「平均」

  • SKIP NONE、SKIP MISSING

人事管理アプリケーションのHeadcountなどの保管済メジャーについて考えます。Year-Quarter-Months階層で、Headcountデータは月レベルでロードされます。

目的の年ごとまたは四半期ごとのHeadcount値は、その月の合計ではなく、期間内の最後に記録された値である必要があります。

Headcountにタイム・バランスの「期末」とSKIPMISSINGのタグを付けると、Year 2005で、その値がその月の最後の空ではない従業員数の値であることを意味します。Decに欠落していないHeadcount値がある場合は、その値が戻されます。そうでない場合は、Novの値がチェックされ、欠落していない場合はこの値が戻されます。

式を持つメンバーにタイム・バランス・タグが付いている場合、この式はレベル0の時間メンバーに対してのみ実行され、Timeディメンションはタイム・バランス・タグに従って集約されます。

タイム・バランス・タグによって、Timeディメンションに沿った組込みの計算が実行されます。期間累計やローリング平均などの式を使用するその他の時間ベースの計算を実行するには、TimeViewというディメンションを作成し、そのディメンションに対してすべての時間ベースの式を記述します。これにより、他の時間ベースの計算が実行不可になることなく、タイム・バランス計算の機能を使用できます。


このイメージは、HeadcountがTB LastおよびSkip Missingのタイムバランス・プロパティでタグ付けされているアウトラインを示しています。

ASOの勘定科目ディメンションでのフロー・タグの使用

フロー・メトリックを使用して、集約ストレージ・キューブでの時間ベース勘定科目の計算を最適化できます。フロー・メトリックは、アウトラインでの定期的および年次累計の値を保管する、符号なし勘定科目ディメンション・メンバーです。

次の例では、フロー・メトリックで解決される問題について説明します。12か月すべてに売上と追加のデータがあるものとします。各月の初めの在庫を読み込むために集約を実行する必要があります。

表37-6 在庫計算

- Sales Additions Inventory
Jan 5 1 50
Feb 6 3 46
Mar 4 2 43
Apr 7 0 41
... ... ... ...

Beginning Inventoryメンバーに対するMDX式を使用し、その値を計算します。フロー・メトリックを使用せずに各月の期首在庫を取得するには、計算機エンジンでMDX式を指数関数的に繰り返す必要があります。

Inventory = SUM(MemberRange(Jan:Time.CurrentMember), (Additions - Sales)) + Beg_Inventory

図で示した例を最適化するには、Essbase Webインタフェースでアウトライン・エディタを使用して、Inventoryメンバーに式(Addition - Sales)を割り当ててから、メンバーにフロー・タグを付けます。


集約ストレージ・キューブのアウトライン・エディタのフロー・メトリック・オプション。

メンバーにフロー・タグを付ける前に、メンバーが次を満たすことを確認してください。

  • 勘定科目ディメンションのメンバーです

  • 数式があります

  • タイム・バランス・タグがあります

タイム・バランスとフロー・メトリックの代替階層に関する制限事項

代替階層が集約ストレージの時間ディメンションで使用される場合、Accountsディメンションでフロー・タグとタイム・バランスのタグを使用するときに次の制限が適用されます:

  1. 代替時間階層間の共有レベルは、レベル0である必要がある。

  2. 代替時間階層間の共有レベルでのメンバーの順序は、すべての代替階層内で同じである必要がある。

  3. 保管済メンバーの共有数は、前の兄弟の数を超えないようにする必要がある。前の兄弟とは、同じ世代にある、アウトラインで以前保管されたメンバーです。

    たとえば、次のYearディメンションについて考えてみます。Aprilの共有数(3)はMarchの共有数(1)よりも大きいため、代替階層は無効です。


    共有メンバーを含む代替階層を持つYearディメンションを示したアウトライン。

タイム・バランス・タグが付けられたメジャーの集約

MDXのAggregate関数を使用して、タイム・バランス・タグが付けられたメジャーを集約します。

ASOキューブでのタイム・バランス・メジャーにおける属性計算の影響

次のような場合、次の計算ロジックが適用されます

  1. 集約ストレージ・アウトラインに、1つ以上の属性を持つ時間ディメンションや日時ディメンションまたはリンク属性ディメンションが含まれている。

  2. タイム・バランス・タグが付いたメジャーで問合せを実行する。

前述のケースが両方とも当てはまる場合、セルを評価するには、MDXのAggregate()のセマンティクスを使用します。

たとえば、次のようなシナリオを考えてみます。

  • Yearは日レベルの階層を持つ日時ディメンションである。

  • HolidayはYearの属性ディメンションであり、それぞれの日付にHoliday_TRUEまたはHoliday_FALSEのタグが付けられている。

  • Opening Inventoryがタイム・バランスの「期首」としてタグ付けされている。

(Year, Holiday_TRUE, [Opening Inventory])の値は、次のMDXロジックに従って評価されます。

Aggregate( {Set of dates that are holidays in Year}, [Opening Inventory])