この章では、ODIでのディメンション・オブジェクトの作成および使用方法について説明します。ディメンション・オブジェクトは、データを識別およびカテゴリ分けするための論理構造です。Oracle Data Integratorでは、ディメンションとキューブという2つのタイプのディメンション・オブジェクトを設計、作成、編集およびロードできます。
注意: ディメンションおよびキューブ機能はOracleテクノロジのみをサポートします。 |
この章の詳細な内容は次のとおりです。
ディメンション・オブジェクトは、データ・ウェアハウスの論理設計を表すモデルを作成するために使用される論理的構成です。ディメンション・モデルの物理設計および実装は、SQL文によって論理設計をデータベースに変換します。この項では、ディメンション・オブジェクトとキューブ・オブジェクトの概要を、物理実装とともに説明します。
データ・ウェアハウスの詳細は、https://docs.oracle.com/database/121/DWHSG/toc.htm
を参照してください。
ディメンションは、データを編成する構造です。たとえば、productsディメンションは製品情報、製品カテゴリとそのサブカテゴリを含む、製品に関するデータを編成します。時間ディメンションは、一連のレベルとこれらのレベルに定義される一連の階層で構成されます。
ディメンションを作成するには、次の内容を定義する必要があります。
レベル
レベル属性
階層
たとえば、productsディメンションはカテゴリとサブカテゴリのレベルを持つことができます。階層を使用して、製品からサブカテゴリまたはカテゴリにドリルできます。
ディメンションを使用すると、問合せパフォーマンスが向上します。これは、ユーザーが既知の階層をドリルダウンしてデータを分析することがよくあるためです。階層の例には、年、四半期、月、日という時間階層があります。
レベル
「レベル」は、類似の特性を共有するディメンション値のコレクションを表します。たとえば、州の名前、州の人口および州の首都で構成されるStateレベルを作成できます。
レベル属性
レベル属性は、レベルについての1つのサロゲート識別子およびビジネス識別子を含みます。レベル属性とはレベル値を説明する特性です。たとえば、ITEMレベルにCOLORという名前の属性を含めることができます。item1のCOLORの値はgreen、item2のCOLORの値はblueなどとなります。属性は、エンド・ユーザーが類似の特性に基づいてデータを選択できる論理グループを表します。
一部のレベル属性は自然キーまたはサロゲート識別子になります。自然キーはソース・システムからのレコードを一意に識別します。自然キーはコンポジット・キーで構成できます。
サロゲート識別子は、ディメンションのすべてのレベルにまたがって、各レベルのレコードを一意に識別します。この識別子は、単一の属性で構成する必要があります。サロゲート識別子を使用すると、ファクトを最下位ディメンション・レベルのみでなく、どのディメンション・レベルにもフックできます。次のような場合はサロゲート・キーを使用する必要があります。
ディメンションはタイプ2の緩やかに変化するディメンション(SCD)です。この場合は、各自然キー値にロードされた複数のディメンション・レコードがあるため、レコードを追跡するための付加一意キーが必要になります。
複数のレベルを含むディメンションは、スター・スキーマを使用して実装されます。そのため、このようなディメンションを参照するキューブは、複数のディメンション・レベルを参照します。
サロゲート・キーを定義していない場合、ディメンション・テーブルにはリーフ・レベルのディメンション・レコードのみが保存され、親レベルの情報はリーフ・レベルの付加列に格納されます。ただし、この場合、上位レベルを参照する一意の方法はありません。
スターで実装される任意のディメンションで、キューブによってリーフ・レベルのみが参照されるというタイプ1ディメンションに対するサロゲート・キーは必要ありません。
階層
データを編成する手段として順序付けされたレベルを使用する構造です。レベル階層では、隣接するレベル間の階層関係が定義されます。階層関係とは、階層内の1つのレベルからより抽象的なレベルに対する機能的な依存関係です。
階層を使用して、時間ディメンションなどでデータ集計を定義できます。階層を使用して"月"レベルから"四半期"レベル、さらに"年"レベルへとデータを集計できます。
ディメンション・ロール
ディメンションは、データ・ウェアハウスで複数のディメンション・ロールを実行できます。
1つのデータ・ウェアハウス内で、1つのキューブが同じディメンションを複数回参照できます。その参照ごとに、ディメンションはキューブの別のディメンション・ロールを実行します。
たとえば、卸売会社で、各販売レコードに次の3つの時間値を含めることができます。
受注時間を示す1つ目の時間値レコード
製品出荷時間を表す2つ目の時間値レコード
支払受領時間を表す3つ目の時間値レコード
卸売会社の複数の部門が、同じデータを異なる方法(注文時間、製品出荷時間、製品支払時間別)で集計することに関心を持っています。
このシナリオをモデル化するために、ウェアハウスのデザイナは次の選択を行います。
3つの時間ディメンションを個別にモデル化および移入して、倉庫キューブが各時間ディメンションを参照できるようにします。
1つの時間ディメンションをモデル化します。時間ディメンションの3つのロールを作成します。1つ目は受注時間です。2つ目は出荷時間です。3つ目は支払時間です。売上キューブが、"受注時間"、"出荷時間"および"支払時間"を参照できるようにします。
2つ目の選択肢には、時間データの保存が1回で済むという利点があります。
緩やかに変化するディメンションの概要
ディメンションのロード中、新しいデータの受信時に既存のデータを維持する必要がある場合があります。たとえば、ウェアハウスの初期のレコードには都市の人口が5000人であることが記録されています。都市の新しい人口が6000人であることを示す新しいデータを受信します。単に古い人口を新しい数でオーバーライドするのではなく、古い人口をウェアハウスのどこかで維持して、同じ時点の2つの人口を比較できます。
緩やかに変化するディメンション(SCD)は、現行データと履歴データの両方を一定期間にわたってデータ・ウェアハウスで保存および管理するディメンションです。履歴データを維持するための戦略は、緩やかに変化するディメンションと呼ばれます。データ・ウェアハウスでは、一般に認知されている3種類のSCDタイプがあります。これらの戦略には、タイプ1、タイプ2およびタイプ3があります。
緩やかに変化するディメンションのタイプ
タイプIの緩やかに変化するディメンションでは履歴は格納されません。タイプ1の緩やかに変化するディメンション(SCD)では、新しいデータで既存のデータが上書きされます。通常、このタイプはSCDとはみなされず、ほとんどのディメンションがこのタイプに該当します。したがって、履歴データはどこにも格納されず失われます。これはユーザーが作成するディメンションのデフォルトのタイプです。タイプ1のSCDを作成するために追加の情報を指定する必要はありません。固有のビジネス上の理由がないかぎり、タイプ1のSCDで十分と考える必要があります。
1つの属性はいずれか1つのロールのみを担当できます。たとえば、1つの属性が通常の属性と有効日属性の両方にはなりません。
タイプIIの緩やかに変化するディメンションではすべてのバージョンの履歴が格納されます。SCD2トリガーとしてマークされている、すべての属性およびすべての親レベルの関係を示す値の履歴全体が格納されます。人口の例では、タイプ2の緩やかに変化するディメンションの場合、各都市のこれまでのすべての人口数が格納されます。
タイプ2のSCDを定義するには、次のパラメータを定義します。
SCDタイプ2をトリガーするレベル属性の場合は、「トリガー履歴」の設定を選択する必要があります。1つ以上のレベル属性を選択できます。これにより、選択した属性の値が変更されると、履歴の1つのバージョンの格納がトリガーされます。
SCDタイプ2を使用するには、すべてのレベルでサロゲート・キー属性を作成する必要があります。サロゲート・キー属性はSCD2トリガー履歴として設定できません。
タイプ2トリガー履歴として定義された属性を持つレベルには、「タイプ2設定」の「開始日」で設定された日付/タイムスタンプ・レベルの属性が必要です。
タイプ2トリガー履歴として定義された属性を持つレベルには、「タイプ2設定」の「終了日」で設定された日付/タイムスタンプ・レベルの属性が必要です。
SCDタイプ2は、「トリガー履歴」に設定されている場合、親レベル参照メンバーでトリガーすることもできます。
タイプ2またはタイプ3のSCDを作成するには、通常のディメンション属性に加え、次のロールを実行する追加属性が必要です。
トリガー履歴: これらは履歴値を格納する必要がある属性です。たとえば、PRODUCTSディメンションでは、Productレベルの属性PACKAGE_TYPEをトリガー属性にできます。属性の値を変更する場合、古い値を格納する必要があります。
開始日: この属性には、レコードの有効期間の開始日を格納します。
終了日: この属性には、レコードの有効期間の終了日を格納します。
前の属性: タイプ3 SCDにかぎり、この属性に、バージョンのある属性の前の値を格納します。
タイプIIIの緩やかに変化するディメンションでは、選択された属性レベルに対する値の2つのバージョン、つまり現在の値と前の値が格納されます。人口の例では、タイプ3の緩やかに変化するディメンションは各都市の現在の人口と前の人口を維持します。
タイプ3のSCDを定義するには、次のパラメータを定義します。
前の値を格納する各レベル属性では、別のレベル属性を作成し、「タイプ3前の属性」として割り当てる必要があります。また、日付/タイムスタンプ・レベル属性を作成し、レベル属性に「タイプ3開始日」として割り当てる必要があります。
属性に前の値を含めることができる点について2つの制限があります。制限は次のとおりです。
前の値属性にさらに前の値を含めることはできません。たとえば、"email"の前の値として"old_email"という属性を指定すると、"old_email"の前の値として使用される別の属性"previous-previous email"は選択できません。
サロゲート・キー属性は前の値を持つことができません。
ディメンションの実装
レベル、属性、階層など、ディメンションの論理構造の定義とともに、ディメンション・データの物理的な格納方法を指定する必要があります。
注意: ODIは現在のリリースでスター・スキーマのみをサポートします。 |
スター・スキーマでは、各ディメンションのデータは単一のデータストアに格納されます。
ディメンションのデータ記憶域のこの仕様をディメンションの実装と呼びます。
キューブは、同様のディメンション性を持つ、グループ化された一連のメジャーです。キューブの軸にはディメンション値が組み込まれ、キューブの本体にはメジャーの値が格納されます。
たとえば、売上データをキューブに編成する場合、エッジに時間、製品および顧客ディメンションの値が格納され、本体に売上数量および売上高メジャーが格納されます。
各キューブには、1つ以上のディメンションに関連するデータを格納する必要があります。ディメンションはキューブ間で共有できます。同じディメンションが、同じキューブによって別のディメンション・ロールで再利用できます。各キューブにはファクト表を含める必要があります。
ODIでは、ディメンションとキューブ・モデルと呼ばれるモデルの新しいタイプが追加されて、ディメンションおよびキューブ・オブジェクトの作成をサポートしています。ディメンション・オブジェクトは、物理データ・ウェアハウスを作成するためのマッピングに使用できます。
この項の内容は次のとおりです。
ディメンション・オブジェクトは、「ナビゲータ」タブに別のアコーディオンとして追加されます。ディメンション・モデルは、次に示すようにディメンション・オブジェクトとキューブ・オブジェクトを含むフォルダとして機能します。
この項の内容は次のとおりです。
一般プロパティ
ディメンションは基になるデータストア・オブジェクトとは別にモデル化されます。
タイプ1、タイプ2およびタイプ3の緩やかに変化するディメンションをサポートします。
ディメンション・ロールをサポートします。
複数の階層をサポートします。
ディメンションを定義するには、そのレベルと階層を指定する必要があります。
レベル
1つのレベルで1つ以上の依存属性を決定できます。
1つのレベルの列はすべて、同じ表から取り出す必要があります。
レベルは階層間で共有できます。
レベルを階層内で順序付ける必要があります。
1つのレベルでいくつかの属性を一意に指定できます。これらの属性列は、レベル列と同じ表から取り出す必要があります。
階層レベルの列を2つ以上のディメンションに関連付けることはできません。
2つのレベルが同じ列のセットを持つことはできません。各階層レベルの列はNULLにはなりません。
各レベルは一度に1つの階層にのみ表示されます。
階層
ディメンションには、1つ以上の階層を定義する必要があります。
各階層には、1つ以上のレベルを含める必要があります。
ディメンションのレベルは階層間で共有できます。ディメンションの階層は、相互にオーバーラップすることも切り離されることもあります。次の図は、ODIでサポートできる階層の種類を示しています。
すべての階層が厳密な1対nの関係にあることが必要です。階層内の2つの隣接するレベルの場合、親レベルの1つのレコードが階層内の子レベルの複数のレコードに対応します。さらに、子レベルの1つのレコードは階層内で1つの親レコードにのみ対応します。
階層内のレベルをスキップできます。
デフォルト階層の選択をサポートします。
反転階層はサポートされません。
階層1ではDistrictがRegionに含まれ、階層2ではRegionがDistrictに含まれます。
この項の内容は次のとおりです。
新規ディメンション・モデルを作成するには、次の手順を実行します。
「デザイナ」タブで、以下に示すように、「ディメンションとキューブ」ノードの横の「新規ディメンション・モデル」アイコンをクリックします。
「定義」タブが表示され、新規に作成したディメンション・モデルの次の詳細を設定できます。
名前 - 新規に作成したディメンション・モデルの名前を入力します。
コード - 新規に作成したディメンション・モデルのコードを入力します。
説明 - 新規に作成したディメンション・モデルの説明を入力します。
「保存」アイコンをクリックします。
次に示すように、名前を指定した新しいディメンション・モデルが、2つのノード「ディメンション」および「キューブ」に表示されます。
新規ディメンション・オブジェクトを作成するには、次の手順を実行します。
「ディメンション」ノードを右クリックし、「新規ディメンション」オプションを選択して新規ディメンション・オブジェクトを作成します。
「キューブ」ノードを右クリックし、「新規キューブ」オプションを選択して新しいキューブ・オブジェクトを作成します。
新規ディメンション・オブジェクトが作成されます。
既存のディメンション・オブジェクトのプロパティを編集するには、次の手順を実行します。
編集する必要なディメンション・オブジェクトまたはキューブ・オブジェクトをダブルクリックします。
または右クリックして「開く」を選択します。
選択したディメンション・オブジェクトがディメンション・エディタまたはキューブ・エディタで開きます。ディメンション・エディタまたはキューブ・エディタでは、ディメンションまたはキューブの定義と実装のすべての面を完全に制御できます。これにより、作成したディメンション・オブジェクトに関連する様々な操作を最大限の柔軟さで実行できます。
ディメンション・エディタには、ディメンション・オブジェクトを簡単かつ効率的に管理するために必要な3つのタブがあります。制限は次のとおりです。
ディメンション・エディタの「定義」タブでは、新規に作成したまたは既存のディメンションの次のプロパティを定義できます。
名前- 作成したディメンションの名前を表します。
「名前」テキスト・ボックスに、作成したディメンションの必要な名前を入力します。
説明- 作成したディメンションの短い説明を表します。
「説明」テキスト・ボックスに作成したディメンションの短い説明を入力します。
パターン名 - 作成したディメンションに適用する必要のあるパターンのタイプを示します。
注意: ODIには、ディメンション・パターンと呼ばれるデフォルトのビルトイン・パターンがあります。 |
バインディング・データストア - 作成したディメンションがバインドされるデータストアを示します。
「サロゲート・キー・シーケンス」 - サロゲート・キーが使用されている場合に、ディメンションに対してサロゲート・キーを生成するために使用される、プロジェクト・ツリー(ディメンション・マッピングが作成される)からのシーケンスを表します。
注意: 「ネイティブ順序」タイプのプロジェクトODIシーケンスは、ディメンション・データストアが存在する同じ論理スキーマに作成される必要があります。 |
ディメンション・エディタの「レベル」タブでは、新規に作成または既存のディメンションのレベルとレベル属性を定義できます。次の表で構成されています。
「レベル」表
「レベル属性」表
親レベル参照
「レベル」表
ディメンションで利用できるレベルのリストは、「レベル」タブの上部にある「レベル」表に示されます。レベルは上から下に作成でき、これによりレベル関係の定義が容易になります。
レベルを作成または削除するには、「レベル」表のヘッダーにある「追加」の「+」または「x」アイコンをクリックします。
この「レベル」表には、次のパラメータが含まれます。
名前- 作成したレベルの名前を表します。
「名前」テキスト・ボックスに、新規に作成したレベルの名前を入力します。
説明- 作成したレベルの短い説明を表します。
「説明」テキスト・ボックスに、新規に作成したレベルの短い説明を入力します。
バインディング・データストア - ディメンション・データを格納するために使用されるデータストアを表します。
ステージング・データストア - このレベルの受信データを実際のバインディング・データストアにロードする前に、ステージするために使用されるデータストアを表します。
バインディング・データストアおよび「ステージング・データストア」はすでに存在し、同じデータ・モデルに表示されている必要があります。これらに加えて、バインドされたデータストアもデータベースで作成する必要があります。ディメンションが使用されるマッピングの実行中にステージング表が作成され、切捨てられます。これらのデータストアでは、すべての属性を、すべてのレベルのレベル属性、自然キー・メンバー属性および親レベル参照属性にバインドする必要があります。
「レベル属性」表
この表には、「レベル」表で選択したレベルのすべてのレベル属性が表示されます。
レベル属性を作成または削除するには、「追加」の「+」または「x」アイコンをクリックし、レベルの順序を変更するには、「レベル属性」表のヘッダーにある上向き矢印と下向き矢印アイコンをクリックします。
この「レベル」表には、次のパラメータが含まれます。
名前- 作成したレベル属性の名前を表します。
「名前」テキスト・ボックスに、新規に作成したレベル属性の名前を入力します。
サロゲート・キー - 選択した属性の特性、つまりサロゲート・キーとして扱うかどうかを表します。
サロゲート・キーチェック・ボックスを選択すると、選択した属性をサロゲート・キーとして使用できます。
説明- 新規に作成したレベル属性の短い説明を表します。
「説明」テキスト・ボックスに新規に作成したレベル属性の短い説明を入力します。
データ型 - 新規に作成したレベル属性のデータ型を表します。
「データ型」ドロップダウン・ボックスで、新規に作成したレベル属性の必要なデータ型を選択します。「データ型」ドロップダウン・ボックスの値は、ODIリポジトリに定義されている"汎用SQL"テクノロジのデータ型になります。
SCD 2設定 - 次の値が含まれます。
なし - 以下に示す属性のいずれも選択しない場合はこのオプションを選択します。
開始日 - この属性には、レコードの有効期間の開始日を格納します。
終了日 - この属性には、レコードの有効期間の終了日を格納します。
トリガー履歴 - これらは履歴値を格納する必要がある属性です。たとえば、PRODUCTSディメンションでは、Productレベルの属性PACKAGE_TYPEをトリガー属性にできます。属性の値を変更する場合、古い値を格納する必要があります。属性をバージョニングする必要がある場合に、属性に対してこのオプションを選択します。
SCD 2設定ドロップダウン・ボックスで、必要な値を選択します。
SCD 3の前の属性 -現在のレベルのレベル属性のリストを表します。このパラメータが設定されると、新規に作成されたレベル属性に対してSCD3が有効化されます。受信データにこの属性に対する変更が含まれている場合、その値は受信データにオーバーライドされる前にまずSCD3の前の属性に移動されます。
SCD 3の有効日 -このドロップダウン・ボックスには、現在のレベルのレベル属性がリストされます。新規に作成されたレベル属性に対してSCD3が有効な場合、前の値が設定されたタイムスタンプは、SCD3の有効日として指定されたレベル属性に格納されます。
属性 - 新しく作成したレベル属性のデータを格納するために使用するデータストア属性をバインディング属性ドロップダウン・ボックスから選択できます。バインディング属性の有効な値は、(スター・ディメンション実装の)「ディメンション」表の属性を構成します。
ステージング属性 - このレベル属性のデータを格納するために使用するデータベース属性をドロップダウン・ボックスから選択できます。ステージング属性の有効な値は、現在のレベルのバインディングとして選択されたステージング・データストアの属性を構成します。
注意: 同じレベルでは、1つのレベル属性のみがサロゲート・キー、SCD2開始日、SCD2終了日、SCD3の前の属性またはSCD3開始日として機能できます。特定のロールを持つ複数のレベル属性を設定しようとすると、エラー・メッセージが表示されます。 |
自然キー・メンバー - 「自然キー・メンバー」表には、「レベル」表で選択されているレベルの自然キーのキー・メンバーが表示されます。通常、自然キーはビジネス・キーまたはアプリケーション・キーと呼ばれ、ソース・システムの特定のレコードを一意に識別できるキー値を格納するために使用されます。
自然キー・メンバーを作成または削除するには、「追加」の「+」または「x」アイコンをクリックし、レベルの順序を変更するには、「自然キー・メンバー」表のヘッダーにある上向き矢印と下向き矢印アイコンをクリックします。この表には「レベル属性」列が表示されます。レベル属性は選択されたレベルの自然キーを構成します。この列の有効な値は、この列にリストされている現在のレベルのレベル属性のリストです。
「親レベル参照」表 - この表では、「レベル」表で選択したレベルから別の親レベルへの参照のリストが定義されます。この表は「レベル」表から導出されます
親レベル参照を作成または削除するには、親レベル属性表のヘッダーにある「追加」の「+」または「x」アイコンをクリックします。
機能的には、親レベル参照は親レベル・レコードを現在のレコードから取得する方法を定義します。現在のレコードの1つ以上の属性が、親レベルの対応する自然キー属性とマッチングするための外部キーとして使用されます。「親レベル参照」表には、次の列が含まれます。
名前- 作成した親レベル参照の名前を表します。
「名前」テキスト・ボックスに、新規に作成した親レベル参照の名前を入力します。
説明- 新規に作成した親レベル参照の短い説明を表します。「説明」テキスト・ボックスに、新規に作成した親レベル参照の短い説明を入力します。
親レベル - この参照が指し示す必要な親レベルを「親レベル」ドロップダウン・ボックスから選択します。「親レベル」列の有効な値は、現在選択されているレベルよりも高い「ディメンション」内のレベルです。
注意: 複数の親レベル参照で同じ親レベルを選択できます。これは、現在のレコードからその親レベルへの複数のパスがあることを意味します。 |
SCD 2設定 - このパラメータには、「なし」または「トリガー履歴」の2つの値があります。SCD 2設定で「トリガー履歴」を選択すると、「親レベル参照キー・メンバー」列のいずれかが受信データと異なる場合、ディメンションのロード中に新しい行が作成されます。
「親レベル参照キー・メンバー」表は「親レベル参照」表で選択されている親レベル参照から導出されます。親レベルにサロゲート・キーが含まれている場合、キー・メンバーはサロゲート・キーとなり、含まれていない場合は自然キーとなります。この表の各行には、親レベルのキー・メンバーが自動的に移入されます。この表には次の列が表示されます。
親キー属性 - 親レベルの自然キーの一部であるレベル属性。ディメンション・コンポーネントは、ODIで定義されたディメンションにデータをロードするマッピングに使用されます
外部キー属性 - このパラメータは、親レベルの対応する自然キー・メンバーとのマッチングに使用される現在のレベルのデータストア列を表します。「外部キー属性」ドロップダウン・ボックスの有効な値は、現在選択されているレベルのデータストアのすべての列です。
外部キー・ステージング属性 - このパラメータは、親レベルの対応する自然キー・メンバーとのマッチングに使用される現在のレベルのデータストア列を表します。「外部キー・ステージング属性」ドロップダウン・ボックスの有効な値は、現在選択されているレベルのステージング・データストアのすべての列です。
注意: スター・ディメンションでは、ディメンション・レコードが同じデータベース行に格納され、これには親レベルのすべての情報が含まれるため、親レベル参照のキー・メンバーを指定する必要はありません。 |
「階層」タブには、新規に作成されたディメンションに対して定義された階層のリストが表示されます。「階層」は、ディメンション・データが要約され、BIレポート・ツールでロールアップされる方法を定義します。
階層を作成または削除するには、「追加」の「+」または「x」アイコンをクリックし、レベルの順序を変更するには、「階層」表のヘッダーにある上向き矢印と下向き矢印アイコンをクリックします。「階層」表には次の列があります。
名前- 作成した階層の名前を表します。
「名前」テキスト・ボックスに、新規に作成した階層の名前を入力します。
説明- 新規に作成した階層の短い説明を表します。
「説明」テキスト・ボックスに、新規に作成した階層の短い説明を入力します。
デフォルト - ディメンションに複数の階層がある場合、問合せツールではデフォルト階層が表示されます。1つの階層のみをデフォルトとして定義できます。
「階層メンバー」表には、「階層」表で選択されている階層のレベル・メンバーのリストが表示されます。階層メンバーを作成または削除するには、「追加」の「+」または「x」アイコンをクリックし、レベルの順序を変更するには、「階層」表のヘッダーにある上向き矢印と下向き矢印アイコンをクリックします。階層メンバーは、ディメンションのレベルの自然な順序に基づいてソートされます。この表には次の列が表示されます。
レベル -新規に作成した階層の必要なレベルを「レベル」ドロップダウン・ボックスから選択します。ドロップダウン・ボックスにリストされている有効な値は、現在選択されている階層のメンバーではないディメンションのレベルのリストです(これは、前の階層メンバーより低いレベルです)。
たとえば、Brand、CategoryおよProductという3つのレベルを持つディメンションがある場合、最初の階層メンバーがBrandであれば、2番目の階層メンバーの有効なレベルはCategoryおよびProductです。
親レベル参照 - 選択したレベルからその直前の階層メンバーのレベルまで移動するために使用される親レベル参照です。ドロップダウン・ボックスの列およびその有効な値は、現在のレベルと直前の階層メンバーのレベルの間の親レベル参照です。
スキップ・レベル・メンバー表には、「階層メンバー」表で選択されている階層メンバー内のスキップ・レベル・メンバーのリストが表示されます。これにより、レベル内のデータに複数のパスを持たせて、別々の親レベルにロールアップすることができます(一部のパスは同じ階層の1つ以上の親レベルをスキップする場合があります)。
たとえば、小売企業のStoreという名前のディメンションにCity -> Region -> State -> Countyという順序で階層Storeがあるとします。この企業には他より重要なストアがいくつかあり、それらは支社の直轄となっています。その結果、StoreはCityおよびRegionという2つのレベルを持つことができます。ここでCityはオプションです。この階層を説明すると、Storeレベルの階層メンバーがあり、その親レベルはCityです。この階層メンバーにはスキップ・レベルもあり、その親レベル参照はRegionレベルを指し示しています。
親レベルで複数のパスをスキップできるため、「+」または「x」のボタンをクリックしてこれらの異なるロールアップ・パスを表すことができます。「スキップ・レベル」表には次の列があります。
親レベル参照: 階層内の前のレベルにスキップするために使用する親レベル参照。この列はドロップダウン・ボックスです。その有効な値は、現在選択されている階層メンバーのレベルに対して定義されている親レベル参照で、直前のレベルを指し示していない親レベル参照を含みます。
キューブ・エディタには、キューブ・オブジェクトを簡単かつ効率的に管理するために必要な3つのタブがあります。制限は次のとおりです。
キューブ・エディタの「定義」タブでは、新規に作成したまたは既存のキューブ・オブジェクトの次のプロパティを定義できます。
名前- 作成したキューブ・オブジェクトの名前を表します。
「名前」テキスト・ボックスに、作成したキューブ・オブジェクトの必要な名前を入力します。
説明- 作成したキューブ・オブジェクトの短い説明を表します。
「説明」テキスト・ボックスに、作成したキューブ・オブジェクトの短い説明を入力します。
バインディング・データストア- キューブ・データの格納に使用されるデータストアをホイールを使用して選択できます。ODIリポジトリのすべてのモデルにあるすべてのデータストアが表示されます。「キューブ」表のテキスト・ボックスの横にある「検索」アイコンをクリックして、必要なキューブ表を選択します。
キューブ・エディタの「詳細」タブでは、新規に作成したまたは既存のキューブ・オブジェクトの次のプロパティを定義できます。
注意: ODIは、キューブ情報を格納する単一のデータストアのみサポートします。 |
「ディメンション」表 - 「ディメンション」表には、キューブによって使用されているディメンショのリストが表示されます。「ディメンション」表のヘッダーにある「追加」の「+」または「x」ボタンを使用してディメンションを追加または削除できます。「ディメンション」表には次の列があります。
レベル - キューブに対して参照されるディメンションのレベルを示します。表の「レベル」パラメータの横に表示される「参照」アイコンをクリックすると、ODIリポジトリのすべてのディメンションにあるすべてのレベルが表示されます。レベルを選択すると、レベルの修飾名が(<dimension_name>.<level_name>の形式で)列に表示されます。
ロール - キューブ内で同じディメンションを複数回使用する場合、そのディメンションを一意に識別するために別名を入力します。これは「ロール」列を使用して実行できます。
「キー・バインディング」表 -「キー・バインディング」表は「ディメンション」表で導出されます。次のような列があります。
ディメンション・キー - 「ディメンション」表でディメンションを選択すると、「キー・バインディング」データストアが「ディメンション・キー」列に表示されます。ディメンションでサロゲート・キーを使用している場合はそれぞれのサロゲート・キーが表示され、サロゲート・キーを使用していない場合は自然キーが表示されます。
バインディング属性 - このパラメータでは、キューブ・バインディングデータストアにあるすべての属性が表示されます。ディメンション・キーまたはメジャーにすでにバインドされている属性がある場合、その属性は表示されません。
「メジャー」表 - 「メジャー」表は新しいメジャーの追加または削除に使用されます。「メジャー」表には次の列があります。
名前- 作成したメジャーの名前を示します。
「名前」列に、新規に追加したメジャーの名前を入力します。
説明- 作成したメジャーの短い説明を示します。
「説明」」列に新規に作成したメジャーの短い説明を入力します。
データ型 - 「データ型」ドロップダウン・リストからレベル属性のデータ型を選択します。この列の有効な値は、ODIリポジトリに定義されている"汎用SQL"テクノロジのすべてのデータ型になります。
サイズ - メジャーの長さまたは精度を示します。
スケール - このメジャー(数値データ型)のスケールを示します。
「バインディング」列 - この列は、メジャーのデータを格納するために使用されるデータストアを示します。この「バインディング」列の有効な値は、「キューブ」表の列です。ディメンション・キーまたはメジャーにすでにバインドされている属性がある場合、その属性はこの列に表示されません。
ディメンション・オブジェクトはマッピングで広く使用できます。
ディメンション・コンポーネントは、ディメンションおよび緩やかに変化するディメンションにデータをロードするマッピングに使用されます。
ディメンション・コンポーネントには、ディメンションの各レベルにグループが1つ含まれます。グループにはディメンション・レベルと同じ名前を使用します。各レベルのレベル属性は、レベルを表すグループの下に示されています。
ディメンジョン・レベルのサロゲート・キー属性または親参照キー属性にはデータ・フローをマップできません。
マッピングでディメンションを使用するには、次に示すように「ディメンションとキューブ」モデルからディメンションをドラッグして、マッピング・エディタのキャンバスにドロップします。
ディメンション・コンポーネントには、次のプロパティがあります。
ディメンション・コンポーネントの一般プロパティは次のとおりです。
名前- 作成したディメンション・コンポーネントの名前を示します。
説明- ディメンション・コンポーネントの作成時に指定される短い説明を示します。
ディメンション - ディメンションが関連付けられているベース・ディメンションに関する情報を示す読取り専用プロパティです。
データストア - 値がベース・ディメンションから導出される読取り専用のプロパティで、ベース・ディメンションがバインドされるデータストアの名前です。
順序 - ベース・ディメンションで使用される順序を表します。
記憶域タイプ - 「記憶域タイプ」のデフォルト値は「星」です。
コンポーネント・タイプ - 「コンポーネント・タイプ」のデフォルト値は「ディメンション」です。
パターン - 「パターン」のデフォルト値はディメンション・パターンで、独自のパターンを作成すると、ここに表示され、必要なパターンを選択できます。
コネクタ・ポイントは、マッピング内のコンポーネント間の接続を定義します。ディメンション・コンポーネントには入力コネクタ・ポイントしかありません。出力コネクタ・ポイントは無効です。入力コネクタ・ポイントのプロパティは次のとおりです。
ディメンション・コンポーネントの履歴プロパティは次のとおりです。
注意: これらのプロパティはタイプ2のSCDにのみ適用されます。 |
デフォルトの初期レコード有効時間- 特定のディメンション・レコードの初期ロードに対する有効時間として割り当てられるデフォルト値を表します。
デフォルトのオープン・レコード有効時間 - 初期レコードの後のオープン・レコードの有効時間に設定されるデフォルト値を表します。この値は変更しないでください。
デフォルトのオープン・レコード終了時間 - ディメンション内のすべてのレベルについて、新規に作成したオープン・レコードの終了時間として使用される日付値を表します。
緩やかな変化タイプ- これは読取り専用プロパティで、この値はSCD設定のタイプに基づいて設定されます。
タイプ2ギャップ - これは、バージョン管理されている古いレコードの有効時間とバージョン管理されたばかりの現在のレコードの開始時間の時間間隔を表します。
トリガー属性の値が更新されると、現行レコードはクローズされ、更新された値で新しいレコードが作成されます。古いレコードのクローズと現行レコードのオープンは同時に行われるため、古いレコードの終了時間とオープン・レコードの開始時間には同じ値を使用するより、間隔を開けると便利です。
タイプ2ギャップ・ユニット - 「タイプ2ギャップ」プロパティで示されたギャップ間隔を測定するために使用される時間単位を表します。オプションは、「秒」、「分」、「時間」、「日」および「週」です。デフォルト値は「秒」です。
キューブ・コンポーネントはキューブ・オブジェクトに基づき、ベース・キューブに応じた一連の属性があります。
キューブ・オブジェクトをマッピング・エディタにドラッグすると、そのキューブに基づいたキューブ・コンポーネントが作成されます。
注意: キューブ・コンポーネントはターゲットとしてのみ使用され、他のコンポーネントのソースとしては使用できません。 |
キューブ・コンポーネントには、次のプロパティがあります。
キューブ・コンポーネントには、ベース・キューブから導出された一連の入力マップ属性があります。制限は次のとおりです。
メジャー属性 - キューブ・コンポーネントのベース・キューブの各メジャーには、対応するマップ属性がキューブ・コンポーネントにあります。マップ属性はキューブ・メジャーにバインドされています。メジャー名はマップ属性名として使用されます。
ディメンション自然キー属性 - 参照先レベルの各自然キー属性には、対応するマップ属性がキューブ・コンポーネントにあります。マップ属性は、参照先レベルの自然キー・レベル属性にバインドされています。
キューブのディメンション参照にロール修飾子セットがある場合、マップ属性名は<dimension name>_<role name>_<attribute name>の形式になります。
キューブのディメンション参照にロール修飾子がない場合、マップ属性名は<dimension name>_<attribute name>の形式になります。
アクティブ日 - キューブ・コンポーネントのベース・キューブが少なくとも1つのSCD2ディメンションを参照している場合に作成される特殊なマップ属性です。
キューブ・コンポーネントのマップ属性が参照先ディメンションの自然キー識別子として表されている場合、次のプロパティがあります。
ターゲット
式
実行ヒント
固定実行場所
一般
名前
説明
データ型
サイズ
スケール
属性ロール - これは読取り専用プロパティで、属性を示し、自然キー識別子として表されます。
バウンド・オブジェクト - これは読取り専用プロパティです。この属性は自然キー・レベル属性にバインドされます。
キューブ・コンポーネントのマップ属性がキューブ・メジャーと対応している場合、次のプロパティがあります。
ターゲット
式
実行ヒント
固定実行場所
一般
名前
説明
データ型
サイズ
スケール
属性ロール - これは読取り専用プロパティで、属性を示し、キューブ・メジャーとして表されます。
バウンド・オブジェクト - これは読取り専用プロパティです。属性はキューブ・メジャーにバインドされています。
ソース集計関数 - これはメジャーに対するソース・ロード集計関数を示します。このプロパティは、キューブ・コンポーネントで「ソース集計の有効化」プロパティと一緒に使用します。ユーザー・インタフェースで、コンボ・ボックスに、汎用テクノロジのすべての集計関数がリストされます。
キューブ・コンポーネントの「アクティブ日」属性には、次のプロパティがあります。
ターゲット
式
実行ヒント
固定実行場所
一般
名前
説明
データ型 - アクティブ日属性のデフォルトのデータ型「TIMESTAMP」を示します。
サイズ
スケール
属性ロール - これは読取り専用のプロパティで、「アクティブ日」に設定されます。「アクティブ日」属性にはデフォルトの式があり、「FUNC_SYSDATE」に設定されます。「FUNC_SYSDATE」はグローバル・ユーザー関数です。この関数はディメンション・コンポーネントでも使用されます。
キューブ・コンポーネントには次の一般プロパティがあります。
名前- キューブ・コンポーネントの名前を示します。
説明- マッピングの短い説明を示します。
キューブ - キューブ・コンポーネントのベース・キューブを提供する読取り専用プロパティです。
データストア - 読取り専用プロパティで、この値がベース・キューブから導出されます。このコンポーネントのベース・キューブのバインドされているデータストアです。
コンポーネント・タイプ - これは読取り専用プロパティで、その値はデフォルトで「キューブ」です。
パターン - 現在は、パターン(キューブ・パターン)のみ選択できます。
キューブ・コンポーネントには次のターゲット・プロパティがあります。
統合タイプ - 「統合タイプ」には3つのタイプがあります。制限は次のとおりです。
なし
増分更新
制御追加
デフォルト値は、「増分更新」です。「統合タイプ」は最終的にデフォルトのIKMの決定に役立ち、IKM選択セットを制限します。
ソース集計の有効化 - このプロパティが有効な場合、ファクト表をロードする前に、集計コンポーネントがキューブ・コンポーネントの拡張したマップに追加されます。ソース行セットはディメンション参照属性でグループ化されます。メジャー集計関数は、SOURCE_AGGREGATION_FUNCTION属性プロパティによって判別されます。
この項では、ディメンション・コンポーネントとキューブ・コンポーネントの拡張について簡単に説明します。
ディメンション・コンポーネントは拡張可能なコンポーネントで、再利用可能なマッピングと同様に拡張できます。
ディメンション・コンポーネントを拡張するには、ディメンション・コンポーネントを右クリックし、ポップアップ・メニューで「開く」を選択します。
これによって、ディメンション・コンポーネントの拡張されたマッピングに切り替わります。拡張されたマッピングは選択したパターンによって決定されます。
通常、ディメンション・コンポーネントの拡張されたマッピングは次のようになります。
キューブ・コンポーネントは拡張可能なコンポーネントで、再利用可能なマッピングと同様に拡張できます。
キューブ・コンポーネントを拡張するには、キューブ・コンポーネントを右クリックし、ポップアップ・メニューで「開く」を選択します。
これによって、キューブ・コンポーネントの拡張されたマッピングに切り替わります。拡張されたマッピングは選択したパターンによって決定されます。
通常、キューブ・コンポーネントの拡張されたマッピングは次のようになります。