この章では、ターゲット・スキーマの概要について説明します。データ・ウェアハウス内のデータは、ターゲット・スキーマに格納されます。このデータは、表、ビュー、ディメンションおよびキューブなどのデータ・オブジェクトの形式をとります。一般的なデータ・ウェアハウスの実装では、通常1つのみのターゲット・スキーマがあり、それがデータ・ウェアハウスのターゲットとなります。リレーショナル・ターゲット・スキーマおよびディメンション・ターゲット・スキーマの両方を設計できます。
この章の内容は次のとおりです。
ターゲット・スキーマにはデータ・オブジェクトが含まれており、そのデータオブジェクトにはデータ・ウェアハウスが含まれています。ターゲット・スキーマを設計するには、表2-1にリストされたディメンション・オブジェクトまたはリレーショナル・オブジェクトのいずれかを作成します。
リレーショナル・ターゲット・スキーマまたはディメンション・ターゲット・スキーマを設計できます。この項では、ディメンションという用語は、通常のディメンションおよび緩やかに変化するディメンション(SCD)の両方を指します。
関連項目: 用語集は、『Oracle Warehouse Builder概要』を参照してください。 |
ターゲット・スキーマを設計する手順は、次のとおりです。
データ・ウェアハウスのデータ・オブジェクトを含むターゲット・モジュールを作成します。
ターゲット・モジュールの作成方法の詳細は、「ターゲット・モジュールの作成」を参照してください。
ターゲット・スキーマを定義します。スキーマは、リレーショナル・ターゲット・スキーマまたはディメンション・ターゲット・スキーマになることができます。
詳細は、「リレーショナル・ターゲット・スキーマの設計」または「ディメンション・ターゲット・スキーマの設計」を参照してください。
ターゲット・モジュールは、すべてのデータ・ウェアハウス・オブジェクトのメタデータ定義を保持するコンテナです。各ターゲット・モジュールは、オブジェクトが格納される物理ロケーションを表すターゲット・ロケーションに対応します。
関連項目: Oracle Warehouse Builderでサポートされるターゲットの詳細は、Oracle Warehouse Builderソースおよびターゲット・ガイドを参照してください。 |
ターゲット・モジュールを作成する手順は、次のとおりです。
ターゲット・モジュールを作成するプロジェクト・ノード、作成するターゲットのタイプを表すノードの順に開きます。
作成できるターゲットの各タイプについて個別のノードが表示されます。Oracle Databaseにターゲット・スキーマを作成する場合は、「データベース」ノード、続いて「Oracle」ノードの順に開きます。フラット・ファイル・ターゲットを作成するには「ファイル」ノードを開きます。
作成するターゲットのタイプを右クリックして新規タイプ・モジュールを選択します。
たとえば、Oracleモジュールを作成する場合は、「データベース」ノードを開いて、「Oracle」ノードを右クリックし、新規Oracleモジュールの順に開きます。フラット・ファイル・モジュールを作成するには、「ファイル」ノード上で右クリックして新規フラット・ファイル・モジュールを選択します。
ようこそページで「次へ」をクリックします。
名前と説明ページに、次のフィールドの説明を入力します。「次へ」をクリックします。
名前: ターゲット・モジュールの名前を入力します。
説明: ターゲット・モジュールの説明(オプション)を入力します。
名前と説明は、「データ・オブジェクトのネーミング規則」で指定されたネーミング標準に準拠している必要があります。
接続情報ページで、データ・ウェアハウス・オブジェクトが格納される物理ロケーションの詳細を入力して「終了」をクリックします。
データ・オブジェクトが格納される物理ロケーションに対応するロケーションを作成している場合は、このロケーションを「ロケーション」リストから選択します。
データ・モジュールが作成され、プロジェクト・ナビゲータに追加されます。これでターゲット・モジュールにデータオブジェクトを作成できます。
ユーザー・フォルダを作成して、モジュール内のすべてまたは一部のオブジェクトを特定のオブジェクト特性に基づいて編成できます。たとえば、ユーザー・フォルダを作成してその機能(販売、マーケティング、管理)に基づいて表をグループ化します。
関連項目: モジュール内でのユーザーフォルダ作成の詳細は、Oracle Warehouse Builderソースおよびターゲット・ガイドを参照してください。 |
リレーショナル・ターゲット・スキーマは、表、ビュー、マテリアライズド・ビューおよび順序などのリレーショナル・データ・オブジェクトを含むターゲット・スキーマです。すべてのウェアハウスのデータはこれらのオブジェクトに格納されています。
リレーショナル・ターゲット・スキーマを設計する手順は、次のとおりです。
まだ作成していなければ、ターゲット・スキーマのオブジェクトを含むOracleモジュールを作成します。このモジュールに関連付けられたロケーションがこのターゲット・オブジェクトを格納するために作成されていることを確認します。
ターゲット・スキーマの一部であるリレーショナル・データ・オブジェクトを定義します。
リレーショナルデータオブジェクトには、表、ビュー、マテリアライズド・ビューおよび順序が含まれます。既存のターゲット・オブジェクトをインポートしている場合があります。追加のデータ・オブジェクトを作成するには、「リレーショナル・データ・オブジェクトの作成」を参照してください。制約、索引およびパーティションなどのリレーショナル・オブジェクトに関する追加構造を定義できます。
この手順で作成するのは、ワークスペース内のオブジェクトの定義のみです。ターゲット・スキーマ内にオブジェクトを作成するために、これらのオブジェクトを配布する必要があります。
データ・オブジェクトを構成します。
この手順では、データ・オブジェクトの物理プロパティを設定します。たとえば、表を作成する必要のある表領域の名前を指定します。各データ・オブジェクトには、デフォルト構成パラメータのセットがあります。これらのデフォルト値は変更できます。
「データ・オブジェクトの構成」を参照してください。
データ・オブジェクトの検証検証できるのは、Oracleデータ・オブジェクトのみであり、DB2やSQL Serverなどの他のデータベースのデータ・オブジェクトは検証できません。
メタデータ定義およびデータ・オブジェクトの構成パラメータが検証されます。検証中に発生したエラーは修正します。
「データ・オブジェクトの検証」を参照してください。
ターゲット・スキーマ内にこれらのデータ・オブジェクトを作成するコードを生成します。作成でるのはOracleデータ・オブジェクトのコードのみです。
手順2で作成されたデータ・オブジェクトをターゲット・スキーマに作成するために必要なコードが生成されます。
「データ・オブジェクトの生成」を参照してください。
ディメンション・ターゲット・スキーマでは、ディメンション・オブジェクトを使用してデータ・ウェアハウスのデータを格納します。ディメンション・オブジェクトには、ディメンションとキューブがあります。ディメンション・オブジェクトにより、ターゲット・スキーマの視覚化が、表を重視する環境から、よりビジネスに焦点を当てた環境に変換されます。これは、複雑な分析の問合せに対し、高速で効果的な答えを得るのに役立ちます。
Oracleモジュールでは、ディメンション・データ・スキーマのみを作成できます。
ディメンション・ターゲット・スキーマを設計する手順は、次のとおりです。
ディメンション・オブジェクトを含めるOracleモジュールを作成します(まだ作成していない場合)。このモジュールに関連付けられたロケーションがこのターゲット・スキーマを指していることを確認します。
「ディメンションの作成」の説明に従ってターゲット・スキーマに必要なディメンションを定義します。
この手順で作成するのはワークスペース内のディメンションの定義のみです。ターゲット・スキーマ内にオブジェクトを作成するために、これらのディメンションを配布する必要があります。
「時間ディメンションの作成」の定義に従ってターゲット・スキーマに必要な時間ディメンションを定義します。
データ・ウェアハウスでは、広範囲に時間ディメンションを使用して一時データを格納します。
「キューブの作成」の説明に従ってターゲット・スキーマに必要なキューブを定義します。
ディメンションおよびキューブを構成します。
手順2、3および4で作成したディメンション・オブジェクトを構成してこれらのオブジェクトの物理プロパティを設定します。デフォルトのプロパティをそのまま使用するか、または変更します。
ディメンションおよびキューブを検証します。
この手順では、メタデータ定義および手順2、3および4で作成したディメンション・オブジェクトの構成パラメータを検証します。エラーが検出された場合は修正します。
「データ・オブジェクトの検証」を参照してください。
ターゲット・スキーマ内にこれらのディメンションおよびキューブを作成するコードを生成します。
「データ・オブジェクトの生成」を参照してください。
構成により、データ・オブジェクトの物理的な特性が定義されます。たとえば、表領域を定義して、表の構成内に性能パラメータを設定できます。または、ディメンション・オブジェクトの実装タイプを指定できます。配布前であればいつでも、オブジェクトの構成を変更できます。
同じオブジェクト・セットに対して複数の構成を定義できます。この機能は、テスト環境や本番環境など、複数の環境に配布する場合に便利です。
関連項目: 複数構成の作成の詳細は、『Oracle Warehouse Builderインストレーションおよび管理ガイド』を参照してください。 |
すべてのオブジェクトには、デフォルトでTrueに設定された「配布可能」パラメータが指定されています。オブジェクトの配布を避けるには、このパラメータをFalseに設定します。
プロジェクト・ナビゲータを使用してオブジェクトを構成します。プロジェクト・ナビゲータのオブジェクトを右クリックして、「構成」を選択します。選択したオブジェクトの構成パラメータを含む新しいタブが表示されます。構成パラメータに必要な値を指定します。
検証とは、メタデータ定義および構成パラメータを検証するプロセスです。これらの定義は、スクリプトの生成および配布の前に検証する必要があります。
Oracle Warehouse Builderにより一連の検証テストが実行され、データ・オブジェクト定義が完全であることとスクリプトが生成および配布可能であることが確認されます。これらのテストが完了すると、結果が表示されます。Oracle Warehouse Builderを使用してオブジェクト・エディタを開き、続行する前に、すべての無効なオブジェクトを修正できます。スタンドアロン操作であることに加えて、オブジェクトを生成または配布するときに検証が暗黙的に発生します。
潜在的な問題を検出し、発生に応じて問題に対応するために、データ・オブジェクト定義の作成後と、配布するオブジェクトの構成後という2段階で検証します。配布するオブジェクトの構成後の方が、オブジェクト定義の作成後よりも検証が広範になります。
注意: 発生に応じて問題を解決するために、オブジェクトは作成および構成時に検証してください。設計の検証時と構成の検証時には同じエラー・チェック・プロセスが実行されます。 |
オブジェクトの定義後にオブジェクトを検証する場合、設計したオブジェクトのメタデータ定義にエラーがあるかどうかがチェックされます。たとえば、表を作成する場合、その列を定義する必要があります。このオブジェクトの検証時には、表のすべてのコンポーネントが定義されているかどうかが検証されます。これらのコンポーネントが欠落している場合、ログウィンドウに検証メッセージが表示されます。
オブジェクトの構成後にオブジェクトを検証する場合、オブジェクトを問題なく生成および配布可能かどうかを確認するために、メタデータ定義にエラーがあるかどうかが再チェックされ、構成パラメータがチェックされます。その後、無効なオブジェクトを編集できます。
1つのオブジェクトを検証することも、複数のオブジェクトをシミュレートすることも可能です。モジュールやプロジェクトなどのオブジェクトを含むオブジェクトも検証できます。この場合、そのオブジェクトに含まれるすべてのデータ・オブジェクトが検証されます。プロジェクト・ナビゲータを使用してデータ・オブジェクトを検証します。
プロジェクト・ナビゲータを使用したデータ・オブジェクトの検証
プロジェクト・ナビゲータで、データ・オブジェクトを選択して、「検証」を選択します。「ファイル」メニューから、「検証」を選択します。オブジェクトの選択時に、[Ctrl]キーを押したままにすると複数のファイルを選択できます。
または
プロジェクト・ナビゲータで、1つのまたは複数のデータ・オブジェクトを選択します。複数のオブジェクトを選択するには、オブジェクトの選択中に[Ctrl]キーを押し続けます。データ・オブジェクトを右クリックし、「検証」を選択します。複数のオブジェクトを選択した場合は、右クリックするときに[Ctrl]を押し続けていることを確認します。
注意: 同じタイプの複数オブジェクトのみ選択できます。たとえば、表を8個選択できますが、表を5個とビューを3個は選択できません。 |
データオブジェクトの検証時に、検証結果は「ログ」ウィンドウに表示されます。「結果」という名前の新しいタブが各検証について表示されます。このタブには選択したオブジェクトの検証結果が含まれます。
「結果」タブを閉じた後でも、オブジェクトの検証結果を表示することができます。「表示」メニューからプロジェクト・ナビゲータのオブジェクトを選択して、「検証メッセージ」を選択します。「ログ」ウィンドウには、選択したオブジェクトの検証結果が表示されます。モジュール・ノードまたは表ノードのようなコンテナ・オブジェクトを選択して、検証結果を表示することができます。このアクションで検証メッセージを表示します。
「ログ」ウィンドウにデータ・オブジェクトの検証結果が表示されます。このウィンドウから、オブジェクトのエディタを開き、定義内でエラーを修正できます。
無効な定義を編集する手順は、次のとおりです。
「ログ」ウィンドウで、編集するオブジェクトに対応する「結果」タブをクリックします。オブジェクトに対応するノードを選択して、「ログ」ウィンドウツールバー上の「ソースを表示」をクリックします。
または
「ログ」ウィンドウで、編集するオブジェクトの検証結果を表示する「結果」タブをクリックします。オブジェクト・ノードの「検証」ノードを開いて、検証メッセージを表示します。この検証メッセージをダブルクリックして、オブジェクトを編集するエディタを開きます。または、メッセージを右クリックして「ソースを表示」を選択します。
オブジェクトを編集して問題を修正した後、ツールバーの「すべて保存」をクリックして変更を保存し、オブジェクトを再度検証します。
データ・オブジェクトを生成すると、Oracle Warehouse Builderにより、ターゲット・スキーマ内にデータ・オブジェクトを作成するために必要なコードが生成されます。通常、データ・オブジェクトはSQLスクリプトを生成します。SQLスクリプトでは、ディメンションやキューブ生成のようなAPIを使用したオブジェクトの作成にDDL文とPL/SQLブロックの両方を含む場合があります。生成されたスクリプトを表示し、ファイル・システムにそれらのスクリプトを格納することもできます。
データ・オブジェクトのコードを生成すると、Oracle Warehouse Builderにより、最初にオブジェクトが検証され、次にコードが生成されます。検証の手順はスキップして、直接データ・オブジェクトのコードを生成する場合もあります。ただし、オブジェクトを生成する前にオブジェクトを検証することをお薦めします。この検証により、コードが生成される前に、データ・オブジェクト定義内のエラーを検出して修正できます。
単一のデータ・オブジェクトの生成方法は次のとおりです。
プロジェクト・ナビゲータで、データ・オブジェクトを選択して、「生成」をクリックします。
または
プロジェクト・ナビゲータで、データ・オブジェクトを選択して、「ファイル」メニューから「生成」を選択します。
または
プロジェクト・ナビゲータで、データ・オブジェクトを選択して、「生成」をクリックします。
複数のデータ・オブジェクトのコード生成は次のとおりです。
プロジェクト・ナビゲータで、[Ctrl]キーを押したままにしてデータ・オブジェクトを選択し、「生成」をクリックします。
または
プロジェクト・ナビゲータで、[Ctrl]キーを押し続けて、「生成」を右クリックします。
すべてのデータ・オブジェクトが同じタイプの場合にのみ、複数のオブジェクトのコードを同時に選択して生成できます。たとえば、12個のテーブルのコードを同時に生成できます。ただし、3個のテーブルと2個のディメンションを生成することはできません。
コレクションを使用して、異なるタイプで異なるモジュールに属する複数のデータ・オブジェクトのコードを生成することができます。コレクションを作成して、同時にコレクションに生成するすべてのオブジェクトを追加し、そのコレクションを生成することができます。
データ・オブジェクトの再生成
データ・オブジェクト定義に変更を加えた場合、データ・オブジェクトの修正したスクリプトを生成できます。プロジェクト・ナビゲータで、データ・オブジェクトを選択して、「生成」をクリックします。
修正したスクリプトを表示する前に、以前に生成したスクリプトを含んでいる開いているタブを閉じます。元のエディタ・ウィンドウを閉じないで同じスクリプトを2回開く操作では、不正な結果が表示されます。
検証が正常に終了した場合、オブジェクトの生成時に、その生成結果は「ログ」ウィンドウに表示されます。各生成操作の結果は、別の「結果」タブに表示されます。
生成済のスクリプトを表示する手順は、次のとおりです。
ログウィンドウで、必要なオブジェクトについての生成結果を含む「結果」タブをクリックします。
オブジェクト・ノード、「検証」ノードの順に開いて、検証結果を表示します。
データ・オブジェクトが正常に検証された後に、Oracle Warehouse Builderでスクリプトが生成されます。
オブジェクト・ノードの「スクリプト」ノードを開きます。
選択したデータ・オブジェクトについて生成されたスクリプトのリストが表示されます。
特定のスクリプトを選択し、「ログ」ウィンドウのツールバーで「スクリプトの表示」をクリックします。または、特定のスクリプトを右クリックして「ソースを表示」を選択します。
選択したスクリプトが、読取り専用でコード・ビューアに表示されます。