Warehouse Builderでは、ディメンション・オブジェクトを定義、配布およびロードできます。ディメンション・オブジェクトの配布先は、リレーショナル・スキーマまたはデータベース内のアナリティック・ワークスペースです。
この章の内容は次のとおりです。
Warehouse Builderでディメンションを作成するには、次の方法があります。
このウィザードでは、完全に機能するディメンション・オブジェクトをすばやく作成できます。ウィザードを使用すると、多数の設定が最も使用頻度の高い値にデフォルト設定されます。これらの設定は、後でデータ・オブジェクト・エディタを使用して変更できます。ディメンションのリレーショナル実装を選択した場合は、自動バインドを使用してWarehouse Builderリポジトリに実装表も作成されます。
ディメンション・ウィザードで使用されるデフォルトの詳細は、「ディメンションの作成ウィザードで使用されるデフォルト」を参照してください。
「データ・オブジェクト・エディタ」では、ディメンションの定義と実装のあらゆる側面を完全に制御できます。これにより、最大限の柔軟性が得られます。エディタを使用して新規ディメンションを作成する方法と、前に作成しておいたディメンションを編集する方法があります。
時間ディメンション・ウィザードの使用
時間ディメンション・ウィザードを使用すると、時間ディメンションを作成して移入できます。時間ディメンション・ウィザードの詳細は、「時間ディメンションの作成」を参照してください。
ディメンション・ウィザードを使用してディメンションを作成する手順は、次のとおりです。
Warehouse Builderのプロジェクト・エクスプローラから、「データベース」ノード、続いて「Oracle」ノードを展開します。
ディメンションを作成するターゲット・モジュールを開きます。
「ディメンション」を右クリックして「新規」→「ウィザードを使用...」を選択します。
ディメンションの作成ウィザードのようこそページが表示されます。「次へ」をクリックして次ページに進みます。ウィザードでは次の各ページが表示されます。
名前と説明ページを使用してディメンションを記述します。このページに次の情報を入力します。
名前: Warehouse Builderでディメンションの参照に使用される名前です。1つのモジュール内では、ディメンション名は一意である必要があります。
説明: ディメンションの説明(オプション)を入力できます。
記憶域タイプ・ページを使用して、ディメンション用の記憶域のタイプを指定します。記憶域タイプにより、データベースにおけるディメンション・データの物理的な格納方法が決まります。記憶域タイプについて選択できるオプションは次のとおりです。
リレーショナル記憶域(ROLAP)
多次元記憶域(MOLAP)
記憶域タイプは、キューブ全体の最下位レベルに格納されるデータ量、および必要なリフレッシュ・レートに基づいて選択します。
リレーショナル記憶域(ROLAP) Warehouse Builderでは、ディメンション定義とそのデータがデータベースにリレーショナル形式で格納されます。このオプションを選択すると、リレーショナル実装またはROLAP実装を使用するディメンションを作成できます。
リレーショナル記憶域の方が望ましいのは、大量の詳細データを格納する場合、または大量のデータが頻繁にリフレッシュされる場合です。次のいずれかを実行する必要がある場合は、リレーショナル記憶域を使用してください。
コール詳細レコード、販売時点(POS)レコード、および他のトランザクション指向データなどの詳細情報の格納。
短い間隔での大量のデータのリフレッシュ。
受注詳細リストなどの詳細レポートの作成。
データ・モデルでの変更にさらに柔軟性を必要とする非定型問合せ。
通常、オペレーショナル・データ・ストアおよびエンタープライズ・データ・ウェアハウスは、リレーショナル記憶域を使用して実装されます。次に、このリレーショナル実装から多次元実装を導出し、様々な分析タイプを実行できます。
ディメンションに対してリレーショナル実装を選択すると、Warehouse Builderにより、ディメンション・データの格納に使用する実装表が作成されます。ディメンションのデフォルト実装では、スター・スキーマが使用されます。これは、ディメンションの全レベルのデータが単一のデータベース表に格納されることを意味します。
多次元記憶域(MOLAP) Warehouse Builderでは、ディメンション定義とディメンション・データがデータベースのアナリティック・ワークスペースに格納されます。このオプションを選択すると、MOLAP実装を使用するディメンションを作成できます。
多次元記憶域の方が望ましいのは、分析用の集計データを格納する場合です。通常、多次元記憶域の場合はデータを事前に計算および集計する必要があるため、リフレッシュ間隔はリレーショナル記憶域よりも長くなります。また、集計レベルが上位であるため、データ量は小さくなるのが普通です。次の操作を実行するには、多次元記憶域を使用します。
傾向分析、what-if分析、またはデータの予測および割当てなどの拡張分析。
一定の問合せパターンを持ち、適切に定義された一貫性のあるデータ・モデルを使用する定数分析。
MOLAP実装を選択すると、Warehouse Builderにより、ディメンションはそれが属するOracleモジュールと同じ名前を使用するアナリティック・ワークスペースに格納されます。アナリティック・ワークスペースを格納する表領域は、ディメンション・メタデータを含む、スキーマ用のユーザー表領域として定義された表領域です。
注意: ディメンションをOLAPカタログに配布する際の特定の制限については、Oracle Warehouse Builderリリース・ノートを参照してください。 |
ディメンション属性ページを使用してディメンション属性を定義します。1つのディメンション属性を、ディメンション内の1つ以上のレベルに適用できます。デフォルトでは、Warehouse Builderにより、ディメンションごとにID、名前および説明の各属性が作成されます。ID属性は名前変更または削除できます。
ディメンション属性ごとに次の詳細を指定します。
名前: ディメンション属性名です。属性名はディメンション内で一意である必要があります。
説明: ディメンション属性の説明(オプション)を入力します。
識別子: ディメンション属性のタイプを選択します。次のオプションから1つを選択します。
サロゲート: 属性がディメンションのサロゲート識別子であることを示します。
ビジネス: 属性がディメンションのビジネス識別子であることを示します。
親: 値ベースの階層では、属性が属性の親値を格納する属性を示します。ディメンションのMOLAP実装を選択した場合のみ、値ベースの階層を作成できます。
属性が通常のディメンション属性の場合は、このフィールドを空白のままにします。
「識別子」リストに表示されるオプションは、ディメンションのタイプによって異なります。リレーショナル実装またはROLAP実装を使用してディメンションを作成すると、「サロゲート」オプションまたは「ビジネス」オプションのみが表示されます。MOLAPディメンションの場合は、「ビジネス」オプションおよび「親」オプションが表示されます。
データ型: ドロップダウン・リストからディメンション属性のデータ型を選択します。
注意: MOLAP実装では、BLOB、Interval Day to Second、Interval Year to Month、RAW、Timestamp with Time Zone、Timestamp with Local Time Zoneの各データ型はサポートされていません。 |
長さ: 文字データ型の場合、属性の長さを指定します。
精度: 数値データ型の場合、列に使用できる合計桁数を定義します。
スケール: 数値データ型の場合、小数点以下の合計桁数を定義します。
秒精度: 日時フィールドの小数部の桁数を表します。0から9までの数値を入力できます。秒精度はTIMESTAMPデータ型に対してのみ使用されます。
記述子: 記述子のタイプを選択します。オプションは、「簡単な説明」、「詳細な説明」、「終了日」、「期間」、「前回の期間」および前年度の期間です。
MOLAP実装の場合は、記述子がきわめて重要です。たとえば、時系列分析を可能にするには、カスタム時間ディメンションに「期間」と「終了日」が必要です。
レベル・ページでは、ディメンションにおける集計レベルを定義します。ディメンションには、1つ以上のレベルが必要です。ただし、値ベース階層にはレベルがありません。値ベース階層を作成するにはデータ・オブジェクト・エディタを使用します。
レベル・ページに次の詳細を入力します。
名前: レベル名です。レベル名はディメンション内で一意である必要があります。
説明: レベルの説明(オプション)を入力します。
親レベルが子レベルの上位に表示されるように、ディメンション内のレベルをリストします。レベルがこの順序で表示されるように、矢印キーを使用してレベルを移動します。
Warehouse Builderでは、レベル・ページで表示されるのと同じ順序でレベルを含むSTANDARDという名前のデフォルト階層が作成されます。各レベルの親キー参照の格納に使用される属性も作成されます。リレーショナル・ディメンションまたはROLAPディメンションの場合、Warehouse Builderでは、サロゲート識別子用の属性とビジネス識別子用の属性の2つの属性が作成され、各レベルの親レベルに対応します。MOLAPディメンションの場合、レベルごとに1つの属性が作成され、親レベルのビジネス識別子に対応します。
たとえば、製品ディメンションには、「合計」、「グループ」および製品の各レベルが含まれます。リレーショナル実装またはROLAP実装を選択した場合、Warehouse Builderでは、製品レベルと「グループ」レベルの両方で2つの属性が作成され、親レベルのサロゲート識別子とビジネス識別子を参照します。MOLAP実装を選択した場合、Warehouse Builderでは、製品レベルと「グループ」レベルの両方で1つの属性が作成され、親レベルのビジネス識別子を参照します。
図13-1に示すレベル属性ページでは、各ディメンション・レベルのレベル属性を定義します。レベル属性を定義するには、レベルに適用するディメンション属性を選択します。ディメンション属性は、ディメンションの作成ウィザードのディメンション属性ページで定義されます。
レベル属性ページには、「レベル」および「レベル属性」という2つのセクションがあります。
レベル 「レベル」セクションには、ディメンションの作成ウィザードのレベル・ページで定義したレベルがすべてリストされます。このセクションでレベルを選択し、このレベルで実装するディメンション属性を指定します。レベル名をクリックしてレベルを選択します。
レベル属性 「レベル属性」セクションには、ディメンション属性ページで定義したディメンション属性がすべてリストされます。レベルごとに、そのレベルで実装するディメンション属性を選択します。ディメンション属性が1レベルで実装されるように指定するには、ディメンション属性に対して「適用可能」オプションを選択します。レベル属性名は、ディメンション属性名と異なってもかまいません。「レベル属性名」フィールドを使用して、レベル属性名を指定できます。
たとえば、ディメンション属性の「ID」、「名前」、「説明」および「予算」を「都道府県」レベルで実装するように指定する手順は、次のとおりです。
「レベル」セクションで「都道府県」レベルを選択します。
「レベル属性」セクションで、属性「ID」、「名前」、「説明」および「予算」に対して「適用可能」オプションを選択します。
Warehouse Builderでは、デフォルトで次のデフォルトが使用されます。
属性「ID」、「名前」および「説明」は、すべてのレベルに適用できます。
ディメンション内の最下位レベルにはすべてのディメンション属性を適用できます。
この機能を使用するには、Warehouse BuilderのEnterprise ETLオプションが必要です。
緩やかに変化するディメンション・ページを使用すると、ディメンションで使用される、緩やかに変化するポリシーのタイプを定義できます。このページが表示されるのは、記憶域タイプ・ページで「リレーショナル記憶域(ROLAP)」を選択した場合のみです。緩やかに変化するディメンションの概念の詳細は、「緩やかに変化するディメンションについて」を参照してください。
緩やかに変化するポリシーについて次のオプションを1つ選択します。
タイプ1: 履歴を保存しない: これはデフォルトで選択されています。Warehouse Builderにより、履歴を格納しないディメンションが作成されます。これは通常のディメンションです。
タイプ2: 変更履歴をすべて格納: このオプションを選択して、タイプ2の緩やかに変化するディメンションを作成します。Warehouse Builderでは、次の2つのディメンション属性が追加作成され、タイプ2のSCDの最下位レベルに適用できます。
有効日
有効期限
サロゲート識別子およびビジネス識別子を除き、タイプ2のSCDの最下位レベルの属性は、すべてトリガー属性として定義されます。
注意: 記憶域のタイプがMOLAPの場合、タイプ2またはタイプ3の緩やかに変化するディメンションを作成できません。 |
タイプ3: 元の値のみ格納: このオプションを選択すると、タイプ3の緩やかに変化するディメンションが作成されます。Warehouse Builderでは、サロゲートIDおよびビジネスIDを除き、最下位レベルの全レベル属性は、バージョニングする必要があるとみなされます。バージョニングするレベル属性ごとに、Warehouse Builderにより、以前の属性値を格納する属性が追加作成されます。
作成前の設定ページには、ディメンションの作成ウィザードの前のページで選択したオプションのサマリーが表示されます。これには、ディメンションに使用する属性、レベル、階層、記憶域タイプおよび緩やかに変化するポリシーが含まれます。Warehouse Builderでは、これらの設定を使用してタイムアウト定義とディメンションを実装するデータベース表が作成されます。また、ディメンション属性が属性データを格納する表列にバインドされます。
ディメンションの実装に進むには「次へ」をクリックします。前に選択したオプションを変更するには戻るをクリックします。
注意: このページには、実装とオブジェクトのサマリーが表示されるため、慎重に確認してください。 |
ディメンション作成の進行状況ページには、作成前の設定ページで開始したディメンション実装の進行状況が表示されます。このページの「メッセージ・ログ」セクションには、ディメンション実装中に完了したタスクに関する情報が個別に表示されます。次に進むには、「次へ」をクリックします。
サマリー・ページには、ディメンションの作成ウィザードを使用して選択したオプションの簡潔なサマリーが表示されます。サマリー・ページを使用して、選択したオプションを確認します。ディメンションを作成するには「終了」をクリックします。完全に機能するディメンションを使用できるようになります。このディメンションは、プロジェクト・エクスプローラの「ディメンション」ノードの下に表示されます。
Warehouse Builderにより、リポジトリで次のメタデータが作成されます。
ディメンション・オブジェクト
ディメンション・データを格納する表
リレーショナル実装の場合、ディメンション・データを格納するデータベース表が作成されます。ディメンション内の属性は、Warehouse Builderにより、値の格納に使用されるデータベース列にバインドされます。
MOLAP実装の場合、ディメンション・データを格納するアナリティック・ワークスペースが作成されます。
全ディメンション・レベルのサロゲート識別子の生成に使用されるデータベース順序
Warehouse Builderでは、これらのオブジェクト自体ではなくその定義がリポジトリ内で作成されることに注意してください。
ディメンションの配布 ターゲット・スキーマにディメンションを作成するには、ディメンションを配布する必要があります。ROLAPディメンションの場合は、ディメンションを配布する前に、順序と実装表を配布してください。これらのオブジェクトをすべて同時に配布することもできます。詳細は、「ディメンション・オブジェクトのMOLAP実装」を参照してください。
注意: ディメンションを削除しても、順序、データベース表またはアナリティック・ワークスペースなどの関連オブジェクトは削除されません。これらのオブジェクトは明示的に削除する必要があります。 |
ディメンションの作成ウィザードを使用してディメンションを作成する場合、作成に使用する属性の一部についてはWarehouse Builderによりデフォルト値が設定されます。以降の各項で、使用されるデフォルトについて説明します。
リレーショナル記憶域の場合、Warehouse Builderではデフォルトの実装方法としてスター・スキーマが使用されます。
多次元記憶域を選択すると、ディメンションはそれが定義されているOracleモジュールと同じ名前のアナリティック・ワークスペースに格納されます。アナリティック・ワークスペースが存在しない場合は、Warehouse Builderにより作成されます。アナリティック・ワークスペースは、Oracleモジュールを所有するスキーマのユーザー表領域に格納されます。
Warehouse Builderでは、表13-1に示すプロパティを使用してデフォルトのディメンション属性が作成されます。
さらに属性を追加できます。ディメンションを有効にするには、サロゲート識別子とビジネス識別子を定義する必要があります。
Warehouse Builderでは、ディメンションの作成ウィザードのレベル・ページに表示されたレベルをすべて含んだSTANDARDというデフォルト階層が作成されます。この階層では、各レベルがレベル・ページに表示されるのと同じ順序で使用されます。
ディメンション内で定義されている各レベルに、「ID」、「名前」および「説明」の各属性を適用できます。ディメンションの最下位レベルには、すべてのディメンション属性を適用できます。最下位レベルとは、レベル・ページで最後に定義されているレベルです。
タイプ2のSCDを作成すると、サロゲート識別子とビジネス識別子を除き、最下位レベルの属性がすべてバージョニング対象となります。各レコードの有効日と有効期限を格納するために、さらに2つの属性が作成されます。たとえば、「ディメンションの例」に示すProductsディメンションをタイプ2のSCDとして作成すると、属性UPC、Package_typeおよびPackage_sizeがバージョニング対象となります。Warehouse Builderでは、バージョニング対象レコードの有効日と有効期限を格納するために、EXPIRATION_DATEおよびEFFECTIVE_DATEというDATEデータ型の2つの属性が追加作成されます。
タイプ3のSCDの場合は、サロゲート識別子とプライマリ識別子を除き、最下位レベルのすべてのレベル属性がバージョニングされます。Warehouse Builderでは、各バージョニング対象属性の元の値を格納するために、属性が追加作成されます。さらに、有効日を格納するための属性も作成されます。たとえば、「ディメンションの例」に示すProductsディメンションをタイプ3のSCDとして作成すると、バージョニング対象属性の元の値を格納するために、PREV_DESCRIPTION、PREV_PACKAGE_TYPE、PREV_PACKAGE_SIZEおよびPREV_UPCという属性が追加作成されます。これらの属性のデータ型は、属性の現行値の格納に使用されるデータ型と同じです。また、バージョニング対象レコードの有効時間を格納するために、EFFECTIVE_TIME属性も作成されます。この属性にはDATEデータ型が使用されます。
ディメンションごとに、ディメンション・オブジェクトのみでなく特定の実装オブジェクトも作成されます。実装オブジェクトの数とタイプは、ディメンションの記憶域タイプに応じて異なります。
リレーショナル記憶域の場合は、次の実装オブジェクトが作成されます。
表: ディメンション・データを格納するために、ディメンションと同じ名前の表が作成されます。ディメンション・キー列に一意キーが作成されます。たとえば、CHANNELSというディメンションを定義すると、ディメンション・データの格納用にCHANNELSという表が作成されます。また、ディメンション・キー列にCHANNELS_DIMENSION_KEY_PKという一意キーも作成されます。
順序: リレーショナル記憶域を使用するディメンションの場合は、ディメンション・キー値をロードする順序が作成されます。たとえば、CHANNELSディメンションの場合はCHANNELS_SEQという順序が作成されます。
多次元記憶域の場合は、ディメンションを含むOracleモジュールと同じ名前のアナリティック・ワークスペースが存在しなければ、Warehouse Builderにより作成されます。たとえば、SALES_WHモジュールにPRODUCTSというディメンションを作成すると、そのディメンションはSALES_WHというアナリティック・ワークスペースに格納されます。この名前のアナリティック・ワークスペースが存在しなければ、このアナリティック・ワークスペースがWarehouse Builderにより作成されてからディメンションが格納されます。
時間ディメンションの場合は、記憶域タイプに関係なく、時間ディメンションをロードするマップが作成されます。マップ名は、ディメンション名の後に_MAPを付けたものです。たとえば、TIMESという時間ディメンションをロードするマップの名前はTIMES_MAPとなります。
データ・オブジェクト・エディタを使用すると、上級ユーザーは要件に従ってディメンションを作成できます。データ・オブジェクト・エディタはディメンションの編集にも使用できます。次のいずれかを実行する場合は、データ・オブジェクト・エディタを使用してディメンションを作成します。
スノーフレーク実装方法の使用
値ベース階層の作成
ディメンション・ロールの作成
階層内のレベルのスキップ
既存のデータベース表またはビューを使用したディメンション・データの格納(手動バインド)
データ・オブジェクト・エディタを使用してディメンションを定義する手順は、次のとおりです。
Warehouse Builderのプロジェクト・エクスプローラから、「データベース」ノード、続いて「Oracle」ノードを展開します。
ディメンションを作成するターゲット・モジュールを開きます。
「ディメンション」を右クリックして「新規」→「エディタを使用」を選択します。
「新規または既存のディメンションを追加」ダイアログが表示されます。
「新規ディメンションの作成」オプションを選択します。ディメンション名を入力し、ディメンションが属するモジュールを選択します。
「OK」をクリックします。
データ・オブジェクト・エディタが表示されます。ディメンションを定義するには、「ディメンション詳細」パネルの次のタブに情報を入力します。
データ・オブジェクト・エディタを使用してリレーショナル実装を持つディメンションを作成する場合、ディメンション・データを格納する物理構造がWarehouse Builderにより自動的に作成されることはありません。これらの構造を作成する必要があります。
リレーショナル実装を持つディメンションの場合は、ディメンションの属性を、そのデータを格納するデータベース列にバインドします。「属性のバインド」を参照してください。
「名前」タブを使用してディメンションを記述します。また、このタブでディメンションのタイプとロールも指定します。
「名前」フィールドはディメンション名を表します。ディメンション名は、モジュール内で一意である必要があります。「説明」フィールドを使用して、ディメンションの説明(オプション)を入力します。
ディメンション・ロール 「ディメンション・ロール」セクションを使用してディメンション・ロールを定義します。ディメンション・ロールの詳細は、「ディメンション・ロール」を参照してください。ディメンション・ロールごとに次の情報を定義します。
名前: ディメンション・ロール名を表します。
説明: ディメンション・ロールの説明(オプション)を指定します。
「記憶域」タブを使用して、ディメンションの記憶域のタイプを指定します。選択可能な記憶域オプションについては、以降の各項を参照してください。
リレーショナル: 関係データ構造 ディメンションとディメンション・データをデータベースにリレーショナル形式で格納するには、「リレーショナル」オプションを選択します。このオプションを使用すると、リレーショナル実装またはROLAP実装を使用するディメンションが作成されます。
リレーショナル記憶域の場合は、次のディメンション実装方法から1つ選択できます。
スター・スキーマ: スター・スキーマを使用してディメンションを実装します。これは、ディメンション・データが1つのデータベース表またはビューに格納されることを意味します。
スノーフレーク・スキーマ: スノーフレーク・スキーマを使用してディメンションを実装します。このディメンション・データは、複数のデータベース表またはビューに格納されます。
手動: ディメンションの属性を、そのデータを格納するデータベース・オブジェクトに明示的にバインドする必要があります。
自動バインドを実行する場合、Warehouse Builderではこれらの記憶域設定が使用されます。
「複合一意キーの作成」をクリックして、全レベルのビジネス識別子の複合一意キーを作成します。たとえば、ディメンションが3レベルで構成される場合は、複合一意キーを作成すると、3レベルすべてのビジネス識別子を含む一意キーが1つ作成されます。複合一意キーの作成により、ディメンション・レコードがディメンション全体のデータベース・レベルで一意であることが規定されます。
MOLAP: 多次元データ構造 ディメンションとディメンション・データをデータベースに多次元形式で格納するには、「MOLAP」オプションを選択します。このオプションを使用すると、MOLAP実装を使用するディメンションが作成されます。ディメンション・データはアナリティック・ワークスペースに格納されます。
次の各フィールドに値を入力します。
AW名: ディメンション・データを格納するアナリティック・ワークスペースの名前を入力します。または、省略記号のボタンをクリックして、現行のプロジェクト内のMOLAPオブジェクトのリストを表示できます。プロジェクト内のモジュールごとに1ノードが表示されます。モジュールを開き、モジュール内のディメンション・オブジェクトのリストを表示します。リストからオブジェクトを選択すると、そのオブジェクトと同じアナリティック・ワークスペースにディメンションが格納されます。
AW表領域名: アナリティック・ワークスペースが格納される表領域の名前を入力します。
複数の階層を持つディメンションの場合は、集計レベル(ベースよりも上のレベル)に同じソース列を使用できる場合があります。その場合は、「アナリティック・ワークスペースでサロゲート・キーを生成」オプションを選択します。ロード操作中に、それぞれの値に接頭辞としてレベル名が追加されます。すべてのディメンション・メンバーが一意であることが確実な場合を除き、このオプションを選択することをお薦めします。
各ディメンション・メンバーがレベル間で一意であることが確実な場合は、ソースと同じ名前をアナリティック・ワークスペースで使用できます。たとえば、リレーショナル・スキーマで数値サロゲート・キーを使用して一意性を保証する場合、アナリティック・ワークスペースに新規サロゲート・キーを作成する必要はありません。「データ・ソースの自然キーを使用」オプションを選択すると、ソースと同じ自然キーをアナリティック・ワークスペースで使用できます。
注意: ディメンションを編集して「記憶域タイプ」をROLAPからMOLAPに変更すると、Warehouse Builderではサロゲート識別子のデータ型がVARCHAR2に変更されます。 |
「属性」タブを使用してディメンション属性を定義します。「属性」タブには「順序」および「ディメンション属性」という2つのセクションがあります。
順序 順序を選択する必要があるのは、リレーショナル実装を持つディメンションの場合のみです。「順序」フィールドを使用して、ディメンション・キー列に移入するデータベース順序の名前を指定します。このフィールドの右にある「選択」をクリックすると、「利用可能な順序」ダイアログが表示されます。このダイアログには、プロジェクトのモジュールごとにノードが1つ表示されます。モジュール・ノードを開いて、モジュールに含まれている順序を表示します。表示されたリストから順序を選択します。
ディメンション属性: 「ディメンション属性」セクションを使用して、ディメンション属性の詳細を定義します。詳細は、「ディメンション属性ページ」を参照してください。
「レベル」タブを使用して、ディメンションの各レベルのレベル属性を定義します。また、このタブを使用すると値ベース階層も作成できます。値ベース階層を作成するには「値ベース」オプションを選択します。値ベース階層を持つディメンションに含めることができるのは、1レベルのみです。
レベル属性を定義する前に、「ディメンション属性」タブでディメンション属性の定義を完了していることを確認します。レベルのレベル属性を定義するには、レベルで実装するディメンション属性を選択する必要があります。「レベル」タブには、「レベル」および「レベル属性」という2つのセクションがあります。
レベル: 「レベル」セクションには、ディメンションのレベルが表示されます。レベルごとに次の詳細を入力します。
名前: ディメンション・レベル名を入力します。レベル名はディメンション内で一意である必要があります。
説明: レベルの説明(オプション)を入力します。
レベル属性 「レベル属性」セクションには、「属性」タブで定義したディメンション属性がすべて表示されます。このセクションで指定した値は、「レベル」セクションで選択したレベルに適用可能です。「レベル属性」セクションの内容は、次のとおりです。
ディメンション属性名: ディメンション属性名を表します。
適用可能: 「レベル」セクションで選択したレベルでこのディメンション属性を実装する場合は、「適用可能」オプションを選択します。
レベル属性名: レベル属性名を表します。このフィールドを使用し、レベル属性名としてディメンション属性名とは異なる名前を指定します。このフィールドはオプションです。名前を指定しなければ、レベル属性名はディメンション属性名と同じになります。
説明: レベル属性の説明(オプション)を指定します。
たとえば、「グループ」レベルでディメンション属性「ID」、「名前」および「説明」を実装するように指定します。
「レベル」セクションで「グループ」レベルを選択します。
「レベル属性」セクションで、属性「ID」、「名前」および「説明」に対して「適用可能」オプションを選択します。
「階層」タブを使用してディメンション階層を作成します。図13-2に示すように、「階層」タブには「階層」および「レベル」という2つのセクションがあります。
階層 「階層」セクションを使用してディメンション内の階層を定義します。階層ごとに次を定義します。
階層: 階層名を表します。新規階層を作成するには、このフィールドに階層名を入力します。
値ベース: 値ベース階層を作成するには、このオプションを選択します。値ベース階層にレベルはなく、親識別子として識別された属性が必要です。値ベース階層を作成できるのはMOLAPディメンションの場合のみのため、このオプションは「記憶域」タブで「MOLAP: 多次元データ構造」を選択した場合にのみ表示されます。値ベース階層の詳細は、「値ベース階層」を参照してください。
説明: 階層の説明(オプション)を入力します。
デフォルト: ディメンションのデフォルト階層の場合は、「デフォルト」オプションを選択します。ディメンションに複数の階層がある場合、問合せツールではデフォルト階層が表示されます。最も使用頻度の高い階層をデフォルト階層として設定することをお薦めします。
階層を削除するには、「階層」フィールドの左にあるセルを右クリックして「削除」を選択します。また、「階層」フィールドの左にあるセルをクリックして階層を選択し、「削除」ボタンを押す方法もあります。
階層の作成時には、レベルごとに親レベルの参照を格納する属性を作成してください。リレーショナル・ディメンションまたはROLAPディメンションの場合は、各レベルのサロゲート識別子参照とビジネス識別子参照を格納するために属性を2つ作成します。MOLAPディメンションの場合は、レベルごとに親レベルのビジネス識別子への参照を格納するために属性を1つ作成します。
レベル 「レベル」セクションには、データ・オブジェクト・エディタの「レベル」タブで定義したレベルがすべて表示されます。このセクションを使用して、各階層で使用するレベルを指定します。「レベル」セクションの内容は、次のとおりです。
レベル: レベル名を表します。ドロップダウン・リストをクリックすると、ディメンションに定義されているレベルがすべて表示されます。
スキップ先レベル: 「レベル」フィールドが示すレベルの親レベルを表します。このフィールドを使用してスキップ・レベル階層を定義します。
たとえば、Productsディメンションには次の階層が含まれています。
TOTAL > PRODUCT
この階層には、「グループ」レベルはありません。そのため、「PRODUCT」レベルは「グループ」レベルをスキップし、親として「TOTAL」レベルを使用する必要があります。この階層を作成するには、「レベル」フィールドで「PRODUCT」レベルを選択し、「スキップ先レベル」ドロップダウン・リストから「TOTAL」を選択します。
「レベル」セクションの左にある矢印を使用して、セクション内の各レベルの表示順序を変更します。
このタブを使用して、ディメンションで実装する穏やかな変化方針のタイプを指定します。緩やかに変化するディメンションを作成できるのは、リレーショナル実装を使用するディメンションの場合のみのため、このタブのオプションは「記憶域」タブで「リレーショナル: 関係データ構造」を選択した場合にのみ有効化されます。穏やかな変化方針について選択できるオプションは、次のとおりです。
タイプ1: 履歴を保存しない: 履歴を格納しない標準ディメンションを作成します。
タイプ2: 変更履歴をすべて格納: タイプ2のSCDを作成するには、このオプションを選択します。「設定」をクリックし、「タイプ2のSCDの作成」の説明に従って、レベルごとにトリガー属性、有効日および有効期限などの詳細を追加指定します。
タイプ3: 元の値のみ格納: タイプ3のSCDを作成するには、このオプションを選択します。「設定」をクリックし、「タイプ3のSCDの作成」の説明に従って、有効日やバージョニング対象属性の元の値の格納に使用する属性などの詳細を追加指定します。
注意: 記憶域のタイプにMOLAPを指定した場合、タイプ2またはタイプ3の緩やかに変化するディメンションを作成できません。 |
データ・オブジェクト・エディタを使用してタイプ2またはタイプ3のSCDを作成する場合は、有効日と有効期限を格納するディメンション属性を作成し、必要なレベルに適用する必要があります。
「データ・ビューア」タブを使用してディメンション・データを表示します。「実行」ボタンをクリックすると、ディメンションのデータ・ビューアが表示されます。データ・ビューアには、ディメンションの全レベルおよび階層に格納されているデータが表示されます。ディメンションに格納されているデータを表示する前に、ディメンションの配布と、そのディメンションをロードするマップの実行を完了していることを確認してください。
ディメンション構造を定義した後、ディメンション・データを格納するデータベース表またはビューの詳細を指定する必要があります。ディメンション属性とデータ格納先データベース列とのバインドについて、次のオプションを1つ選択できます。
自動バインド
手動バインド
自動バインド 自動バインドを実行すると、Warehouse Builderによりディメンション内の属性がそのデータを格納するデータベース列に自動的にマップされます。
自動バインドを実行するには、データ・オブジェクト・エディタで「オブジェクト」→「バインド」を選択します。また、グラフィカル・キャンバスの「実装」タブでディメンション・オブジェクトを右クリックして「バインド」を選択する方法もあります。自動バインド・ルールの詳細は、「自動バインド」を参照してください。
手動バインド 手動バインドの場合は、ディメンションの各レベルの属性を、そのデータを格納するデータベース列に明示的にバインドする必要があります。既存の表にバインドする方法と、新規表を作成してその表にバインドする方法があります。
手動バインドを実行する手順は、次のとおりです。
データ・オブジェクト・エディタの「ディメンショナル」タブで、ディメンションを右クリックして「詳細の表示」を選択します。
「実装」タブが表示されます。このタブにディメンションが表示されます。
ディメンション・データ格納用のデータベース・オブジェクトを表す演算子をドラッグ・アンド・ドロップします。
たとえば、ディメンション・データが表に格納される場合は、「新規または既存の表を追加」アイコンを「実装」キャンバスにドラッグ・アンド・ドロップします。「新規または既存の表を追加」ダイアログが表示されます。ディメンション・データを格納するには、既存の表を選択するか、新規の表を作成する必要があります。
ディメンション・データの格納に使用するデータベース・オブジェクトの数だけ手順2を繰り返します。たとえば、ディメンション・データが3つのデータベース表に格納される場合は、手順2を3回繰り返します。
ディメンションの各属性を、そのデータを格納するデータベース列にバインドします。
ディメンションを定義してバインドを実行(ROLAPディメンションの場合のみ)した後、そのディメンションおよび関連オブジェクトを配布する必要があります。ディメンションの配布の詳細は、「ディメンションの配布」を参照してください。
SCDを作成するには、ディメンション・ウィザードを使用する方法とデータ・オブジェクト・エディタを使用する方法があります。タイプ2またはタイプ3のSCDを作成するには、Warehouse Builder Enterprise ETLオプションが必要です。
ディメンション・ウィザードを使用してSCDを作成するには、このウィザードの緩やかに変化するディメンション・ページを使用します。このページでは、作成するSCDのタイプのみを指定します。Warehouse Builderでは、他のすべての必須パラメータにデフォルト値が想定されます。緩やかに変化するディメンション・ページの詳細は、「緩やかに変化するディメンション・ページ」を参照してください。
「データ・オブジェクト・エディタ」を使用してSCDを作成するには、次の各項を参照してください。
タイプ2のSCDには、各属性とレベルの関係を表す値の全履歴が格納されます。タイプ2のSCDを作成できるのは、リレーショナル実装を持つディメンションの場合のみです。
データ・オブジェクト・エディタを使用してタイプ2のSCDを作成するには、次の属性を定義します。
履歴保存をトリガーする属性
有効日と有効期限を格納する属性
データ・オブジェクト・エディタを使用してタイプ2のSCDを作成する手順は、次のとおりです。
Warehouse Builderのプロジェクト・エクスプローラで、「データベース」ノードと「Oracle」ノードを順番に開きます。
タイプ2のSCDを作成するターゲット・モジュールを開きます。
「ディメンション」を右クリックして「新規」→「エディタを使用」を選択します。
「「名前」タブ」の説明に従って、データ・オブジェクト・エディタの「名前」タブに情報を入力します。
「属性」タブで、有効日と有効期限を格納する2つの属性をレベルごとに追加作成します。属性の作成の詳細は、「「属性」タブ」を参照してください。
データ・オブジェクト・エディタの次のタブで情報を入力します。
「緩やかな変化」タブで、「タイプ2: 変更履歴をすべて格納」オプションを選択します。
このオプションの右にある「設定」をクリックします。
「タイプ2穏やかな変化方針」ダイアログが表示されます。「「タイプ2緩やかに変化するディメンション」ダイアログ」の説明に従って、タイプ2のSCDの詳細を指定します。
データ・オブジェクト・エディタの「記憶域」タブで情報を入力します。
図13-3に示す「タイプ2緩やかに変化するディメンション」ダイアログを使用して、有効日属性、有効期限属性およびバージョニング対象属性を指定します。このダイアログには、「レベル」、「識別属性」、「データ型」および「レコード履歴」の各列を含む表が表示されます。
レベル: ディメンション内のレベルを表します。レベル・ノードを拡張し、レベル属性を表示します。
識別属性: レベル属性を表します。
データ型: レベル属性のデータ型を表します。
レコード履歴: このドロップダウン・リストを使用して、属性がバージョニング対象であるかどうか、またはレベル・レコードの有効日や有効期限が格納されるかどうかを指定します。
トリガー履歴: 属性をバージョニングする必要がある場合は、このオプションを選択します。
有効日: 属性にレベル・レコードの有効日の値が格納される場合は、このオプションを選択します。
有効期限: 属性IDにレベル・レコードの有効期限が格納される場合は、このオプションを選択します。
レベルのサロゲートIDとビジネスIDはバージョニングできません。
たとえば、図13-3では、有効日と有効期限を格納する属性は、それぞれEFFECTIVE_TIMEおよびEXPIRATION_TIMEです。これらのディメンション属性を作成し、「製品」レベルに適用する必要があることに注意してください。属性PACKAGE_TYPEはバージョニングする必要があります。そのため、この属性については、「トリガー履歴」プロパティで「レコード履歴」オプションを選択します。PACKAGE_TYPE属性の値が変更されると、既存のレコードがクローズされ、最新の値を使用した新規レコードが作成されます。
タイプ3のSCDには、選択した特定の属性について値のバージョンが2つ格納されます。タイプ3のSCDを作成できるのは、リレーショナル実装を持つディメンションの場合のみです。次の属性を指定します。
バージョニング対象の属性
各バージョニング対象属性の元の値を格納する属性
バージョニング対象属性ごとに、その属性の元の値を格納する属性を追加作成する必要があります。たとえば、Population属性をバージョニングする場合は、人口の元の値を格納するための属性を追加作成します。
Warehouse Builderを使用してタイプ3のSCDを作成する手順は、次のとおりです。
Warehouse Builderのプロジェクト・エクスプローラで、「データベース」ノードと「Oracle」ノードを順番に開きます。
タイプ3のSCDを作成するターゲット・モジュールを開きます。
「ディメンション」を右クリックして「新規」→「エディタを使用」を選択します。
「「名前」タブ」の説明に従って、データ・オブジェクト・エディタの「名前」タブで情報を入力します。
「「属性」タブ」の説明に従って、「属性」タブで、レベルの属性の有効期限を格納する属性をレベルごとに追加作成します。
Productsディメンションのpackage_typeおよびpackage_size属性の元の値を格納する必要がある例を考えてみます。この場合は、これらの属性の元の値を格納するために、2つの新規属性prev_package_typeおよびprev_package_sizeを作成します。
データ・オブジェクト・エディタの次のタブで情報を入力します。
「緩やかな変化」タブで、「タイプ3: 元の値のみ格納」オプションを選択します。このオプションの右にある「設定」をクリックします。
「タイプ3穏やかな変化方針」ダイアログが表示されます。「「タイプ3緩やかに変化するディメンション」ダイアログ」の説明に従って、このダイアログでタイプ2のSCDの詳細を指定します。
データ・オブジェクト・エディタの「記憶域」タブで情報を入力します。
図13-4に示す「タイプ3緩やかに変化するディメンション」ダイアログを使用して、実装詳細を指定します。このダイアログを使用して、有効日を格納する属性、バージョニングが必要な属性およびバージョニング対象属性の前の値を格納する属性を選択します。
このダイアログには、「レベル」、「識別属性」、「前の属性」および「レコード履歴」の4列を含む表が表示されます。
レベル: ディメンション内のレベルが表示されます。レベル・ノードを拡張してレベル属性を表示します。
識別属性: レベル属性を表します。
前の属性: バージョニング対象属性の前の値を格納する属性を表します。ドロップダウン・リストを使用して、前の値属性を選択します。前の値属性を指定するのは、バージョニング対象属性の場合のみです。バージョニング対象属性の前の値を格納する属性は明示的に作成する必要があります。また、これらの属性をディメンション属性として作成し、必要なレベルに適用します。
有効: 属性に有効日が格納されるかどうかを示します。属性に有効日が格納される場合は、「有効」ドロップダウン・リストから「有効日」を選択します。
レベルのサロゲートIDはバージョニングできません。
穏やかな変化方針が図13-4に示すように設定されているタイプ3のSCD、「製品」を考えます。EFFECTIVE_TIME属性には、「製品」レベルのレコードの有効日が格納されます。「製品」レベルのPACKAGE_TYPE属性はバージョニングする必要があります。この属性の前の値を格納する属性は、「前の属性」プロパティで表されるPREVIOUS_PACKAGE_TYPEです。PACKAGE_TYPE属性の値が変更されると、Warehouse Builderでは次の操作が実行されます。
PACKAGE_TYPE属性の既存の値である、PREVIOUS_PACKAGE_TYPE属性が移動されます。
PACKAGE_TYPE属性に新規の値を移入して格納します。
「データ・オブジェクト・エディタ」を使用して、ディメンションの定義を編集します。ディメンション定義の編集時には、オブジェクトのメタデータのみが変更されます。物理オブジェクトの定義を更新するには、「コントロール・センター」を使用して変更後のディメンションを配布します。
SCDの作成後は、「データ・オブジェクト・エディタ」でSCDのタイプを変更できません。
ディメンション定義を編集するには、次のいずれかの方法でデータ・オブジェクト・エディタを開きます。
プロジェクト・エクスプローラで、ディメンションを右クリックして「エディタを開く」を選択します。
プロジェクト・エクスプローラで、ディメンションをダブルクリックします。
データ・オブジェクト・エディタの各タブを使用して、ディメンションの定義を変更します。データ・オブジェクト・エディタの各タブの詳細は、「データ・オブジェクト・エディタの使用」を参照してください。
ディメンションの構成時には、ディメンションと基礎となる表の両方を構成します。
ディメンションの物理プロパティを構成する手順は、次のとおりです。
プロジェクト・エクスプローラで、ディメンション名を右クリックして「構成」を選択します。
構成プロパティ・ウィンドウが表示されます。
次のディメンション・プロパティを構成します。
配布可能: このディメンションを配布する場合は「TRUE」を選択します。Warehouse Builderにより、配布可能マークが付いた表制約についてのみスクリプトが生成されます。
配布オプション: 「すべて配布」、「データ・オブジェクトのみ配布」、「カタログにのみ配布」の各オプションから1つ選択します。配布オプションの詳細は、「ディメンションの配布オプション」を参照してください。
ビュー名: ディメンション・データを格納する実装表の制御行を非表示にするために作成されるビューの名前を指定します。これは、スター・スキーマを使用するリレーショナル・ディメンションまたはROLAPディメンションに適用可能です。ビュー名を明示的に指定しなければ、ディメンション名に接尾辞_vを付けた名前がデフォルトのビュー名として使用されます。
リレーショナル実装またはROLAP実装を使用するディメンションの場合は、実装表を構成することもできます。詳細は、「表の構成」を参照してください。
「配布オプション」構成プロパティを使用して、ディメンション・メタデータの配布方法を指定します。ディメンションに対して選択できるオプションは、次のとおりです。
このプロパティに設定できるオプションは、次のとおりです。
すべて配布
データ・オブジェクトのみ配布
カタログにのみ配布
これらのオプションの詳細は、「ディメンション・オブジェクトの配布」を参照してください。
Warehouse Builderには、次の2つのキューブ作成方法が用意されています。
キューブの作成ウィザードを使用して、基本キューブをすばやく作成します。Warehouse Builderでは、ほとんどのパラメータにデフォルト値が想定され、キューブ・データを格納するデータベース構造が作成されます。
集計方法や依存性解決順序など、特定の拡張オプションを指定する必要がある場合は、データ・オブジェクト・エディタを使用してキューブを作成します。キューブの作成ウィザードの使用時には、これらのオプションは使用できません。
また、キューブの作成ウィザードを使用して、基本キューブ・オブジェクトをすばやく作成する方法もあります。作成後に、データ・オブジェクト・エディタを使用して他のオプションを指定します。
ウィザードを使用してキューブを作成する手順は、次のとおりです。
Warehouse Builderのプロジェクト・エクスプローラから、「データベース」ノード、続いて「Oracle」ノードを展開します。
キューブを作成するターゲット・モジュールを開きます。
「キューブ」を右クリックして「新規」→「ウィザードを使用...」を選択します。
キューブ・ウィザードのようこそページが表示されます。「次へ」をクリックして次ページに進みます。ウィザードに表示される指示に従って次の各ページを完了します。
名前と説明ページを使用してキューブを記述します。このページに次の詳細を入力します。
名前: Warehouse Builder内のキューブ名です。このキューブ名は、モジュール内で一意である必要があります。
説明: キューブの説明(オプション)を指定します。
記憶域タイプ・ページを使用して、キューブ用の記憶域のタイプを指定します。記憶域タイプにより、データベースにおけるキューブ・データの物理的な格納方法が決まります。記憶域タイプについて選択できるオプションは次のとおりです。
リレーショナル記憶域(ROLAP)
多次元記憶域(MOLAP)
記憶域タイプは、キューブ全体の最下位レベルに格納されるデータ量、および必要なリフレッシュ・レートに基づいて選択します。
リレーショナル記憶域(ROLAP)
Warehouse Builderでは、キューブ定義とそのデータがデータベースにリレーショナル形式で格納されます。このオプションを使用すると、リレーショナル実装またはROLAP実装を使用するキューブを作成できます。
リレーショナル記憶域の方が望ましいのは、大量の詳細データを格納する場合、または大量のデータが頻繁にリフレッシュされる場合です。次のいずれかを実行する必要がある場合は、リレーショナル記憶域を使用してください。
コール詳細レコード、販売時点(POS)レコード、および他のトランザクション指向データなどの詳細情報の格納。
短い間隔での大量のデータのリフレッシュ。
受注詳細リストなどの詳細レポートの作成。
通常、オペレーショナル・データ・ストアおよびエンタープライズ・データ・ウェアハウスは、リレーショナル記憶域を使用して実装されます。次に、このリレーショナル実装からMOLAP実装を導出し、様々な分析タイプを実行できます。
キューブに対してリレーショナル実装を選択すると、Warehouse Builderにより、キューブ・データの格納に使用する実装表が自動的に作成されます。
多次元記憶域(MOLAP)
Warehouse Builderでは、キューブ定義とキューブ・データがデータベースのアナリティック・ワークスペースに格納されます。このオプションを使用すると、MOLAP実装を使用するキューブを作成できます。
多次元記憶域の方が望ましいのは、分析用の集計データを格納する場合です。通常、多次元記憶域の場合はデータを事前に計算および集計する必要があるため、リフレッシュ間隔はリレーショナル記憶域よりも長くなります。また、集計レベルが上位であるため、データ量は小さくなるのが普通です。次の操作を実行するには、多次元記憶域を使用します。
傾向分析、what-if分析、またはデータの予測および割当てなどの拡張分析。
特定時点の結果を持つデータのドリルおよびピボット。
MOLAP実装を選択すると、Warehouse Builderにより、キューブをアナリティック・ワークスペースに格納するために使用される名前が生成されます。アナリティック・ワークスペースが存在しない場合は、Warehouse Builderにより、指定する名前を使用して作成されます。
ディメンション・ページでは、キューブのディメンションを定義します。キューブは、1つ以上のディメンションを参照する必要があります。ディメンションを定義するには、キューブが参照するディメンションを選択します。「検索」オプションを選択すると、ディメンションをディメンション名で検索できます。同じディメンションを使用して複数のキューブを定義できます。たとえば、ディメンションTIMESをSALESキューブとCOSTキューブで使用できます。
ディメンション・ページには、「使用可能なディメンション」および「選択したディメンション」という2つのセクションがあります。
使用可能なディメンション 「使用可能なディメンション」セクションには、Warehouse Builderリポジトリ内の全ディメンションがリストされます。プロジェクト内の各モジュールは個別のノードで表されます。モジュール・ノードを拡張し、そのモジュール内の全ディメンションを表示します。
「使用可能なディメンション」セクションに表示されるディメンションは、Warehouse Builderにより、そのディメンション用に選択した実装タイプに基づいてフィルタされます。記憶域タイプとしてROLAPを選択すると、Warehouse Builderにより、リレーショナル実装を持つディメンションのみがリストされます。記憶域タイプとしてMOLAPを選択すると、アナリティック・ワークスペースに格納されているディメンションのみがリストされます。
選択したディメンション: 「選択したディメンション」セクションには、「使用可能なディメンション」セクションで選択したディメンションがリストされます。右矢印を使用して、「使用可能なディメンション」リストから「選択したディメンション」リストにディメンションを移動します。
メジャー・ページを使用してキューブのメジャーを定義します。メジャーごとに次の詳細を指定します。
名前: メジャー名。メジャー名は、キューブ内で一意である必要があります。
説明: メジャーの説明(オプション)。
データ型: メジャーのデータ型を選択します。
注意: MOLAP実装では、BLOB、Interval Day to Second、Interval Year to Month、RAW、Timestamp with Time Zone、Timestamp with Local Time Zoneの各データ型はサポートされていません。 |
長さ: 長さは文字データ型に対してのみ指定されます。
精度: メジャーに使用できる合計桁数を定義します。精度は数値データ型に対してのみ定義されます。
スケール: 小数点以下の合計桁数を定義します。スケールは数値データ型に対してのみ定義されます。
秒精度: 日時フィールドの小数部の桁数を表します。0から9までの数値を入力できます。秒精度はTIMESTAMPデータ型に対してのみ使用されます。
式: このオプションを使用して計算済メジャーを定義できます。省略記号ボタンをクリックすると「式ビルダー」が表示されます。メジャーの計算に使用する式を定義します。
サマリー・ページを使用して、キューブ・ウィザードで指定したオプションを確認します。キューブの定義を完了するには「終了」をクリックします。このキューブは、「プロジェクト・エクスプローラ」の「キューブ」ノードの下に表示されます。
Warehouse Builderにより、リポジトリで次のメタデータが作成されます。
キューブ・オブジェクト。
キューブ・データを格納する表の定義。
リレーショナル実装またはROLAP実装の場合は、Warehouse Builderによりキューブ・データを格納するデータベース表の定義が作成されます。また、キューブ・データを格納する表に、キューブが参照するディメンションの関連データを格納する各データ・オブジェクトへの外部キーも作成されます。
MOLAP実装の場合は、Warehouse Builderによりキューブ・データを格納するアナリティック・ワークスペースが作成されます。このウィザードでは、これらのオブジェクトの定義がリポジトリに作成されるのみであることに注意してください。ターゲット・スキーマにオブジェクトが作成されることはありません。
キューブの配布 キューブおよび関連オブジェクトをターゲット・スキーマに作成するには、キューブを配布する必要があります。ROLAPキューブを配布する前に、キューブ・データを格納するデータベース表を正常に配布してください。または、データベース表とキューブを一緒に配布する方法もあります。詳細は、「ディメンション・オブジェクトのMOLAP実装」を参照してください。
注意: キューブを削除しても、データベース表やアナリティック・ワークスペースなどの関連オブジェクトは削除されません。これらのオブジェクトは明示的に削除する必要があります。 |
データ・オブジェクト・エディタを使用すると、上級ユーザーは要件に従ってキューブを作成できます。また、データ・オブジェクト・エディタはキューブの編集にも使用できます。
キューブの作成にデータ・オブジェクト・エディタを使用するのは、次の操作が必要な場合です。
キューブが疎なディメンションの指定
キューブ・メジャーの集計方法の定義
レベルの集計の事前計算
データ・オブジェクト・エディタを使用してキューブを作成する手順は、次のとおりです。
Warehouse Builderのプロジェクト・エクスプローラから、「データベース」ノード、続いて「Oracle」ノードを展開します。
キューブを作成するターゲット・モジュールを開きます。
「キューブ」を右クリックして「新規」→「エディタを使用」を選択します。
「新規または既存のキューブを追加」ダイアログが表示されます。
「新規キューブの作成」オプションを選択します。キューブ名を入力し、キューブが属するモジュールを選択します。
「OK」をクリックします。
データ・オブジェクト・エディタが表示されます。キューブを定義するには、「キューブ詳細」パネルの次の各タブに情報を入力します。
データ・オブジェクト・エディタを使用してキューブを作成する場合、キューブ・データを格納する物理オブジェクトが自動的に作成されることはありません。これらのオブジェクトは手動で作成する必要があります。
キューブ・メジャーとディメンション参照を、そのデータを格納するデータベース列にバインドするには、「キューブ属性のバインド」を参照してください。この手順を実行する必要があるのは、ROLAP実装を使用するキューブの場合のみです。
「名前」タブを使用してキューブを記述します。このタブで次の詳細を指定します。
名前: キューブ名を指定します。キューブ名は、モジュール内で一意である必要があります。
説明: キューブの説明(オプション)を指定します。
「記憶域」タブでは、キューブとキューブ・データの格納方法を指定します。記憶域タイプとして「リレーショナル」または「MOLAP」を選択できます。
リレーショナル キューブ定義とキューブ・データをデータベースにリレーショナル形式で格納するには、「リレーショナル: 関係データ構造」オプションを選択します。このオプションを使用すると、リレーショナル実装またはROLAP実装を持つキューブが作成されます。キューブ・データは、データベース表またはビューに格納されます。
ファクト表のすべての外部キー列のビットマップ索引を生成するには、「ビットマップ索引の作成」オプションを選択します。スター問合せの場合は、この選択が必須です。詳細は、Oracleデータ・ウェアハウス・ガイド10gリリース2を参照してください。
ディメンションの外部キー列に一意キーを作成するには、「複合一意キーの作成」オプションを選択します。
MOLAP キューブ・データをアナリティック・ワークスペースに格納するには、「MOLAP: 多次元データ構造」オプションを選択します。このオプションを使用すると、MOLAP実装を持つキューブが作成されます。「アナリティック・ワークスペース」セクションを使用して、記憶域の詳細を指定します。このセクションでは、次の詳細を入力します。
AW名: このフィールドでは、キューブ定義とキューブ・データを格納するアナリティック・ワークスペースの名前を指定します。「選択」ボタンを使用して、アナリティック・ワークスペース・ダイアログを表示します。このダイアログには、現行のプロジェクトにあるディメンション・オブジェクトが表示されます。リストからオブジェクトを選択すると、選択したオブジェクトと同じ名前のアナリティック・ワークスペースにキューブが格納されます。
AW表領域名: アナリティック・ワークスペースが格納される表領域の名前を表します。名前を指定しなければ、アナリティック・ワークスペースはOracleモジュールの所有者のデフォルトのユーザー表領域に格納されます。
「ディメンション」タブを使用して、キューブのディメンションを定義します。このタブには、キューブが参照するディメンションの選択に使用する表と「拡張」ボタンが表示されます。このタブの左にある矢印を使用すると、タブに表示されるディメンションの順序を変更できます。
「拡張」ボタンを使用すると、キューブが参照するディメンションのスパーシティを定義できます。このボタンをクリックすると、「拡張」ダイアログが表示されます。スパーシティを定義できるのはMOLAPキューブの場合のみのため、「拡張」ボタンは記憶域タイプが「MOLAP」の場合にのみ有効化されます。「スパーシティ」ダイアログの詳細は、「「拡張」ダイアログ」を参照してください。
「ディメンション」タブの表は、次の列で構成されています。
ディメンション: このフィールドは、キューブが参照するディメンションの名前を表します。このフィールドにある省略記号のボタンをクリックすると、「使用可能なモジュール」ダイアログが表示されます。このダイアログには、現行のプロジェクトにあるディメンションが表示されます。このリストからディメンションを選択します。
このリストに表示されるディメンションは、Warehouse Builderにより、キューブに指定した記憶域タイプに基づいてフィルタされます。キューブに対してリレーショナル実装を定義すると、Warehouse Builderにより、リレーショナル実装を使用するディメンションのみが表示されます。キューブに対してMOLAP実装を定義すると、Warehouse Builderにより、MOLAP実装を使用するディメンションのみが表示されます。
レベル: 「レベル」ドロップダウンには、「ディメンション」フィールドで選択したディメンションの全レベルが表示されます。キューブが参照するディメンション・レベルを選択します。
ロール: 「ロール」ドロップダウン・リストには、選択したディメンションに含まれるディメンション・ロール(存在する場合)が表示されます。キューブで使用するディメンション・ロールを選択します。ディメンション・ロールを指定できるのは、リレーショナル・ディメンションの場合のみです。
「拡張」ダイアログを使用して、キューブが参照するディメンションのスパーシティを指定します。スパーシティを適用できるのは、MOLAPキューブのみです。スパーシティの詳細は、Oracle OLAPアプリケーション開発者ガイドの第3章を参照してください。
このダイアログには、「ディメンション」および「スパーシティ」の2列を含む表が表示されます。
ディメンション: この列には、「データ・オブジェクト・エディタ」の「ディメンション」タブにリストされるディメンションがすべて表示されます。ディメンションは、「ディメンション」タブ上と同じ順序でリストされます。このダイアログでのディメンションの表示順序を変更するには、「データ・オブジェクト・エディタ」の「ディメンション」タブでの表示順序を変更する必要があります。
スパーシティ: 特定のディメンションのキューブ・データが空白の場合は、そのディメンション参照用には「スパーシティ」を選択します。「スパーシティ」により、特定のディメンションのキューブ・データが疎であることが指定されます。たとえば、SALESキューブの「販促」ディメンションのデータが疎の場合は、「販促」ディメンションに対して「スパーシティ」を選択します。
キューブ内の疎なディメンションはすべて、疎度の最も低いディメンションから最も高いディメンションまでまとめてグループ化する必要があります。たとえば、SALESキューブが、「時間」、「販促」、「製品」、「チャネル」の各ディメンションを参照するとします。この順序でこれらのディメンションが「拡張」ダイアログにリストされています。キューブ・データは、ディメンション「販促」、「チャネル」、「時間」に関して疎で、疎度は「販促」が最低で「時間」が最高です。したがって、これらすべてのディメンションがグループとして表示される際の順序は「販促」、「チャネル」、「時間」となります。これらのディメンションの間にはその他のディメンションを表示できません。このため、「拡張」ダイアログに最初にリストされた順序は誤っています。「製品」ディメンションが「販促」ディメンションと「チャネル」ディメンションの間に表示されるためです。ディメンションのリストの正しい順序は次のとおりです。
販促、チャネル、時間、製品
製品、販促、チャネル、時間
キューブに使用される記憶域オプションと「拡張」ダイアログで指定するディメンションの順序との間には、相関関係があります。キューブが圧縮形式で格納されていない(つまり、「拡張」ダイアログでキューブの圧縮オプションが選択されていない)ときは、疎度の最も高いメンバーから最も低いメンバーの順に疎なディメンションがリストされます。キューブが圧縮形式で格納されている場合は、ディメンションをリストする順序は重要ではありません。OLAPエンジンによって最適な順序が決定されるためです。通常の(圧縮ではない)記憶域がキューブによって使用される場合は、疎度の最も低いディメンションがリストの上部に表示されるように、各ディメンションがリストされます。
キューブに対して疎度を定義することには次の利点があります。
データ取得速度の向上
キューブが使用する記憶領域の削減
キューブの圧縮このオプションを選択すると、キューブ・データが圧縮されてから格納されます。記憶域を圧縮すると容量の使用量が減少し、通常の記憶域よりも集計が高速になります。キューブの圧縮の詳細は、Oracle OLAPアプリケーション開発者ガイドを参照してください。
通常、圧縮された記憶域は非常に疎なキューブに使用されます。キューブが非常に疎であるのは、ディメンション階層に複数レベルがあり、ディメンション数がレベル間でほとんど変化しない場合です。そのため、多数の親が複数の連続するレベルに子孫を1つのみ持ちます。集計されるデータ値はレベル間で変化しないため、繰り返し格納するかわりに1度格納すればよいことになります。
圧縮されたコンポジットの場合に選択できるのは、「SUM」および加算以外の集計演算子のみです。
パーティション・キューブ このオプションを選択すると、キューブはディメンションの1つに沿ってパーティション化されます。キューブをパーティション化すると、大きなメジャーのパフォーマンスが改善されます。
パーティション・キューブ・オプションの下の表を使用して、キューブのパーティション化に使用するディメンションを指定します。1レベル以上の階層を持つディメンションを指定する必要があり、特定のレベルのすべての親がほぼ同数の子を持つなど、ディメンション・メンバーが均等に分散している必要があります。「ディメンション」列を使用してキューブのパーティション化に使用するディメンションを選択します。「階層」および「レベル」列を使用して、ディメンション階層とレベルを選択します。
通常、「時間」は必要な基準を満たしているため、キューブのパーティション化には最適の選択肢です。また、データは期間別にロードされてロール・オフされるため、データ・リフレッシュ・プロセスの一部として新規パーティションを作成して古いパーティションを削除できます。
グローバル索引を使用します。グローバル・パーティション索引を作成するには、このオプションを選択します。
「メジャー」タブを使用してキューブ・メジャーを定義します。各メジャーについて次の詳細を指定します。
名前: メジャー名。メジャー名は、キューブ内で一意である必要があります。
説明: メジャーの説明(オプション)。
データ型: メジャーのデータ型。
長さ: メジャーの最大バイト数。長さは、文字データに対してのみ指定されます。
精度: 列に使用できる合計桁数を定義します。精度は数値データ型に対してのみ定義されます。
スケール: 小数点以下の合計桁数を定義します。スケールは数値データ型に対してのみ定義されます。
秒精度: 日時フィールドの小数部の桁数を表します。0から9までの数値を入力できます。秒精度はTIMESTAMPデータ型に対してのみ使用されます。
式: このフィールドを使用して計算済メジャーを定義します。計算済メジャーは、データが格納されないメジャーです。メジャー値は、定義済の式を使用して必要に応じて計算されます。省略記号のボタンをクリックすると、計算済メジャー・ウィザードが表示されます。計算済メジャー・ウィザードの詳細は、「計算済メジャー・ウィザード」を参照してください。
キューブに定義されている他のメジャーを使用して、メジャーの式を作成できます。定義済の式を検証できるのは配布時のみです。
注意: 計算済メジャーを作成できるのは、MOLAPディメンションの場合のみです。 |
標準メジャーの生成ボタンをクリックすると、基本メジャーに対する一連の標準計算が生成されます。これは、共有、ランクおよび時間ベースの計算を短時間で作成できる操作です。このオプションを使用して作成する計算済メジャーは、計算済メジャー・ウィザードを使用して手動で作成することもできます。
計算済メジャー・ウィザードを使用して、MOLAP実装を使用するキューブに計算済メジャーを作成します。これらの計算済メジャーは、キューブに定義されている他のメジャーと同様に、アナリティック・ワークスペースに配布されます。このウィザードを使用すると、「計算済メジャーの生成」をクリックした場合には作成されない特定の付加的計算を作成できます。
このページを使用して、計算済メジャーのタイプを定義します。次のタイプの計算済メジャーを作成できます。
標準計算 「標準計算」オプションを選択すると、テンプレートに基づいて標準計算を定義できます。Warehouse Builderでは、次の標準計算を定義できます。
基本演算: このタイプを使用すると、次のような基本的な算術計算を実行できます。
加算
この計算を使用して、メジャー2つを加算するか、メジャー1つと数値1つを加算します。
減算
この計算を使用して、メジャー2つを減算するか、メジャー1つと数値1つを減算します。
乗算
この計算を使用して、メジャー2つを乗算するか、メジャー1つと数値1つを乗算します。
除算
この計算を使用して、メジャー2つを除算するか、メジャー1つと数値1つを除算します。
比率
拡張演算: このタイプを使用すると、次の拡張計算を作成できます。
累計
この計算を使用して、指定したディメンションの各レベルにおける期間中のメジャー・データの累計を戻します。
たとえば、2001年の売上高累計 = 第1四半期の売上高 + 第2四半期の売上高 + 第3四半期の売上高 + 第4四半期の売上高となります。
指数
この計算を使用して、メジャー値の比率をそのメジャーの基準値に占める割合として戻します。この計算の算式は次のようになります。
(現行メンバー/基準メンバー)
たとえば、消費者物価指数(1967年の基準物価の場合) = (2001年の物価/1967年の物価) * 100となります。
マークアップ率
この計算を使用し、古い方のメジャーを計算の基礎として2つのメジャー間のマークアップ率を戻します。この計算に使用する算式は(y-x)/xです。
たとえば、新価格が110で旧価格が100であるとします。マークアップ率は次のように計算されます。
(110-100)/100 = +10%
差異率
この計算を使用して、メジャーとそのメジャーのターゲットとの差異率を戻します。たとえば、売上と割当ての差異率は次のようになります。
(売上-割当て)/割当て
ランク
この計算を使用し、指定したメジャーの値に基づいて、各ディメンション・メンバーのランク値(数値)を戻します。たとえば、DVDが150、TVが100、比率が50の場合、TVの売上ランクは2となります。
共有
この計算を使用して、特定のメジャー値について、他のディメンション・メンバーまたはレベルの同一メジャー値に対する比率を戻します。この計算の算式は次のようになります。
(現行メンバー/指定したメンバー)
差異
この計算を使用して、ベース・メジャーとそのメジャーのターゲットとの差異を計算します。次に差異の例を示します。
売上差異 = 売上 - 売上予測
前回/将来の比較: このタイプを使用すると、次のように過去または将来の値の計算を定義できます。
前の値
この計算を使用して、前の期間からのメジャー値を戻します。
前期間との差異
この計算を使用して、メジャーの現在の値とそのメジャーの前期間の値との差異を戻します。この計算の算式は次のようになります。
(現在の値 - 以前の値)
前期間との差異率
この計算を使用して、メジャーの現在の値とそのメジャーの前期間の値との差異率を戻します。この計算の算式は次のようになります。
((現在の値 - 以前の値)/以前の値)
将来の値
この計算を使用して、将来の期間のアイテムの値を戻します。たとえば、現在が2005年10月の場合、1年後の売上高 = 2006年10月の売上高となります。
時間フレーム: このタイプを使用すると、次の時系列計算を作成できます。
移動平均
この計算を使用して、継続する期間数にわたるメジャーの平均値を戻します。この計算の例を次に示します。
過去3か月の移動平均売上 = (1月の売上+2月の売上+3月の売上)/3
移動最大
この計算を使用して、継続する期間数にわたるメジャーの最大値を戻します。この計算の例を次に示します。
過去3か月間の売上高の移動最大 = 1月、2月および3月の最大売上高
移動最小
この計算を使用して、継続する期間数にわたるメジャーの最小値を戻します。この計算の例を次に示します。
過去3か月間の売上高の移動最小 = 1月、2月および3月の最小売上高
移動合計
この計算を使用して、継続する期間数にわたるメジャーの合計値を戻します。この計算の例を次に示します。
過去3か月間の売上高の移動合計 = (1月の売上高 + 2月の売上高 + 3月の売上高)
年度開始から現在
この計算を使用し、期間中のメジャー・データを合計してメジャー・データ累計を作成します。この計算の例を次に示します。
3月までの年累計 = 1月の売上高 + 2月の売上高 + 3月の売上高
カスタム式 「カスタム式」オプションを選択すると、計算済メジャーの計算に使用する式を指定できます。
このページを使用して、計算済メジャーの詳細を定義します。このページの内容は、計算済メジャー・タイプの選択ページで選択した計算のタイプに応じて異なります。たとえば、計算済メジャー・タイプとして加算を選択した場合は、このページに2つのドロップダウン・リストが表示され、加算するメジャーを選択できます。
計算済メジャー・タイプの選択ページで「カスタム式」を選択した場合は、「式ビルダー」インタフェースが表示されます。このインタフェースを使用してカスタム・メジャーを定義します。「式ビルダー」の詳細は、「式ビルダー」を参照してください。
「集計」タブを使用して、キューブが参照する各ディメンションに対して実行が必要な集計を定義します。データの集計に使用する集計関数を選択します。また、キューブが参照する各ディメンションに沿ったメジャーを事前計算することもできます。デフォルトでは、Warehouse Builderにより各代替レベルについて最下位レベルから順番に集計が実行されます。デフォルトの集計関数はSUMです。データ集計ルールの詳細は、Oracle OLAPアプリケーション開発者ガイド10gリリース2(10.2)の第3章を参照してください。
「集計」タブで次のオプションを指定します。
キューブ集計方法: キューブ・データの集計に使用する集計関数を選択します。デフォルト選択はSUMです。
サマリーのリフレッシュ方法: データのリフレッシュ方法を選択します。「要求時」または「コミット時」を選択できます。
キューブのサマリー方針 このセクションを使用して、各ディメンションについてデータを事前計算するレベルを定義します。「ディメンション」列には、キューブが参照するディメンションが表示されます。ディメンション内でデータを事前計算するレベルを選択するには、ディメンション名の右にある「事前計算」列の省略記号のボタンをクリックします。「事前計算」ダイアログが表示されます。このダイアログを使用して、ディメンション内でメジャー・データを事前計算するレベルを選択します。事前計算するレベルは、ディメンション階層ごとに指定できます。デフォルトでは、最下位レベルから順番に各代替レベルが事前計算されます。
注意: 純粋なリレーショナル・キューブ(データベースのリレーショナル・スキーマにのみ実装され、OLAPカタログには実装されないキューブ)の集計は定義できません。 |
ROLAPキューブの場合、Warehouse Builderでは集計データを格納するマテリアライズド・ビューが作成されて集計が実装されます。これらのマテリアライズド・ビューにより、問合せパフォーマンスが向上します。MOLAP実装の場合は、集計データが生成され、基本レベルのデータとともにアナリティック・ワークスペースに格納されます。一部の集計データは配布時に生成され、残りは「集計」タブで定義したルールに従って問合せに対するレスポンス中に集計されます。
注意: Warehouse BuilderによりROLAP集計の実装用に作成されるマテリアライズド・ビューは、プロジェクト・エクスプローラの「マテリアライズド・ビュー」ノードの下には表示されません。 |
「データ・ビューア」タブを使用してキューブ・データを表示します。このタブには「実行」、「クエリー・ビルダー」および「計算ビルダー」という3つのボタンがあります。
実行 「実行」ボタンをクリックすると、キューブのデータ・ビューアが表示されます。このデータ・ビューアには、キューブ・データが一度に100行ずつ表示されます。残りの行を表示するには「次」をクリックします。
クエリー・ビルダー 「クエリー・ビルダー」ボタンをクリックすると「クエリー・ビルダー」が起動します。「クエリー・ビルダー」を使用して、キューブからデータをフェッチする問合せをカスタマイズします。たとえば、エッジを入れ替えたりディメンション・メンバーを選択できます。
計算ビルダー: 「計算ビルダー」は、既存のキューブ・メジャーに基づく計算の作成に使用します。作成した計算は、他のメジャーと同様に使用できます。
キューブの構造を定義した後、キューブ・データを格納するデータベース表またはビューの詳細を指定する必要があります。次のオプションを1つ選択して、キューブ・データを格納するデータベース・オブジェクトにキューブをバインドできます。
自動バインド
手動バインド
自動バインド 自動バインドを実行すると、Warehouse Builderにより自動的にキューブのメジャーとディメンションの参照がそのデータを格納するデータベース列にマップされます。
自動バインドを実行する手順は、次のとおりです。
「データ・オブジェクト・エディタ」で、「オブジェクト」→「自動バインド」を選択します。または、グラフィカル・キャンバスの「実装」タブで、キューブ・オブジェクトを右クリックして「自動バインド」を選択する方法もあります。
「自動バインド」ダイアログが表示されます。
「はい」を選択して自動バインドを実行します。
Warehouse Builderにより、キューブ内のメジャーとディメンションの参照がキューブ・データの格納表にマップされます。
自動バインド・ルールの詳細は、「自動バインド」を参照してください。
手動バインド 手動バインドの場合は、キューブ内のメジャーとディメンションの参照を、そのデータを格納するデータベース・オブジェクトに明示的にマップする必要があります。キューブ・データを既存の表に格納するか、新規の表を作成できます。
手動バインドを実行する手順は、次のとおりです。
データ・オブジェクト・エディタの「グラフィカル」キャンバスの「ディメンショナル」タブで、キューブ・オブジェクトを右クリックして「詳細の表示」を選択します。
「実装」タブが表示されます。このタブにはキューブ・オブジェクトが表示されます。
キューブ・データの格納用データベース・オブジェクトを表すマッピング演算子をドラッグ・アンド・ドロップします。たとえば、キューブ・データが表に格納される場合は、「実装」キャンバスに「新規または既存の表を追加」アイコンをドラッグ・アンド・ドロップします。
「新規または既存の表を追加」ダイアログが表示されます。キューブ・データの格納用に既存の表を選択するか、新規の表を作成します。
ディメンションの各属性を、そのデータを格納するデータベース列にマップします。
データ・オブジェクトを使用してキューブを定義し、バインド(ROLAPキューブの場合のみ)を実行した後、キューブを配布する必要があります。キューブの配布の詳細は、「キューブの配布」を参照してください。
MOLAP実装を使用したキューブはアナリティック・ワークスペースに格納されます。Oracle Database 10gのアナリティック・ワークスペース・エンジンでは、AWXMLというAPIが提供されます。これらのAPIにより、(アナリティック・ワークスペース・マネージャとしての)クライアント/サーバー使用および(Oracle Warehouse Builderのような)javaのストアド・プロシージャがあるバッチ使用の両方が可能になります。この項ではMOLAPキューブの実装の詳細を説明します。
ディメンションの「記憶域」タブの「データ・ソースの自然キーを使用」を選択する場合、Warehouse Builderにより、このディメンションを使用するキューブの不規則ファクト・データを処理できるマッピング・コード(AWXMLマッピング・コード)が生成されます。またキューブ・ディメンション・レベルのソース列は、実際にはすべての親レベルにマップされます。これにより、不規則ファクト・データがロードされます。
ディメンションの「記憶域」タブの「アナリティック・ワークスペースでサロゲート・キーを生成」を選択する場合、このディメンションのレベルでデータをロードするマッピングを作成するときに、このレベルのみにキューブ・ディメンション・メンバーをロードします。
Warehouse Builderにより追加の階層定義の必要なく既存のディメンションを再利用できます。集計は定義したキューブのディメンションのレベル参照に基づいて生成されます。キューブのディメンションのレベルがメンバーである階層のみが集計に含まれます。参照されるキューブのディメンションのレベルが階層でリーフのないレベルである場合、キューブまたはメジャーが解決されるときに、階層内でより下位のレベルが除外されます。たとえば、BUDGETとSALESという2つのキューブがある場合、これらはディメンションの階層定義を追加することなく同じディメンション定義を共有できます。
OLAP AWXMLエンジンの重要な属性は、アナリティック・ワークスペースに格納されているキューブの自動解決機能です。圧縮されたキューブおよび圧縮されていないキューブの両方を自動解決できます。圧縮されたキューブは、「拡張ダイアログ」で「キューブの圧縮」オプションが選択されたキューブです。
次のいずれかの条件が満たされている場合にキューブは自動解決されます。
キューブは圧縮されています。
キューブは圧縮されていません。また次の追加の条件がtrueです。
すべてのメジャーの「解決」プロパティを「はい」に設定します。
キューブで参照するディメンション・レベルはレベルがメンバーのすべての階層のリーフ・レベルです。
実行されるキューブが含まれるマッピング
キューブの「増分集計」は自動解決(1つの操作でのロードおよび集計)によって異なります。「増分集計」はマッピングのキューブ演算子のプロパティで、自動解決キューブにのみ適用します。Warehouse Builderでは、次の条件がtrueの場合は自動解決キューブではないキューブが生成されます。
キューブは、キューブをロードするマッピングで解決されています。
Warehouse Builder変換はキューブを解決するために使用されます。
キューブは圧縮されていなません。また次の条件のいずれかがtrueです。
いくつかのメジャーでは「解決」プロパティがNoに設定されています。
キューブで参照するディメンション・レベルはレベルがメンバーのすべての階層のリーフのないレベルです。
圧縮されているキューブおよび圧縮されていないキューブの両方に対して、1つのキューブ・メジャーのみを解決できます。圧縮されたキューブは、「拡張ダイアログ」で「キューブの圧縮」オプションが選択されたキューブです。
圧縮されたキューブで1つのメジャーのみを解決する手順は、次のとおりです。
データ・オブジェクト・エディタを開き、「集計」タブにナビゲートします。
プロジェクト・エクスプローラでキューブ名をダブルクリックすると、データ・オブジェクト・エディタが開きます。
「集計」タブの「メジャー」セクションで解決するメジャーを選択します。
「メジャーの集計」セクションに、キューブで参照する各ディメンションの行が表示されます。キューブを解決するディメンションを表す行で、集計関数列のNOAGGを選択します。
圧縮されていないキューブで1つのメジャーのみを解決するには、最新のデータベースのパッチ10.2.0.2が必要です。Oracle Database 10gリリース1(10.1)を使用している場合、パッチの詳細は、バグ4550247を参照してください。解決のためにキューブ・メジャーで定義されたオプションはどのメジャーが主な解決に含まれるのかを示します。ただし、マップのキューブ演算子にある解決インジケータがこの解決が実行されるかどうかを示します。そのため、マップはデータをロードするかまたは、ロードして解決できます。
事前定義済変換WB_OLAP_AW_PRECOMPUTEを使用すると、ロードに依存しないキューブを解決できます。また、このファンクションによりメジャーもお互いに依存せずに解決できます。この変換ファンクションは「定義済」ノードのOLAPカテゴリにある「パブリック変換」ノードのグローバル・エクスプローラで使用できます。
次の例では、SALES_CUBEのメジャーSALESを解決します。
declare rslt VARCHAR2(4000); begin rslt:=WB_OLAP_AW_PRECOMPUTE('MART','SALES_CUBE','SALES'); end; /
このファンクションには、パラレル解決のパラメータおよびジョブ・キューの最大数のパラメータがあります。キューブをパラレルに解決する場合、非同期解決ジョブが起動し、マスター・ジョブIDはファンクションの戻り値を介して戻されます。
Warehouse Builderで生成された計算プラン: 次の計算プランはWarehouse Builderによって生成されます。
キューブの計算プラン
格納した各メジャーの計算プラン
これによりデータをロードした後に個々にメジャーで解決するか、またはキューブ全体で解決できます。また、実際の計算プランではWarehouse Builderメタデータに基づいてレベルを除外できます。
キューブをロードするマッピングを構成することでキューブのパラレル解決を有効化できます。キューブ演算子には「パラレル解決の許可」というプロパティがあり、また「最大ジョブ・キュー割当済」プロパティもあります。これら2つの構成プロパティにより、パラレル解決を実行するかどうかが決定され、ジョブ・プールのサイズが決定されます。デフォルトではAWXMLエンジンによりこの値が決定されます。
キューブをロードするマッピングを実行するとき、出力パラメータの1つはAW_EXECUTE_RESULTです。パラレル解決を使用してマッピングが実行されると、この出力パラメータにはジョブIDが含まれます。次のデータ・ディクショナリ・ビューを使用して、ジョブを完了する時刻および次に行う手順を判別できます。
ALL_SCHEDULER_JOBS
ALL_SCHEDULER_JOB_RUN_DETAILS
ALL_SCHEDULER_RUNNING_JOBS
マッピングがパラレル解決を使用して実行されない場合、AW_EXECUTE_RESULT出力パラメータに「成功」タグまたはエラーが戻されます。エラーの詳細は、OLAPSYS.XML_LOAD_LOG表を参照してください。
データ・オブジェクト・エディタを使用してキューブを編集し、定義を変更できます。ディメンションの定義を編集すると、オブジェクト・メタデータ内でのみ変更されます。物理オブジェクトの定義を更新するには、コントロール・センターを使用して変更後のディメンションを配布します。
キューブ定義を編集するには、次のいずれかの方法でデータ・オブジェクト・エディタを開きます。
プロジェクト・エクスプローラで、キューブを右クリックして「エディタを開く」を選択します。
「プロジェクト・エクスプローラ」でキューブをダブルクリックします。
「データ・オブジェクト・エディタ」の各タブを使用して、キューブ定義を編集します。「データ・オブジェクト・エディタ」の各タブの詳細は、「「データ・オブジェクト・エディタ」の使用」を参照してください。
キューブの構成時には、キューブおよび基礎となる表の両方を構成します。
キューブの物理プロパティを構成する手順は、次のとおりです。
プロジェクト・エクスプローラで、キューブ名を右クリックしてポップアップ・メニューから「構成」を選択します。
構成プロパティ・ウィンドウが表示されます。
次のキューブ・パラメータを構成します。
配布可能: このキューブを配布する場合は「TRUE」を選択します。Warehouse Builderでは、配布可能マークの付いた表制約についてのみスクリプトが生成されます。
配布オプション: このプロパティを使用して、ディメンションの配布場所を指定します。オプションは次のとおりです。
集計の配布: キューブ・メジャーに定義されている集計を配布します。
すべて配布: リレーショナル実装の場合、キューブはデータベースに配布され、CWM定義はOLAPカタログに配布されます。MOLAP実装の場合、キューブはアナリティック・ワークスペースに配布されます。
データ・オブジェクトのみ配布: キューブのみをデータベースに配布します。このオプションを選択できるのは、リレーショナル実装を持つキューブの場合のみです。
カタログにのみ配布: CWM定義をOLAPカタログにのみ配布します。このオプションを使用するのは、ディメンション・データのみの配布後にBI BeansやDiscoverer for OLAPなどのアプリケーションでそのデータにアクセスする必要がある場合です。
キューブに他の構成パラメータはありませんが、キューブの構成については次のようなガイドラインがあります。
各ディメンションに外部キー制約が存在します。
各外部キー列には、参照先ディメンションへのビットマップ索引が生成されています。
Warehouse Builderには時間ディメンションの作成ウィザードが用意されており、完全な機能を持つ時間ディメンションをすばやく作成できます。時間ディメンションを移入するマッピングも自動的に作成されます。時間ディメンション用にリレーショナル実装を選択すると、時間ディメンション・データを格納する実装オブジェクトもWarehouse Builderにより作成されます。
また、データ・オブジェクト・エディタを使用して、独自仕様による時間ディメンションを定義することもできます。この場合は、実装オブジェクトと、時間ディメンションをロードするマップを作成する必要があります。
時間ディメンションの作成ウィザードを使用して時間ディメンションを作成する手順は、次のとおりです。
Warehouse Builderのプロジェクト・エクスプローラで、「データベース」ノードと「Oracle」ノードを順番に開きます。
時間ディメンションを作成するターゲット・モジュールを開きます。
「ディメンション」を右クリックして「新規」→「タイム・ウィザードを使用」を選択します。
時間ディメンションの作成ウィザードのようこそページが表示されます。「次へ」をクリックして次ページに進みます。ウィザードに表示される指示に従って次の各ページを完了します。
名前ページでは、時間ディメンションを説明します。名前ページでは、次の詳細を入力します。
名前: 時間ディメンション名を入力します。ディメンション名は、モジュール内で一意にする必要があります。
説明: 時間ディメンションの説明(オプション)を入力します。
記憶域ページを使用して、データベースへの時間ディメンション・データの格納方法を指定します。記憶域タイプは、キューブ全体の最下位レベルに格納されるデータ量、および必要なリフレッシュ・レートに基づいて選択します。記憶域タイプのオプションは次のとおりです。
リレーショナル記憶域(ROLAP): 時間ディメンション定義がデータベースにリレーショナル形式で格納されます。このオプションを選択すると、リレーショナル実装またはROLAP実装を使用する時間ディメンションを作成できます。
この時間ディメンションの実装に必要な基礎となる表は、Warehouse Builderにより自動的に作成されます。時間ディメンションの実装には、スター・スキーマが使用されます。
多次元記憶域(MOLAP): 時間ディメンション定義とデータがアナリティック・ワークスペースに格納されます。このオプションを選択すると、MOLAP実装を使用する時間ディメンションを作成できます。
時間ディメンションは、Warehouse Builderによりモジュールと同じ名前のアナリティック・ワークスペースに格納されます。アナリティック・ワークスペースの格納に使用される表領域は、ディメンション・メタデータを含むスキーマ用のユーザー表領域として定義されている表領域です。
これらのオプションの詳細は、「記憶域タイプ・ページ」を参照してください。
データ生成ページを使用して、時間ディメンションのタイプおよび格納されるデータの範囲など、時間ディメンションの詳細情報を指定します。このページには、時間ディメンションに格納されるデータの範囲と一時データのタイプの詳細が表示されます。
データの範囲 データの範囲セクションでは、時間ディメンションに格納される一時データの範囲を指定します。範囲を指定するには、次の項目を定義します。
開始年: 時間ディメンションへのデータ格納を開始する年。ドロップダウン・リストをクリックして開始年を選択します。
年数: 時間ディメンションにデータを格納する開始年からの合計年数。ドロップダウン・リストから値を選択して年数を指定します。
時間ディメンションのタイプ 時間ディメンションのタイプ・セクションを使用して、作成する時間ディメンションのタイプを指定します。時間ディメンションのタイプを次のオプションから1つ選択します。
カレンダ: カレンダ時間ディメンションを作成します。
会計: 会計時間ディメンションを作成します。会計時間ディメンションを作成するには、次の詳細を追加入力します。
会計規則: 会計月の表現に使用する規則を選択します。使用可能なオプションは、544および445です。
会計年度の開始: 会計年度の開始月日を選択します。
会計週の開始: 会計週の開始曜日を選択します。
レベル・ページを使用して、作成するカレンダ階層と含めるレベルを選択します。「カレンダ週」レベルから上のレベルへのドリルアップ・パスはないため、Warehouse Builderには、カレンダ階層の作成用に次の2つのオプションが用意されています。
通常階層
週階層
通常階層 「通常階層」には、次のレベルが含まれます。
カレンダ年
カレンダ四半期
カレンダ月
日
カレンダ階層に含めるレベルを選択します。少なくとも2つのレベルを選択する必要があります。
週階層 「週階層」には、「カレンダ週」および「日」という2つのレベルが含まれます。この階層を使用して、「カレンダ週」レベルを含む階層を作成します。「週階層」オプションを選択すると、これらのレベルの両方がデフォルトで選択されます。
レベル・ページを使用して、会計階層に含めるレベルを選択します。次のレベルを選択できます。
会計年度
会計年度四半期
会計年度月
会計年度週
日
少なくとも2つのレベルを選択します。Warehouse Builderにより、選択したレベルを含む会計階層が作成されます。追加の階層を作成するには、データ・オブジェクト・エディタを使用します。データ・オブジェクト・エディタの使用方法の詳細は、「時間ディメンション定義の編集」を参照してください。
作成前の設定ページには、時間ディメンションの作成ウィザードの前ページで選択したオプションのサマリーが表示されます。これには、属性、レベル、階層および時間ディメンションの移入に使用するマップの名前が含まれます。Warehouse Builderでは、これらの設定を使用して時間ディメンションを実装するオブジェクトが作成されます。ウィザードの実装に進むには、「次へ」をクリックします。前のウィザード・ページで選択したオプションを変更するには「戻る」をクリックします。
時間ディメンション進行状況ページには、時間ディメンションの実装の進行状況が表示されます。このページの進行状況ステータス・ログには、時間ディメンションを実装するために時間ディメンション・ウィザードで実行されるアクティビティがリストされます。処理の完了後、「次へ」をクリックして次に進みます。
サマリー・ページには、ウィザードの各ページで選択したオプションのサマリーが表示されます。このページを使用して、選択したオプションを確認します。
時間ディメンションの作成を完了するには、「終了」をクリックします。完全な機能を持つ時間ディメンションが作成されます。このディメンションは、「プロジェクト・エクスプローラ」の「ディメンション」ノードの下に表示されます。この時間ディメンションをロードするマッピングは、「プロジェクト・エクスプローラ」の「マッピング」ノードの下に表示されます。
Warehouse Builderにより次のオブジェクトが作成されます。
時間ディメンション・オブジェクト
時間ディメンション・レベルのサロゲートIDを移入する順序
時間ディメンション・データを格納する物理構造
リレーショナル実装の場合は、ディメンション・データを格納するデータベース表がリポジトリに作成されます。また、時間ディメンション属性が属性値を格納するデータベース列にバインドされます。MOLAP実装の場合は、時間ディメンションとディメンション・データを格納するアナリティック・ワークスペースが作成されます。
時間ディメンションにデータを移入するマッピング。
注意: 時間ディメンションを削除しても、そのディメンションに関連付けられた表、順序およびマッピングは削除されません。これらのオブジェクトは明示的に削除する必要があります。 |
時間ディメンション・ウィザードを使用して時間ディメンションを作成する場合、Warehouse Builderでは次のデフォルトが使用されます。
記憶域: リレーショナル記憶域のデフォルト実装はスター・スキーマです。MOLAP実装の場合、ディメンションは時間ディメンションが作成されるOracleモジュールと同じ名前を持つアナリティック・ワークスペースに格納されます。このアナリティック・ワークスペースは、ディメンションの格納先Oracleモジュールを所有するスキーマ用のユーザー表領域として割り当てられた表領域に格納されます。
階層: Warehouse Builderでは、ディメンションの作成ウィザードのレベル・ページに表示された全レベルを含む標準階層が作成されます。この階層には、レベル・ページに表示されたのと同じ順序でレベルが含まれています。
時間ディメンションを編集する手順は、次のとおりです。
Warehouse Builderのプロジェクト・エクスプローラで、「データベース」ノードと「Oracle」ノードを順番に開きます。
編集対象の時間ディメンションを含むターゲット・モジュールを開きます。
編集対象の時間ディメンションを右クリックして「エディタを開く」を選択します。また、時間ディメンションをダブルクリックする方法もあります。その時間ディメンションのデータ・オブジェクト・エディタが表示されます。
次の各タブで情報を編集します。
時間ディメンションを変更すると、新規の移入マップと新規の実装表が作成されます。既存の移入マップと実装表を削除するか保持するかを選択できます。
マッピング・エディタを使用して、時間ディメンションの移入マップを変更します。時間ディメンションを移入するマッピングを配布する必要があります。
配布前の移入マップを削除すると、時間ディメンションにデータを移入できません。これを回避するには、時間ディメンション・ウィザードを再実行して、別のディメンション移入マップを作成します。
「名前」タブを使用して時間ディメンションを記述します。このタブで次の詳細を入力します。
名前: 時間ディメンション名。この名前はモジュール内で一意である必要があります。ネーミング規則の詳細は、「データ・オブジェクトのネーミング規則」を参照してください。
説明: 時間ディメンションの説明(オプション)。
データの範囲: 時間ディメンションに格納されるデータの範囲を指定します。範囲を指定するには、次の項目を定義します。
開始年: 時間ディメンションへのデータ格納を開始する年。ドロップダウン・リストをクリックして開始年を選択します。
年数: 時間ディメンションにデータを格納する開始年からの合計年数。ドロップダウン・リストから値を選択します。
「記憶域」タブを使用して、時間ディメンションの記憶域のタイプを指定します。使用できる記憶域オプションは「リレーショナル」または「MOLAP」です。
リレーショナル 「リレーショナル」オプションを選択すると、時間ディメンション定義はデータベースにリレーショナル形式で格納されます。時間ディメンションのリレーショナル実装について次のオプションを1つ選択します。
スター・スキーマ: 時間ディメンションはスター・スキーマを使用して実装されます。これは、時間ディメンション・データが単一のデータベース表またはビューに格納されることを意味します。
スノーフレーク・スキーマ: 時間ディメンションはスノーフレーク・スキーマを使用して実装されます。これは、時間ディメンション・データが複数の表またはビューに格納されることを意味します。
MOLAP 「MOLAP」を選択すると、時間ディメンションの定義とデータがデータベースのアナリティック・ワークスペースに格納されます。この方法では、アナリティック・ワークスペースを使用して時間ディメンション・データが格納されます。MOLAP実装の場合は次の詳細を入力します。
AW名: 時間ディメンションを格納するアナリティック・ワークスペースの名前を入力します。省略記号のボタンをクリックすると、使用可能なアナリティック・ワークスペースのリストが表示されます。Warehouse Builderでは、現行のプロジェクトにあるモジュールごとにノードが1つ表示されます。モジュールを開いて、そのモジュール内のディメンション・オブジェクトのリストを表示します。リストからオブジェクトを選択すると、そのオブジェクトと同じアナリティック・ワークスペースに時間ディメンションが格納されます。
表領域名: アナリティック・ワークスペースを格納する表領域の名前を入力します。値を入力しない場合、アナリティック・ワークスペースは時間ディメンションのメタデータを含むスキーマのユーザー表領域として定義されている表領域に格納されます。
「属性」タブでは、ディメンション属性と、時間ディメンションのディメンション・キーの移入に使用する順序を定義します。「順序」フィールドは、時間ディメンションのディメンション・キー列に移入する順序の名前を表します。このフィールドの右にある「選択」を使用して、「利用可能な順序」ダイアログから順序を選択します。このダイアログには、現行のプロジェクトに属している順序がすべて表示されます。
ディメンション属性 「ディメンション属性」セクションには、時間ディメンションのディメンション属性が表示されます。このページは、新規ディメンション属性の作成にも使用します。属性ごとに次の詳細を指定します。
名前: ディメンション属性名。属性名はディメンション内で一意である必要があります。
説明: 属性の説明(オプション)。
識別子: 属性の識別子のタイプを表します。ドロップダウン・リストには2つのオプション「サロゲート」および「ビジネス」が表示されます。識別子のタイプを選択します。
データ型: 属性のデータ型を選択します。
長さ: 長さは文字データ型に対してのみ指定されます。
精度: 列に使用できる合計桁数を定義します。精度は数値データ型に対してのみ定義されます。
スケール: 小数点以下の合計桁数を定義します。スケールは数値データ型に対してのみ定義されます。
秒精度: 日時フィールドの小数部の桁数を表します。0から9までの数値を入力できます。秒精度はTIMESTAMP
データ型に対してのみ使用されます。
記述子: 記述子のタイプを選択します。オプションは「簡単な説明」、「詳細な説明」、「開始日」、「終了日」、「期間」および「前回の期間」です。
「レベル」タブでは、時間ディメンションのレベルを定義します。「レベル」セクションで名前と説明(オプション)を入力してレベルを追加作成できます。「レベル」タブの内容の詳細は、「レベル属性ページ」を参照してください。
「階層」タブを使用して、時間ディメンションに階層を追加作成します。時間ディメンションの定義を変更した場合、それを移入するマップに変更内容を反映させる必要があります。「マップ作成」をクリックして、時間ディメンションを移入するマップを再作成します。会計時間ディメンションの場合は、「会計の設定」をクリックして会計の設定を変更できます。「会計情報設定」ダイアログが表示されます。このダイアログを使用して、会計規則、会計年度の開始および会計週の開始を変更します。
「階層」タブには、「階層」および「レベル」という2つのセクションがあります。