この節では、DB2 OLAP Server を使用して OLAP アプリケーションおよびデータベースを作成する場合に考慮すべき機能上の動作を説明します。
DB2 OLAP Server を使用して、以下を実行できます。
DB2 OLAP Server で OLAP データベースを作成すると、リレーショナル・データベース内にリレーショナル・キューブが作成されます。 リレーショナル・キューブには、データベースの実際のデータ値が入ったファクト表が含まれます。 アンカー次元として識別する次元のメンバーは、ファクト表の構造を定義するのに役立ちます。
DB2 OLAP Server が作成するファクト表には、指定するアンカー次元のメンバーごとに、また、多次元データベースの追加次元ごとにそれぞれ 1 つの列があります。 アンカー次元のメンバー数とデータベースの追加次元数の合計から 1 引いた数が、リレーショナル・データベースで表に入れることができる最大列数より多くなってはなりません。 これには共用メンバーや仮想メンバーは含まれません。
DB2 OLAP Server を使用する場合、圧縮、データ・キャッシュ、および索引付けを扱うのはリレーショナル・データベースです。
アプリケーション・マネージャーで指定する情報に多次元ストレージ・マネージャーを使用する場合だけに該当するものがあるように、リレーショナル・ストレージ・マネージャーを使用する場合だけに該当するものもあります。
多次元データベースを設計する場合、"多次元データベースの設計"の手順に従って、最高のパフォーマンスを引き出せるように設計を最適化してください。
アンカー次元とは、DB2 OLAP Server について識別する次元で、多次元データベースのリレーショナル・キューブに作成するファクト表の構造を定義するために使用します。
リレーショナル・キューブには、アプリケーション・マネージャーまたは ESSCMD コマンドを使用して作成される多次元データベースを定義する、データとメタデータのセットが入っています。
ファクト表には多次元データベースのデータ値が保持されています。 これはリレーショナル・キューブの主要な表で、以下の列が含まれています。
図 3 には、ファクト表の内容の例が示されています。
![]() |
利益、売上、売上原価、および在庫の列はアカウント次元のメンバーで、アカウント次元がアンカー次元に指定されています。 PID、TID、および MID の列は非アンカー次元を表しています。
アンカー次元のメンバーになっている各列にはデータ値が入り、非アンカー次元の各列にはその次元のメンバーの ID 番号が入っています。
アンカー次元は自分で選択するか、DB2 OLAP Server に選択させることができます。
DB2 OLAP Server を使用して作成する多次元データベースの多くには、アカウント次元があります。 アカウント次元を選択すると、読みやすく分かりやすい SQL 照会になります。 アカウント次元には、業務上の尺度となる販売、支出、在庫などのすべての項目があるので、おそらくアンカー次元として最も多く用いられる次元です。 もちろん、ほかの次元を選択することもできます。
アンカー次元を選択する場合、その次元は以下のとおりでなければなりません。
M = C-(N-1)
ここで、
M は、データを保管するアンカー次元のメンバー数です。
C は、リレーショナル・データベースで表に入れることができる最大列数です。
N は、データベース・アウトラインの合計次元数です。
たとえば、リレーショナル・データベースによって制限される列の限界が 254 で、データベースに 6 つの次元がある場合、アンカー次元として指定する次元には最大で 249 のメンバーが入ります。 これには共用メンバーや仮想メンバーは含まれません。
さらに、アンカー次元には次の文字が含まれていなければなりません。
アンカー次元は、DB2 OLAP Server に自動選択させるのではなく、自分で慎重に選択するようにしてください。 データを多次元データベースにロードした後では、データベース中の全データをクリアしなければ、アンカー次元の変更または削除は実行できません。 その場合、アンカー次元の変更または削除後に、全データを再ロードしなければなりません。 アンカー次元の選択によって照会、計算、およびデータ・ロードのパフォーマンスに影響が出ます。
DB2 OLAP Server がアンカー次元を選択すると、M = C-(N-1) になるようなメンバー数のアカウント・タグがある高密度次元を検索します。 最初のこの方式で高密度次元が見つからないと、M = C-(N-1) に該当するメンバー数があるアウトラインの中から最初の高密度次元を選択します。 DB2 OLAP Server で選択されたアンカー次元を表示することができます。 "DB2 OLAP Server 実行時パラメーターの表示"を参照してください。
アンカー次元を設定するには、次元の最上位メンバーに RELANCHOR という名前のユーザー定義属性を作成します。 最上位メンバーは次元名のメンバーです。
DB2 OLAP Server はファクト表を作成するときに、RELANCHOR 属性があるメンバーを使用して、どの次元をアンカー次元として使用するか判別します。
RELANCHOR 属性は 1 つのメンバーだけに割り当てることができます。
次元のメンバーにユーザー定義属性を作成するための詳細については、 「データベース管理者ガイド」を参照してください。
アプリケーション・マネージャーを使用して、アンカー次元および他の実行時パラメーターの設定を表示することができます。 "DB2 OLAP Server 実行時パラメーターの表示"を参照してください。
DB2 OLAP Server で多次元データベースを作成する場合、そのデータベースに入る次元の数は、リレーショナル・データベースで表に入れることができる最大列数によって限定されます。
DB2 OLAP Server が作成するリレーショナル・データベース中の最大の表であるファクト表には、指定するアンカー次元のメンバーごとに、また、データベース・アウトライン中の非アンカー次元ごとにそれぞれ 1 つの列があります。 したがって、アンカー次元のメンバーの合計数とデータベース・アウトラインの非アンカー次元の合計数を足した数から 1 引いた数が、リレーショナル・データベースで表に入れることができる列限界を超えることはできません。 これには共用メンバーや仮想メンバーは含まれません。
リレーショナル・キューブに入れることができる次元の最大数は、次のように決定します。
次元の最高位も忘れずに含めます。 次元の最高位は、低位のメンバーと統合した値を含むことがあるため、メンバーとしてカウントされます。
たとえば、アンカー次元に入る最大メンバーが 100 で、リレーショナル・データベースでは最大 254 列まで表に入れられるとすると、アンカー次元の他にあと 153 までの次元を持つことができます。
非アンカー次元に入るメンバー数には制限がありません。
DB2 OLAP Server と DB2 OLAP スターター・キットは二重ストレージ・マネージャーを提供します。 これはアプリケーションを作成するとき、またはクライアント・プログラムがアプリケーションを作成するときに、多次元ストレージ・マネージャーかリレーショナル・ストレージ・マネージャーのどちらかを選択できるようにするものです。 デフォルトのストレージ・マネージャーは、DATASTORAGETYPE ステートメントを使用して、ESSBASE.CFG file で指定されています。 多次元ストレージ・マネージャーがデフォルトです。 ESSBASE.CFG ファイルがない場合、またはファイルに DATASTORAGETYPE ステートメントがない場合は、デフォルトが使用されます。
デフォルトのリレーショナル・ストレージ・マネージャーを使用していて、DB2 OLAP Server の前のバージョンから更新する場合、リレーショナル・ストレージ・マネージャーをデフォルトとして指定するために、インストール・プログラムによって ESSBASE.CFG ファイルに項目が追加されます。 DB2 OLAP Server の新規バージョンをインストールし終えたら、DATASTORAGETYPE ステートメントを変更する前に、既存のアプリケーションをそれぞれ開始してから停止する必要があります。 DB2 OLAP Server は既存のアプリケーションを開始するときに、ESSBASE.CFG で指定されているストレージ・タイプを使用します。 アプリケーションをいったん開始して停止したら、DATASTORAGETYPE ステートメントを変更できます。 この変更は、次にアプリケーションを開始するときに適用されます。
Administration Manager を使用する場合、新しいアプリケーションを作成するときに、多次元ストレージ・マネージャーまたはリレーショナル・ストレージ・マネージャーのどちらかを指定できます。 選択したストレージ・マネージャーのタイプによって、DATASTORAGETYPE ステートメントでデフォルトが指定されているとしても、それは上書きされます。
ESSBASE.CFG ファイルを編集するには、次のステップに従ってください。
アプリケーション・マネージャーを使用して、以下の実行時パラメーターを表示できます。
実行時パラメーターを表示するには、以下のようにします。
データをロードする際に考慮すべき最も重要なことは、入力データの順番です。 最高のパフォーマンスを引き出すためには、アウトライン内の配列が高密度次元、疎密度次元の順になっており、疎密度次元の方がサイズが大きい場合に限り、アウトラインとは逆の順番にデータをロードします。 つまり、最も密度の低い次元ものから順番にロードしてゆき、高密度次元は最後にロードします。
入力データをこのように配列しておくと、各ブロックのデータすべてが同時にロードされるので、データのロードがかなり速くなります。 また、ブロックは正しい索引順序列にロードされます。 入力データの配列が間違っていると、索引管理が一層複雑になります。 異なるデータ要素がロードされるたびに、何回もブロックが書き込まれ、それ以外の操作もすべてログに書き込まれます。
データ・ロードのパフォーマンスを最適化するために、他にも取ることができる方法があります。 データ・ロードを始める前に、"データ・ロードの調整"をお読みください。 また、データ・ロードの詳細については、 「データベース管理者ガイド」も参照してください。