2014年3月下旬に、Essbase11.1.2.3.500がリリースされ、 Exalyticsの最初のリリース
(Essbase11.1.2.2.000)以来の、パフォーマンス強化を中心とした新機能となっています。
主な新機能
1.BSOアプリケーションでのハイブリッド集計モード
2.FIXPARALLELによる並列計算の設定
3.@XREF, @XWRITE関数での強制並列計算
4.In-Placeデータ書込 (Exalytics専用機能)
5.MDX Aggregate, Sum関数におけるクエリの高速化
これから詳細について説明していきます。
1.BSOアプリケーションでのハイブリッド集計モード
Essbaseには以下のスライドの通り、BSOとASOの2つのタイプのアプリケーションが存在しています。

BSOでは、設定次第で次元階層のどこの場所に対しても、データのロード・計算によるデータの格納
ができ、複雑な計算の設定が可能ですが、キューブが大きくなりすぎると、どうしても積上などの計算
パフォーマンスが問題となってきます。
これに対し、ASOでは、BSOでは不得意な数万, 数十万項目レベルの大量データの積上を高速に行うことが
可能です。またデータ量も、通常、BSOの10分の1以下になります。
今回の新機能で、BSOでも、ハイブリッド集計モードとして、ASOの高速動的集計が使えるようになりました。
この設定のメリットは、使い慣れたBSOを使いつつ、バッチによる積上(集計)計算が不要になるのと、
キューブのデータ量を大幅に減らすことができるようになります。
設定方法: (essbase.cfg)
ASODYNAMICAGGINBSO [app [db]] NONE | PARTIAL | FULL
NONE: ハイブリッドモードOFF(デフォルト)
PARTIAL: シンプルなアウトラインの集計記号(+,-)による計算のみに有効
メンバ計算式、*,/,%の記号は除外されBSOモードで計算される
FULL: アウトライン集計記号、メンバ計算式での計算で有効
アウトライン: 積上対象の集計メンバに対して、元は「保管」や「共有しない」などの
保管メンバになっているデータストレージの設定を「動的計算」に変更する
なお、BSOの通常のディレクトリの他に、ASOのディレクトリ構造と同じような
ハイブリッド集計用のディレクトリが作成されます。

但し、これまで保管メンバだった集計メンバが動的計算に設定され、計算順序が異なるため、
計算結果には十分注意が必要です。
2.FIXPARALLELによる並列計算の設定
元々、EssbaseにはCALCPARALLELというコマンドがあり、128スレッド(Essbase 64bitの場合)
まで並列計算の設定ができますが、FIXPARALLELを使用して計算スクリプトの中でさらに
細やかな並列計算の設定を行うことが可能になりました。

設定方法: (計算スクリプト)
従来のFIXのような感じで、FIXPARALLELコマンドのパラメータとして、
「スレッド数」と、
計算範囲の限定及び並列計算のためのタスク数の指定となる「メンバリスト」
の指定を行います。
FIXPARALLEL (スレッド数, メンバリスト)
計算内容(例: DATACOPY Actual TO Forcast;)
ENDFIXPARALLEL
特に、これまでシリアルで計算されていたDATACOPYやDATAEXPORTコマンドに対しても
FIXPARALLELを使うと強制的に並列計算の設定ができるため、計算処理のさらなる高速化が
期待できます。
DATACOPYコマンドは単なるデータのコピー処理だけでなく、Essbaseの遅い処理の1つである
データブロックの作成にも適用することができるコマンドです。
弊社の検証でも、シリアル処理であった従来のDATACOPYコマンドに比べ、
設定によっては4倍近く高速化されています。
但し、設定次第ではCALCPARALLELの並列計算+FIXコマンドよりも遅くなるパターンがあったり、
従来からのCALCPARALLELでは考慮されていた計算の依存関係による制御がなくなりますので、
設定変更後の結果数値に対しては十分な確認が必要です。
また、Exalyticsでないサーバに対しては、FIXPARALLELのスレッド数は、8スレッドまでに
限定されているので、ご注意ください。
3.@XREF, @XWRITE関数での強制並列計算
従来シリアル処理だった@XREFや@WRITE関数に対して、SET FORCEPARALLELCALCコマンドにより
強制的に並列計算の設定ができるようになりました。
設定方法: (計算スクリプト)
SET FORCEPARALLELCALC
{
XREF ON;
XWRITE ON;
COMPLEXFRMLDEP ON;
};
デフォルト(上記設定を記述しない場合)は全てのコマンドでOFFで、
強制並列計算を適用しない設定となっています。
4.In-Placeデータ書込 (Exalytics専用機能)
データが更新されても、圧縮後のデータブロックサイズと適合する限り、同じ場所に
データを書き込む機能で、Exalytics専用機能となっています。
この設定により、インデックスファイルへの更新回数が削減され、断片化も起きづらく
なることから、結果的にパフォーマンスが向上し、データベースの再構築(デフラグ)の
回数を減らせることが期待されています。
設定方法: (essbase.cfg)
INPLACEDATAWRITE [appname [dbname]] TRUE | FALSE
5.MDX Aggregate, Sum関数におけるクエリの高速化
ASOアプリケーションでのMDX Aggregate/Sum関数のパフォーマンスが向上されています。
なお、Essbase11.1.2.3.500の注意点として (2014/5/7現在)、
・Hyperion Planningでの使用はまだサポートされていない点
・EPM(HIT)のインストーラのみでの提供となる点
(OBIインストールではまだ提供されていない)
にご注意ください。
またアップデートがありましたら、このブログでもお伝えしていきます。