この章では、ETLプロセスのカスタマイズ、設計、実行およびモニターについて説明します。
この章の内容は次のとおりです。
ソース・システムのメタデータは、コンテナに保持されます。事前に構成済のコンテナのメタデータは変更できません。事前に構成済のコンテナのメタデータをカスタマイズする場合、まずコンテナのコピーを作成する必要があります。DACでは、コピーされたコンテナのすべてのカスタマイズを追跡するため、元のオブジェクトに加えて新規作成および変更されたオブジェクトをいつでも検索できます。
また、メタデータをカスタマイズして独自のコンテナを構築する場合は、空のコンテナを新たに作成することもできます。
新規コンテナの作成または既存コンテナのコピーを行うには:
DACのメニュー・バーで、「File」→「New Source System Container」を選択します。
コンテナのIDおよび名前を入力します。
「ID」フィールドおよび「Name」フィールドには、英数字を入力します。「Name」には空白を含めることができますが、「ID」には含めることができません。
次のいずれかを選択します。
Create Empty New Source System Container
Create as a Copy of Source System Container
空の新規コンテナを作成する場合は、「OK」をクリックします。
既存のコンテナをコピーする場合は、ドロップダウン・リストから既存のコンテナを選択してから「OK」をクリックします。
テーブル、カラムおよびインデックスをデータ・ウェアハウスに追加して、それらの既存のオブジェクトを変更できます。このような方法でデータ・ウェアハウスをカスタマイズするには、DACおよびInformaticaクライアント・ツールを使用する必要があります。Informaticaクライアント・ツールを使用してOracle Business Analytics Warehouseをカスタマイズする操作の詳細は、『Oracle Business Intelligence Applicationsインストレーションおよび構成ガイド』を参照してください。
図5-1に、データ・ウェアハウスへの新しいオブジェクトの追加または既存のオブジェクトの変更に必要な主な手順を示します。図5-1に示すように、DACで新しいデータ・ウェアハウス・オブジェクトを追加または変更してから、DACのData Warehouse Configuratorを使用して、データ・ウェアハウスのオブジェクトを作成または更新することによって、カスタマイズ・プロセスを開始できます。また、データ・ウェアハウス・データベースでオブジェクトを直接追加または変更してから、DACの「Import from Database」コマンドを使用してDACに新しいオブジェクトを追加することもできます。
図5-1に示すように、データ・ウェアハウスに新しいオブジェクトを追加するプロセス・フローには、2つの方法があります。DACにテーブルおよびカラムの定義を入力してから、DACのData Warehouse Configuratorを使用してデータ・ウェアハウス・データベースのテーブルおよびカラムを作成できます。この方法の詳細は、「DACのData Warehouse Configuratorを使用してデータ・ウェアハウスに新しいテーブルおよびカラムを追加するには:」の手順を参照してください。
また、データ・ウェアハウス・データベースに新しいテーブルおよびカラムの定義を直接追加してから、DACの「Import from Database」コマンドを使用して、DACで新しいテーブルおよびカラムを追加することもできます。この方法の詳細は、「DACの「Import」コマンドを使用して新しいテーブルおよびカラムを追加するには:」の手順を参照してください。
DACのData Warehouse Configuratorを使用してデータ・ウェアハウスに新しいテーブルおよびカラムを追加するには:
DACのツールバーで、ドロップダウン・リストから適切なソース・システム・コンテナを選択します。
メニュー・バーで、「Views」→「Design」→「Tables」を選択します。
新しいテーブルを作成します。
「Tables」タブで「New」をクリックします。
「Edit」子タブで、テーブルについての適切な情報を入力して「Save」をクリックします。
このタブのフィールドの詳細は、「「Tables」タブ」を参照してください。
新しいテーブルのカラムを追加します。
「Columns」子タブで「New」をクリックします。
テーブルに追加する各カラムに適切なカラム情報を入力して、「Save」をクリックします。
適切な外部キーのテーブルおよびカラムの情報を入力します。
|
注意: パフォーマンス向上のために、要素テーブルの次元に入れるカラムは254個以内にすることをお薦めします。 |
データ・ウェアハウス・データベースに、新しいテーブルおよびカラムを作成します。
「Tools」→「ETL Management」→「Configure」を選択します。
データベース・プラットフォームとして適切な「Source」および「Target」を選択してから、「OK」をクリックします。
Data Warehouse Configurationウィザードで、「Create Data Warehouse Tables」を選択してから、「Next」をクリックします。
必要な情報を入力してから、「Start」をクリックします。
通知メッセージが出力され、プロセスが成功したかどうかがレポートされます。このプロセスの詳細は、OracleBI\DAC\log\configフォルダにあるcreatewtables.logファイルで確認できます。
DACの「Import」コマンドを使用して新しいテーブルおよびカラムを追加するには:
データ・ウェアハウス・データベースに、新しいテーブルおよびカラムの定義を追加します。
DACのツールバーで、ドロップダウン・リストから適切なソース・システム・コンテナを選択します。
メニュー・バーで、「Views」→「Design」→「Tables」を選択します。
新しいテーブルの定義をインポートします。
右クリックして「Import from Database」→「Import Database Tables」を選択します。
「Import Tables」ダイアログで、「DataWarehouse」を選択します。
手順1で入力したテーブル名を特定するフィルター条件を入力します(省略可能)。
使用可能なフィルターのコマンドおよび演算子については、「DACのクエリーのコマンドおよび演算子」を参照してください。
「Read Tables」をクリックします。
表示されたテーブルのリストで、インポートするテーブルの「Import」チェック・ボックスを選択します。
「Import Tables」をクリックします。
通知メッセージが出力され、プロセスが成功したかどうかが示されます。
新しいカラムの定義をインポートします。
「Tables」タブで、手順4でインポートしたテーブル用にクエリーを実行します。
テーブルをハイライトした状態で右クリックして「Import from Database」→「Import Database Columns」を選択します。
「Importing Columns...」ダイアログで、「Selected Record Only」を選択してから、「OK」をクリックします。
「Import Table Columns」ダイアログで、「Read Columns」をクリックします。
「Changes」カラムには、次のようなカラムの変更の説明が表示されます。
| 変更内容 | 説明 |
|---|---|
| The object was added to the database. | このカラムはデータベースにありますが、DACリポジトリにはありません。これをインポートすると、DACリポジトリにカラムが追加されます。 |
| The object was added to the repository. | このカラムはDACリポジトリにありますが、データベースにはありません。これをインポートすると、DACリポジトリからカラムが削除されます。 |
| The object was modified. | データベースのカラム定義が、DACリポジトリの定義と一致していません。 |
表示されたカラムのリストで、インポートするカラムの「Import」チェック・ボックスを選択します。
「Import Columns」をクリックします。
通知メッセージが出力され、プロセスが成功したかどうかが示されます。
次の手順に従って、データ・ウェアハウスに新しいインデックスを追加します。
データ・ウェアハウスに新しいインデックスを追加するには:
データ・ウェアハウス・データベースに、新しいインデックス定義を追加します。
DACのツールバーで、ドロップダウン・リストから適切なソース・システム・コンテナを選択します。
メニュー・バーで、「Views」→「Design」→「Tables」を選択します。
インデックス定義をインポートするテーブルにクエリーを実行します。
右クリックして「Import from Database」→「Import Indices」を選択します。
選択したテーブルのインデックスをインポートするか、またはクエリーで取得されたすべてのレコードのインデックスをインポートするかを選択して、「OK」をクリックします。
「Import Indices」ダイアログで、「Data Sources」ドロップダウン・リストから「DataWarehouse」を選択します。
「Read Indices」をクリックします。
表示されたインデックスのリストで、インポートするインデックスの「Import」チェック・ボックスを選択します。
「Import Indices」をクリックします。
通知メッセージが出力され、プロセスが成功したかどうかが示されます。
この手順では、Informaticaクライアント・ツールを使用して、Informaticaリポジトリに新しいデータ・ウェアハウス・オブジェクトをインポートする必要があります。データ・ウェアハウスをカスタマイズする手順については、『Oracle Business Intelligence Applicationsインストレーションおよび構成ガイド』を参照してください。
この手順では、Informaticaクライアント・ツールを使用して、Informaticaリポジトリにインポートしたデータ・ウェアハウス・オブジェクトに、Informaticaの新しいマッピングおよびワークフローを作成する必要があります。データ・ウェアハウスをカスタマイズする手順については、『Oracle Business Intelligence Applicationsインストレーションおよび構成ガイド』を参照してください。
Informaticaで作成したすべての新しいワークフロー、および変更したすべてのワークフローで、次の手順を実行する必要があります。
Informaticaの新規または変更されたワークフローに対して、DACでタスクを作成するには:
DACのツールバーで、ドロップダウン・リストから適切なソース・システム・コンテナを選択します。
Informaticaリポジトリで作成したカスタム・フォルダに対応するカスタム論理および物理タスク・フォルダを、DACで作成します。
DACで「Tools」にナビゲートして、「Seed Data」→「Task Folders」を選択します。
カスタム論理フォルダを作成するには、「New」をクリックします。
「Name」フィールドに、カスタム論理フォルダの名前を入力します(たとえば、Custom Logical)。
「Type」フィールドで、「Logical」を選択します。
カスタム物理フォルダを作成するには、「New」をクリックします。
「Name」フィールドに、カスタム物理フォルダの名前を入力します(たとえば、Custom Physical)。
「Type」フィールドで、「Physical」を選択します。
手順2で作成したフォルダを「Source System Folders」タブで登録します。
「Design」にナビゲートしてから、「Source System Folders」を選択します。
「New」をクリックします。
「Edit」子タブの「Logical Folder」フィールドに、カスタム論理フォルダの名前を入力します。
「Physical Folder」フィールドにカスタム物理フォルダの名前を入力して、「Save」をクリックします。
ワークフローの新しいタスクを作成します。
「Design」にナビゲートして「Tasks」を選択し、上部ペインのツールバーで「New」をクリックします。
「Edit」子タブで、Informatica Workflow Managerに表示するワークフロー名を入力します。
右クリックして「Synchronize Tasks」を選択します。
「Selected Record Only」を選択して、「OK」をクリックします。通知メッセージ・ボックスで「OK」をクリックします。
このコマンドにより、DACとInformaticaの間で、ソース・テーブルとターゲット・テーブルの情報が同期化されます。
「Tasks」タブで、タスクに必要な残りの情報を入力します。
このタブのフィールドの詳細は、「「Tasks」タブ」を参照してください。
これで、新しいテーブルをサブジェクトエリアに関連付ける準備ができました。サブジェクトエリアの作成の詳細は、「サブジェクトエリアの作成」を参照してください。
タスク・フェーズ依存性により、タスクの実行順序を変更できます。
タスク・フェーズ依存性を設定するには:
DACのツールバーで、ドロップダウン・リストから適切なソース・システム・コンテナを選択します。
メニュー・バーで、「Views」→「Design」→「Tasks」を選択します。
フェーズ依存性を追加するタスクにクエリーを実行して、そのタスクがハイライトされていることを確認します。
「Phase Dependency」子タブをクリックします。
「Add/Remove」をクリックします。
「Choose Phases」ダイアログで、フェーズを選択して「Add」をクリックします。
フェーズが追加されたことを示すメッセージ・ボックスで「OK」をクリックします。
「Action」と「Grain」を選択して、「OK」をクリックします。
これらのフィールドの詳細は、「「Task」タブ: 「Phase Dependency」サブタブ」を参照してください。
「Phase Dependency」子タブで、タスク・フェーズ依存性が表示されます。
適切なサブジェクトエリアを再アセンブルします。
「Subject Areas」タブで、適切なサブジェクトエリアにクエリーを実行します。
「Assemble」をクリックします。
実行プランを再構築します。
「Execute」ビューの「Execution Plans」タブにナビゲートします。
適切な実行プランに対してクエリーを実行します。
「Parameters」子タブで「Generate」をクリックします。
上部ペインのツールバーで、「Build」をクリックします。
DACでは、依存性ルールに基づいて、タスクが依存性構造に自動的に編成されます。DACの依存性ルールの詳細は、「実行プラン内でタスクの実行順序をDACが決定する方法」を参照してください。プロパティが同じタスクには、無作為に優先順位が割り当てられます。タスク・グループ機能を使用して、同じプロパティを共有するタスクなどをグループ化し、選択した優先順位を強制できます。
この機能は、切捨ておよび再起動性の目的、プロパティが類似している複数のタスクで同じテーブルに書き込む場合、およびテーブル間に循環的な読取り/書込みの関係がある場合(たとえば、タスク1でテーブルAから読み取ってテーブルBに書き込み、タスク2でテーブルBから読み取ってテーブルAに書き込む場合)に有用です。
タスク・グループを作成するには:
DACのツールバーで、ドロップダウン・リストから適切なソース・システム・コンテナを選択します。
メニュー・バーで、「Views」→「Design」→「Task Groups」を選択します。
新しいタスク・グループを作成します。
上部ペインのツールバーで、「New」をクリックします。
「Edit」子タブに名前を入力して、適切なプロパティを選択します。
「Child Tasks」子タブをクリックして、ツールバーで「Add/Remove」をクリックします。
「Choose Child Tasks」ダイアログの左側のウィンドウで、タスク・グループに追加するタスクにクエリーを実行します。
タスクを選択して「Add」をクリックします。
右側のウィンドウに実行順序を入力します。
「Save」→「OK」をクリックして、ウィンドウを閉じます。
この項では、DACでパラメータを処理する方法、およびソース・システム・レベルおよびタスク・レベルでパラメータを定義して管理する方法について説明します。この項の内容は次のとおりです。
Oracle Business Intelligence ApplicationsのETLロジックでは、Informaticaのマッピングおよびセッションでパラメータを使用します。パラメータの定義および管理には、DACのパラメータ管理機能を使用します。パラメータは、ソース・システム・コンテナの下のすべてのタスクに適用することも(ソース・システム・パラメータといいます)、特定のタスクに適用することも(タスク・レベル・パラメータといいます)できます。タスク・レベルで設定されたパラメータは、ソース・システム・レベルで設定されたパラメータより優先されます。
DACには、静的とランタイムという2種類のパラメータがあります。静的パラメータの値は、すべてのETL実行で一定に保持されます。静的パラメータには、言語コードや通貨などがあります。ランタイム・パラメータの値は動的で、ETL実行ごとにこの値が更新されます。動的パラメータには、最終更新日付や最終WID順序番号などがあります。
パラメータのデータタイプは、次のいずれかです。
Text
パラメータの値は、テキストとして定義されます。「Text」データタイプは、静的パラメータとランタイム・パラメータの両方に使用できます。
DB Specific Text
パラメータの値は、データベース固有のテキストとして定義されます。このパラメータは、異機種データベース環境で、異なるデータベースタイプに異なるパラメータ値が必要な場合にのみ、使用する必要があります。ソースまたはターゲットのデータベースタイプに基づいて、文字列が評価されます。データベース固有のテキストを指定しない場合は、デフォルト値が返されます。
Timestamp
パラメータの値は、タイムスタンプとして定義されます。「Timestamp」データタイプは、静的パラメータとランタイム・パラメータの両方に使用できます。静的なタイムスタンプには、一定の任意の時刻を指定できます。ランタイム・タイムスタンプ・パラメータは、実行時にDACで値が指定される変数です。タイムスタンプは、複数あるフォーマットのいずれかで定義することも、カスタム・フォーマットを定義することもできます。また、指定された論理データベース接続に対して発行可能なSQLを使用して、任意の値をフェッチすることもできます。DACでは、指定された論理接続にマッピングするデータソースに対してSQLを実行してから、指定されたフォーマットで結果値をフォーマットします。あるタイムスタンプ・パラメータに指定されたSQLに、ネストされたDACパラメータを含めることができます。ネストされたパラメータの詳細は、「パラメータを他のパラメータ内にネスト」を参照してください。
SQL
DACでは、SQLを使用してデータベースからパラメータの値をフェッチします。
Oracle Business Intelligence Applicationsには、事前に構成済のパラメータが同梱されています。これらの事前に構成済のパラメータの一部は、parameterfileDW.txtおよびparameterfileOLTP.txtという名前のテキスト・ファイルに含まれています。これらのファイルは、\OracleBI\DAC\Informatica\parameters\inputフォルダに格納されています。その他の事前に構成済のパラメータはDACに保持されています。DACに保持されているパラメータは、それぞれのソース・システム・コンテナに固有です。
DACに新しいパラメータを追加したり、DACに保持されている既存のパラメータを変更できます。ただし、パラメータ・テキスト・ファイルにあるパラメータは、変更しないことをお薦めします。DACで新しいパラメータを作成することによって、それをテキスト・ファイルのパラメータより優先させることができます。
ただし、パラメータ・テキスト・ファイルは変更しても、\OracleBI\DAC\Informatica\parameters\inputフォルダ内のファイルは変更しないようにしてください。
ETL実行時に、DACではテキスト・ファイルparameterfileDW.txtおよびparameterfileOLTP.txtに保持されているパラメータ、およびDACに保持されているパラメータが読み込まれ、評価されます。その後、各セッションに個々のパラメータ・ファイルが作成されます。このファイルには、静的とランタイム両方のすべてのパラメータに対して、名前と値の評価されたペアが含まれています。このパラメータ・ファイルのネーミング規則は、<Informatica folder name>.<Informatica session name>.txtとなります。このファイルは、DACシステム・プロパティInformaticaParameterFileLocationで指定された場所にコピーされます。
|
注意: DACシステム・プロパティInformaticaParameterFileLocationで指定された場所からパラメータ・ファイルを読み取るには、Informatica Serverを構成しておく必要があります。このプロパティを設定する手順については、『Oracle Business Intelligence Applicationsインストレーションおよび構成ガイド』を参照してください。 |
任意のパラメータの定義を別のパラメータの定義の中にネストできます。たとえば、現在の実行IDを返すランタイム・テキスト・パラメータを、SQLパラメータのwhere句の中にネストできます。また、データベース固有のテキストを、データタイプがテキストまたはSQLである別パラメータの中で使用できます。他のパラメータ内にネストされたパラメータには、@DAC_という接頭辞を使用する必要があります。
SQLパラメータのwhere句に現在の実行IDを入れて返すテキスト・パラメータは、次のようになります。
SELECT VALUE FROM PARAM_TEST WHERE ROW_ID=`@DAC_p1'
|
注意: パラメータAがパラメータBにネストされていながら、パラメータBがパラメータAにネストされるような、循環的なネストは避けてください。そのようなネストがあると、循環したパラメータから無作為に1つ選択されて、それが空の文字列として評価されます。 |
次の手順に従って、「Text」データタイプを使用したパラメータを定義します。この手順は、ソース・システム・レベルとタスク・レベルの両方で定義されたパラメータに適用されます。
テキストタイプのパラメータを定義するには:
次のいずれかを実行します。
ソース・システム・パラメータを定義するには、「Views」メニューから「Design」→「Source System Parameters」を選択します。
タスク・レベル・パラメータを定義するには、「Views」メニューから「Design」→「Tasks」を選択して、「Parameters」サブタブをクリックします。
「New」をクリックします。
パラメータ名を入力します。
「Text」データタイプを選択します。
「Value」フィールドをクリックして、「Enter Parameter Value」ダイアログを開きます。
次のオプションのいずれかを選択します。
Static: このオプションでは、すべてのETL実行で一定に保たれる値を指定します。
Runtime: このオプションでは、それぞれのETL実行の前に、値がDACで更新されることを指定します。
「Static」オプションを選択した場合は、テキスト・ウィンドウにテキスト値を入力して「OK」をクリックします。
「Runtime」オプションを選択した場合は、リストからDACの変数を選択して「OK」をクリックします。
(省略可能)パラメータを無効にするには、「Inactive」を選択します。
「Save」をクリックします。
次の手順に従って、「DB Specific Text」データタイプを使用したパラメータを定義します。この手順は、ソース・システム・レベルとタスク・レベルの両方で定義されたパラメータに適用されます。
データベース固有のテキストタイプのパラメータを定義するには:
次のいずれかを実行します。
ソース・システム・パラメータを定義するには、「Views」メニューから「Design」→「Source System Parameters」を選択します。
タスク・レベル・パラメータを定義するには、「Views」メニューから「Design」→「Tasks」を選択して、「Parameters」サブタブをクリックします。
「New」をクリックします。
パラメータ名を入力します。
「DB Specific Text」データタイプを選択します。
「Value」フィールドをクリックして、「Enter Parameter Value」ダイアログを開きます。
次の「Connection Type」オプションのいずれかを選択します。
@DAC_SOURCE_DBTYPE: このオプションでは、ソース・データベース接続を指定します。
@DAC_TARGET_DBTYPE: このオプションでは、ターゲット・データベース接続を指定します。
すべてのデータベースタイプに固有のパラメータを定義する手順は次のとおりです。
「Default」フィールドをクリックして、「Default」テキスト・ボックスを開きます。
パラメータの定義を入力して「OK」をクリックします。
特定のデータベースタイプに固有のパラメータを定義する手順は次のとおりです。
適切なデータベースタイプ・フィールドをクリックして、テキスト・ボックスを開きます。
パラメータの定義を入力して「OK」をクリックします。
「OK」をクリックして、「Enter Parameter Value」ダイアログを閉じます。
(省略可能)パラメータを無効にするには、「Inactive」を選択します。
「Save」をクリックします。
次の手順に従って、「Timestamp」データタイプを使用したパラメータを定義します。この手順は、ソース・システム・レベルとタスク・レベルの両方で定義されたパラメータに適用されます。
タイムスタンプタイプのパラメータを定義するには:
次のいずれかを実行します。
ソース・システム・パラメータを定義するには、「Views」メニューから「Design」→「Source System Parameters」を選択します。
タスク・レベル・パラメータを定義するには、「Views」メニューから「Design」→「Tasks」を選択して、「Parameters」サブタブをクリックします。
「New」をクリックします。
パラメータ名を入力します。
「Timestamp」データタイプを選択します。
「Value」フィールドをクリックして、「Enter Parameter Value」ダイアログを開きます。
次のオプションのいずれかを選択します。
Static: このオプションでは、すべてのETL実行で一定に保たれる値を指定します。
Runtime: このオプションでは、それぞれのETL実行の前に、値がDACで更新されることを指定します。
「Static」オプションを選択した場合の手順は次のとおりです。
「Date」フィールドをクリックして、「Date」ダイアログを開きます。
日時を入力して「OK」をクリックします。
「Runtime」オプションを選択した場合の手順は次のとおりです。
「Value」フィールドをクリックして、「Enter Parameter Value」ダイアログを開きます。
リストから変数を選択します。
「Function」リストから、DACで日付を変換するフォーマットを選択します。「Custom」を選択した場合は、カスタム日付フォーマットを入力します。
「SQL Syntax」または「SQL Syntax (Date Only)」を選択した場合は、接続タイプを選択します。
「SQL」オプションを選択した場合の手順は次のとおりです。
「SQL」フィールドをクリックして、「Enter Parameter Value」ダイアログを開きます。
リストから論理データソースを選択します。
パラメータの定義を入力して「OK」をクリックします。
「OK」をクリックして、「Enter Parameter Value」ダイアログを閉じます。
(省略可能)パラメータを無効にするには、「Inactive」を選択します。
「Save」をクリックします。
次の手順に従って、テキスト・データタイプを使用したパラメータを定義します。この手順は、ソース・システム・レベルとタスク・レベルの両方で定義されたパラメータに適用されます。
SQLタイプのパラメータを定義するには:
次のいずれかを実行します。
ソース・システム・パラメータを定義するには、「Views」メニューから「Design」→「Source System Parameters」を選択します。
タスク・レベル・パラメータを定義するには、「Views」メニューから「Design」→「Tasks」を選択して、「Parameters」サブタブをクリックします。
「New」をクリックします。
パラメータ名を入力します。
「SQL」データタイプを選択します。
「Value」フィールドをクリックして、「Enter Parameter Value」ダイアログを開きます。
「Logical Data Source」を選択します。
SQL文を入力して「OK」をクリックします。
(省略可能)パラメータを無効にするには、「Inactive」を選択します。
「Save」をクリックします。
DACの「Setup」ビューでは、インデックスの表領域をテーブルタイプ別に指定できます。たとえば、次元テーブルタイプのインデックスに対して表領域を指定できます。
|
注意: インデックスに表領域を指定する前に、データベースに表領域を作成しておく必要があります。 |
インデックスの表領域をテーブルタイプ別に指定するには:
DACのツールバーで、「Setup」→「Physical Data Sources」タブ→「Index Spaces」サブタブをクリックします。
「Index Spaces」ツールバーで「Generate」をクリックします。
「Table Type」リストに、使用可能なテーブルタイプのリストが表示されます。
「Index Space」カラムに、各テーブルタイプのインデックス領域を入力して「Save」をクリックします。
テーブルタイプの「Index Space」プロパティを空のままにすると、デフォルトのデータベース接続のデフォルトのインデックス領域が使用されます。デフォルトのインデックス領域は、「Setup」ビューの「Physical Data Sources」タブの「Edit」サブタブで指定します。「Default Index Space」プロパティも空の場合は、テーブルの所有者に割り当てられたデフォルトの表領域が使用されます。
構成タグは、サブジェクトエリアでタスクの挿入を制御するオブジェクトです。タスクにタグが付加されると、タグがサブジェクトエリア定義の「Include Task」プロパティの一部でないかぎり、任意のサブジェクトエリアのタスクの集合に含めることができなくなります。
構成タグは、次のいずれかの方法で機能します。
すべてのサブジェクトエリアからのタスクの削除
構成タグにタスクを割り当てると、そのタスクは、どのサブジェクトエリアにも組み込まれません。手順については、「すべてのサブジェクトエリアからタスクを削除するには:」を参照してください。
自動生成タスクの特定のサブジェクトエリアへの再割当て
自動生成タスクとは、サブジェクトエリアのアセンブル時に、自動的にサブジェクトエリアに割り当てられるタスクのことです。
組み込まれたサブジェクトエリアから削除された自動生成タスクに対して、構成タグを設定して特定のサブジェクトエリアに組み込まれるようにタスクを再割当てできます。そのためには、構成タグを目的のサブジェクトエリアに関連付けます。この方法は、サブジェクトエリアの自動生成タスクにのみ適用されます。手順については、「サブジェクトエリアに自動生成タスクを再割当てするには:」を参照してください。
非自動生成タスクのサブジェクトエリアへの追加
構成タグを設定して、サブジェクトエリアに非自動生成タスクを追加できます。非自動生成タスクが、サブジェクトエリアの自動生成タスクとともに、サブジェクトエリアに組み込まれます。手順については、「サブジェクトエリアに非自動生成タスクを追加するには:」を参照してください。
構成タグのタスクのみのサブジェクトエリアへの割当て(サブジェクトエリアの自動生成タスクを除く)
また、構成タグを設定して、その構成タグに割り当てられたタスクのみが特定のサブジェクトエリアに組み込まれるようにすることもできます。この場合、サブジェクトエリアの自動生成タスクは組み込まれません。手順については、「サブジェクトエリアに構成タグのタスクのみを割り当てるには(サブジェクトエリアの自動生成タスクを除く):」を参照してください。
すべてのサブジェクトエリアからタスクを削除するには:
DACのツールバーで、ドロップダウン・リストから適切なソース・システム・コンテナを選択します。
メニュー・バーで、「Views」→「Design」→「Configuration Tags」を選択します。
新しい構成タグを作成します。
上部ペインのツールバーで、「New」をクリックします。
「Edit」子タブに名前を入力します。
「Include Tasks」チェック・ボックスが選択されていないことを確認します。
「Save」をクリックします。
構成タグにタスクを追加します。
上部ペインで新しい構成タグをハイライトした状態で、「Tasks」子タブをクリックします。
下部ペインのツールバーで、「Add/Remove」をクリックします。
「Tasks」ダイアログで、構成タグに追加するタスクにクエリーを実行します。
タスクをハイライトしてから「Add」をクリックします。
右側のウィンドウにタスクが表示されます。
「Save」→「OK」をクリックして、ウィンドウを閉じます。
これらのタスクは、どのサブジェクトエリアにも組み込まれません。
サブジェクトエリアに自動生成タスクを再割当てするには:
DACのツールバーで、ドロップダウン・リストから適切なソース・システム・コンテナを選択します。
メニュー・バーで、「Views」→「Design」→「Configuration Tags」を選択します。
サブジェクトエリアに再割当てするタスクを含む構成タグにクエリーを実行します。
適切なタスクが構成タグに含まれていることを確認するには、「Tasks」子タブをクリックして、この構成タグに関連付けられているタスクのリストを調べます。
|
注意: 再割当てされるのは、サブジェクトエリアの自動生成タスクのみです。リストに非自動生成タスクが表示されていても、それらは無視されます。 |
タスクを再割当てするサブジェクトエリアに構成タグを関連付けます。
上部ペインで構成タグをハイライトした状態で、「Subject Areas」子タブをクリックします。
下部ペインのツールバーで、「Add/Remove」をクリックします。
「Subject Areas」ダイアログで、タスクを再割当てする1つ以上のサブジェクトエリアにクエリーを実行します。
適切なサブジェクトエリアをハイライトして「Add」をクリックします。
「Save」→「OK」をクリックして、ウィンドウを閉じます。
サブジェクトエリアを再アセンブルします。
「Subject Area」タブで、構成タグに追加したすべてのサブジェクトエリアにクエリーを実行します。
サブジェクトエリアをハイライトして「Reassemble」をクリックします。
サブジェクトエリアに非自動生成タスクを追加するには:
DACのツールバーで、ドロップダウン・リストから適切なソース・システム・コンテナを選択します。
メニュー・バーで、「Views」→「Design」→「Configuration Tags」を選択します。
新しい構成タグを作成します。
上部ペインのツールバーで、「New」をクリックします。
「Edit」子タブに名前を入力します。
「Include Tasks」チェック・ボックスを選択します。
「Save」をクリックします。
構成タグに非自動生成タスクを追加します。
上部ペインで新しい構成タグをハイライトした状態で、「Tasks」子タブをクリックします。
下部ペインのツールバーで、「Add/Remove」をクリックします。
「Tasks」ダイアログで、構成タグに追加する外部タスクにクエリーを実行します。
タスクをハイライトしてから「Add」をクリックします。
「Save」→「OK」をクリックして、ウィンドウを閉じます。
非自動生成タスクを追加するサブジェクトエリアに構成タグを関連付けます。
上部ペインで構成タグをハイライトした状態で、「Subject Areas」子タブをクリックします。
下部ペインのツールバーで、「Add/Remove」をクリックします。
「Subject Areas」ダイアログで、非自動生成タスクを追加する1つ以上のサブジェクトエリアにクエリーを実行します。
適切なサブジェクトエリアをハイライトして「Add」をクリックします。
「Save」→「OK」をクリックして、ウィンドウを閉じます。
サブジェクトエリアを再アセンブルします。
「Subject Area」タブで、構成タグに追加したすべてのサブジェクトエリアにクエリーを実行します。
サブジェクトエリアをハイライトして「Reassemble」をクリックします。
サブジェクトエリアに構成タグのタスクのみを割り当てるには(サブジェクトエリアの自動生成タスクを除く):
DACのツールバーで、ドロップダウン・リストから適切なソース・システム・コンテナを選択します。
メニュー・バーで、「Views」→「Design」→「Subject Areas」を選択します。
構成タグのタスクを追加するサブジェクトエリアにクエリーを実行します。
|
注意: このサブジェクトエリアの自動生成タスクは除外されます。 |
「Configuration Tag Tasks Only」チェック・ボックスを選択して、「Save」をクリックします。
構成タグを作成します。
「Configuration Tags」タブにナビゲートします。
上部ペインのツールバーで、「New」をクリックします。
「Edit」子タブに名前を入力します。
「Include Tasks」チェック・ボックスを選択します。
「Save」をクリックします。
構成タグにタスクを追加します。
上部ペインで新しい構成タグをハイライトした状態で、「Tasks」子タブをクリックします。
下部ペインのツールバーで、「Edit」をクリックします。
「Tasks」ダイアログで、構成タグに追加するタスクにクエリーを実行します。
タスクをハイライトしてから「Add」をクリックします。
「Save」→「OK」をクリックして、ウィンドウを閉じます。
構成タグをサブジェクトエリアに関連付けます。
上部ペインで構成タグをハイライトした状態で、「Subject Areas」子タブをクリックします。
下部ペインのツールバーで、「Add/Remove」をクリックします。
「Subject Areas」ダイアログで、適切なサブジェクトエリアにクエリーを実行します。
サブジェクトエリアをハイライトして「Add」をクリックします。
「Save」→「OK」をクリックして、ウィンドウを閉じます。
サブジェクトエリアを再アセンブルします。
「Subject Area」タブで、構成タグに追加したすべてのサブジェクトエリアにクエリーを実行します。
サブジェクトエリアをハイライトして「Reassemble」をクリックします。
Oracle Business Intelligence Applicationsには、事前に構成済のサブジェクトエリアが同梱されています。これらの事前に構成済のサブジェクトエリアを変更したり、特定のビジネス・プロセスに対応する新しいサブジェクトエリアを作成できます。
|
注意: 事前に構成済のサブジェクトエリアを変更するか、または新しいサブジェクトエリアを作成するには、まず既存のソース・システムのコピーを作成するか、新しいコンテナを作成する必要があります。手順については、「ソース・システム・コンテナの作成またはコピー」を参照してください。 |
サブジェクトエリアを設計するときには、次の問題を検討する必要があります。
テーブル: どのテーブルをデータ・ウェアハウスにポピュレートする必要があるか。組織がどのテーブルをデータのソースとするか。どのテーブルでスター・スキーマを作成するか。
サブジェクトエリア: サブジェクトエリアはすべての関連テーブルに対応しているか。
タスク: このテーブルをロードするタスクは定義されているか。
インデックス: ターゲット・テーブルには正しいインデックスが定義されているか。
サブジェクトエリアとは、タスクの集合のことです。サブジェクトエリアを定義すると、DACでは次のロジックを使用してタスクの集合がアセンブルされます。
テーブルの初期選択。
サブジェクトエリアに属する要素テーブルをすべて検索します。
関連テーブルの再帰的選択。
外部キーを介して直接関連付けられているすべてのテーブル、および論理的に関連付けられているすべてのその他テーブルを、再帰的に検索します。
タスクの初期選択。
前に選択したテーブルにロードするタスク、つまりターゲット・テーブルが前に特定したテーブルのいずれかであるタスクをすべて検索します。
すべてのタスクの再帰的選択。
ソース・テーブルとターゲット・テーブルの関係に応じて、前提条件となるタスクを再帰的に検索します。
実行プランとは、サブジェクトエリアの集合、およびタスクの一意の集合のことです。タスクは、それ自体の実行の前に実行する必要がある前提条件タスクを持つことができます。DACでは、次の検討事項に基づきタスクの順序を決定します。
タスクのソース・テーブルおよびターゲット・テーブル
DACサーバーは、まずタスクのソース・テーブルとターゲット・テーブルを参照します。たとえば、テーブルAはタスクT1がテーブルBを読み込んでポピュレートし、テーブルBはタスクT2がテーブルCを読み込んでポピュレートするとします。この場合、DACサーバーはタスクT1の前にT2を実行すると判断します。
次にDACサーバーでは、次の事項が検討されます。
タスク・フェーズ
ETLプロセスは通常、複数のフェーズで構成されています。一般的には、フェーズは次のような順序で実行されます。
次元の抽出
ファクトの抽出
次元のロード
ファクトのロードと階層のロード(パラレル実行)
集計テーブルのロード
次元の更新
テーブルの「Truncate Always」プロパティ
「Truncate Always」プロパティに基づく実行順序は、次のとおりです。
挿入
アップサート
物理データソース
優先順位
すべてのプロパティで同じタスクは、無作為に編成されます。一部のタスクを特定の順序で実行する必要がある場合は、タスク・グループを作成し、その中で実行順序を指定できます。
新しいサブジェクトエリアを作成するときには、サブジェクトエリアに1つ以上の要素テーブルを割り当てます。そこで、必要となる次元などの関連テーブル、さらにタスクおよびその実行順序が決定されます。
新しいサブジェクトエリアを作成するには:
DACのツールバーで、ドロップダウン・リストから適切なソース・システム・コンテナを選択します。
メニュー・バーで、「Views」→「Design」→「Subject Areas」を選択します。
上部ペインのツールバーで、「New」をクリックします。
「Edit」子タブで、サブジェクトエリアの名前を入力して「Save」をクリックします。
上部ペインで新しいサブジェクトエリア名がハイライトされていることを確認して、「Tables」子タブをクリックします。
子タブのツールバーで、「Add/Remove」をクリックします。
「Choose Tables」ダイアログが開きます。左側のウィンドウに、選択したコンテナに格納されているテーブルがすべて一覧表示されます。
1つ以上の要素テーブルにクエリーを実行します。
要素テーブルを選択(複数のテーブルを選択する場合は[Shift]キーを押しながらクリック)して、「Add」をクリックします。
サブジェクトエリアを表す右側のウィンドウにテーブルが追加されます。
「OK」をクリックして、「Choose Tables」ダイアログを閉じます。
上部ペインのツールバーで、「Assemble」をクリックします。
「Assembling...」ダイアログで、「Selected Record Only」を選択します。
「All Records in the List」オプションを選択した場合は、上部ペインに一覧表示されているサブジェクトエリアがすべて再アセンブルされます。
DACでは、必要となる次元などの関連テーブルを決定し、それらのテーブルをロードするときに必要となるタスクを決定することによって、選択したサブジェクトエリアをアセンブルします。
アセンブル・プロセスが完了すると、通知メッセージが出力されます。
「Tasks」タブをクリックすると、このサブジェクトエリアに必要と判断されたタスクが表示されます。
DACによってサブジェクトエリアに自動的に割り当てられたタスクは、「Autogenerated」チェック・マークで示されます。
「Inactive」チェック・ボックスを選択すると、タスクをサブジェクトエリアから外して非アクティブ化できます。「Inactive」チェック・ボックスを選択すると、そのタスクは、サブジェクトエリアを再アセンブルしても非アクティブのままです。
また、「Add/Remove」コマンドを使用してサブジェクトエリアからタスクを削除することもできますが、その場合タスクを削除すると、サブジェクトエリアを再アセンブルするまでの間のみサブジェクトエリアから削除されます。
実行プランとは、ETLプロセスの実行に使用されるサブジェクトエリアのことです。実行プランを実行する前に、次の処理が完了しているか確認します。
(「Physical Data Sources」タブで)トランザクション・データベースおよびデータ・ウェアハウス・データベースへのデータベース接続の設定
(「Informatica Servers」タブで)InformaticaサーバーおよびInformaticaリポジトリ・サーバーの登録
|
注意: 実行プランにあるサブジェクトエリアはすべて、同じソース・システム・コンテナに属している必要があります。 |
実行プランを構築および実行するには:
「Execute」ビューにナビゲートしてから「Execution Plans」タブを選択します。
新しい実行プランを作成します。
上部ペインのツールバーで、「New」をクリックします。
「Edit」子タブで、実行プランの名前などの適切な情報を入力します。
このタブのフィールドの詳細は、「「Execution Plans」タブ」を参照してください。
「Save」をクリックします。
1つ以上のサブジェクトエリアを実行プランに関連付けます。
「Subject Areas」子タブをクリックします。
下部ペインのツールバーで、「Add/Remove」をクリックします。
「Choose Subject Areas」ダイアログで、適切なソース・システム・コンテナを選択します。
実行プランに関連付けるサブジェクトエリアにクエリーを実行します。
サブジェクトエリアを選択して「Add」をクリックします。
1つの実行プランに複数のサブジェクトエリアを割り当てることができますが、そのサブジェクトエリアはすべて、同じソース・システム・コンテナに属している必要があります。
「OK」をクリックして、ウィンドウを閉じます。
ランタイム・パラメータを生成します。
「Parameters」子タブをクリックします。
下部ペインのツールバーで、「Generate」をクリックします。
それぞれの「Datasource」タイプで、「Value」フィールドに適切な名前を入力します。
データソースタイプがFlatFileConnectionの場合は、DACシステム・プロパティInformaticaParameterFileLocationで指定されたディレクトリに、すべてのファイルをコピーしたことを確認します。
「Execution Plans」タブの上部ペインで、新しい実行プランがハイライトされていることを確認して「Build」をクリックします。
実行プランが構築されます。
実行プランを実行するには、上部ペインで実行プランを選択して「Run Now」をクリックします。
ETLプロセスの実行が開始されたら、「Current Run」タブでその進行状況をモニターできます。
更新日付の追跡方法の詳細は、「更新日付について」を参照してください。
実行プランをスケジュールするには、「実行プランのスケジュール」を参照してください。
ミクロETL実行プランとは、1時間ごとや30分ごとなど、非常に頻繁な間隔でスケジュールしたETLプロセスのことです。通常は、小さなサブジェクトエリア、または大きなサブジェクトエリアのサブセットを処理します。DACでは、他の実行プランとは別にミクロETL実行プランのテーブルの更新日付が追跡され、これらの更新日付は、チェンジ・キャプチャ・プロセスで使用されます。
ミクロETL実行プランが実行された後、「Execution Plans」タブの「Refresh Dates」子タブの更新日付の値がポピュレートされます。サブジェクトエリアが定期実行プラン(「Keep Separate Refresh Dates」オプションが選択されていない実行プラン)およびミクロETL実行プランで使用される場合は、(「Setup」ビューの)「Physical Data Sources」タブの「Refresh Dates」子タブで、定期実行プランにあるテーブルの更新日付が保持されます。
サブジェクトエリアが定期実行プランとミクロETL実行プランの両方で使用されている場合、ミクロETL実行プランが数日間停止したときに定期実行プランが毎夜実行されていると、両方の実行プランに共通のテーブルの最終更新日付が自動的に検出され、ミクロETL実行プランの最新レコードのみが高度に抽出されます。
|
注意: ミクロETLプロセスが原因で、データの不整合、データの可用性、およびトランザクション・データベースへの追加ロードに関する問題が発生する可能性があります。そのため、ミクロETLプロセスを実装する前に次の要因を検討する必要があります。 |
関連するスター・スキーマでは、ミクロETL実行プランから1つのスキーマが除外されると、スター間のレポートが不正確になる場合があります。たとえば、Person要素テーブルがRevenue要素テーブルより頻繁に更新される場合、PersonとRevenueの次元スキーマを対象としたレポートは、不整合な結果を生成する可能性があります。
ミクロETL実行プランから次元テーブルを除外すると、要素テーブルの外部キーは新しい次元レコードの不特定の行を指します。外部キーの参照は、完全なETL実行プランが実行されると解決されますが、レポートのユーザーはそのような不整合性に注意する必要があります。
ミクロETL実行プランに集計テーブルを含めない場合、これらのテーブルのデータを使用するレポートは、詳細な要素テーブルのデータを使用するレポートと整合性がとれなくなります。ただし、集計テーブルがミクロETL実行プランに含まれると、集計の計算がETLプロセスごとに実行されますが、一定量の時間がかかるため、実行頻度が高いと非効率な場合があります。
階層テーブルは、ベース次元テーブルにクエリーを実行することによって、ETL実行プラン別に再構築されます。この操作には一定量の時間がかかります。ベーステーブルが大きいとこの操作は時間がかかり、ミクロETL実行プランが1日に何度も実行されていると非効率な場合があります。ただし、ミクロETLプロセス実行時に階層テーブルにポピュレートしないと、データの不整合が発生します。
ミクロETL実行プランではキャッシュが頻繁に発生するため、パフォーマンスに影響する場合があります。
ミクロETL実行プランでは、頻繁に抽出が行われるため、トランザクション・データベースにかかる負荷が増えます。
ミクロETL実行プランを作成するには:
DACのツールバーで、ドロップダウン・リストから適切なソース・システム・コンテナを選択します。
メニュー・バーで、「Views」→「Design」→「Subject Areas」を選択します。
「Subject Areas」タブで、小さなサブジェクトエリアをアセンブルします。
「Tasks」子タブで、実行プランに不要なタスクをすべて非アクティブ化します。
新しい実行プランを作成します。
「Execute」ビューにナビゲートしてから「Execution Plans」タブを選択します。
実行プランの名前を入力します。
「Keep Separate Refresh Dates」チェック・ボックスを選択します。
「Save」をクリックします。
1つ以上のサブジェクトエリアを実行プランに関連付けます。
「Subject Areas」子タブをクリックします。
下部ペインのツールバーで、「Add/Remove」をクリックします。
「Choose Subject Areas」ダイアログで、適切なソース・システム・コンテナを選択します。
実行プランに関連付けるサブジェクトエリアにクエリーを実行します。
サブジェクトエリアを選択して「Add」をクリックします。
1つの実行プランに複数のサブジェクトエリアを割り当てることができますが、そのサブジェクトエリアはすべて、同じソース・システム・コンテナに属している必要があります。
「OK」をクリックして、ウィンドウを閉じます。
ランタイム・パラメータを生成します。
「Parameters」子タブをクリックします。
下部ペインのツールバーで、「Generate」をクリックします。
それぞれの「Datasource」タイプで、「Value」フィールドに適切な名前を入力します。
「Execution Plans」タブの上部ペインで、新しい実行プランがハイライトされていることを確認して「Build」をクリックします。
実行プランが構築されます。
「Ordered Tasks」子タブにナビゲートして、タスクの順序を確認します。
これで、実行プランをミクロETL実行プランとして実行する準備ができました。
ミクロETL実行プランのスケジュールを作成します。手順については、「実行プランのスケジュール」を参照してください。
この手順に従って、DACで実行プランをスケジュールします。
実行プランをスケジュールするには:
DACで「Scheduler」タブにナビゲートします。
上部ペインに最新のスケジュール・リストが表示されます。
上部ペインのツールバーで、「New」をクリックします。
下部ペインの「Edit」タブがアクティブになります。
スケジュールの名前を入力します。
実行プランを選択します。
スケジュールを1回のみ実行する場合は、「Run Only Once」チェック・ボックスを選択してから、開始日時と終了日時を選択します。
定期スケジュールを作成するには、繰返しパターンを選択して、適切な日時パラメータを入力します。
「Save」をクリックします。
更新日付とは、最後のETLプロセスの日付(データが特定のデータベースのテーブルから抽出された、または特定のデータベースのテーブルにロードされた最後のとき)を指します。DACでは更新日付を使用して、増分ロード・コマンドと完全ロード・コマンドのいずれを実行するか、およびターゲット・テーブルを切り捨てるかどうかを決定します。
更新日付は、実行プランの実行が完了しているタスクのプライマリ・ソースまたはプライマリ・ターゲットとなるテーブルに対してのみ追跡されます。テーブルに対する更新日付がNULLの場合、テーブルがプライマリ・ソースまたはプライマリ・ターゲットとなるタスクで完全ロード・コマンドが実行されます。プライマリ・ソースが複数あるときには、最も早い更新日付が、完全ロードまたは増分ロードをトリガーします。プライマリ・ソース・テーブルのいずれかに更新日付がない場合は、完全ロード・コマンドが実行されます。
表5-1に、更新日付に関して考えられるシナリオを示します。
表5-1 更新日付のシナリオ
| シナリオ | (「Tasks」子タブの)テーブルタイプ | 更新日付 | DACで使用するコマンド | ターゲット・テーブルを切り捨てるか |
|---|---|---|---|---|
|
1 |
Primary Source |
NULL |
完全ロード |
はい |
|
1 |
Primary Target |
NULL |
該当なし |
該当なし |
|
2(次の注意を参照) |
Primary Source |
NULL |
完全ロード |
いいえ |
|
2 |
Primary Target |
NULL以外 |
該当なし |
該当なし |
|
3(次の注意を参照) |
Primary Source |
NULL以外 |
完全ロード |
はい |
|
3 |
Primary Target |
NULL |
該当なし |
該当なし |
|
4 |
Primary Source |
NULL以外 |
増分ロード |
いいえ |
|
4 |
Primary Target |
NULL以外 |
該当なし |
該当なし |
シナリオ2: 複数のソース・テーブルを別々のタスクとして同じターゲット・テーブルにロードすると、2番目のタスクのソース・テーブルでは更新日付がNULLになり、ターゲットには更新日付があるという可能性があります。
シナリオ3: 別々のタスクで1つのソースを複数のターゲット・テーブルにロードすると、2番目のターゲット・テーブルでは更新日付がNULLになり、ソース・テーブルには更新日付があるという可能性があります。