このトピックでは、EPM統合エージェントを使用して、Oracle Enterprise Performance Management Cloudアプリケーションからオンプレミス・データ・ウェアハウスにデータをロードするために必要なステップについて説明します。データをロードするには、異なる2つの方法を使用できます:
「アプリケーション」オプションの表名と「アプリケーション・ディメンション」の表の列でそれぞれデータをロードします。(EPM統合エージェントでInsert問合せが自動的に生成されます)。
カスタムSQL Insert問合せを使用して、表名と列でデータをロードします。
EPM統合エージェントを使用して、EPM Cloudアプリケーションからオンプレミス・データ・ウェアハウスにデータをロードするには:
データがエクスポートされるRDBMS表を作成します。
この例では、VISION_DATAという名前の表に、Visionアプリケーションのすべてのディメンションと、BATCH_IDおよびDATA_AMOUNTという2つの追加の列があります。BATCH_ID列を使用して、EPM Cloudからデータ統合のプロセスIDを移入します。DATA_AMOUNT列を使用して、「金額」列を移入します。
列名のヘッダー・レコードを含めることで、表の内容をアプリケーション登録用のCSVファイルにエクスポートします。
CSV出力ファイルは次のようになります:
これらの列がターゲット表の列を正確に表すものとして処理されます。列名に基づいてSQL insert文が生成されます。
「データ交換」、「データ統合」タブ、「アクション」メニューの順に移動して、「アプリケーション」を選択します。
アプリケーション・ページで次の手順を実行し、ライトバック・プロセス用の「データ・エクスポート」アプリケーションを登録します:
「カテゴリ」で、「データ・エクスポート」を選択します。
「タイプ」で、オンプレミス・データベースへのデータ・エクスポートを選択します。
ステップ2で作成したファイルをアップロードして選択します。
データ・エクスポート・アプリケーションが作成され、アプリケーションの名前は、アプリケーションの登録に使用したファイル名と一致します。
アプリケーション・ページで、アプリケーションの右側にあるをクリックし、「アプリケーション詳細」を選択します。
「ディメンション」タブを選択します。
アプリケーション登録プロセスで、CSVファイルのすべての列のディメンション分類として「汎用」が自動的に割り当てられ、それに応じて「データ表列名」も割り当てられます。
「勘定科目」、「金額」、「期間」および「年」列を適切に分類します:
列がインポート・フォーマットでソース列にマップされ、ソース・フィールドに常に値がある場合、その列は「勘定科目」として分類されます。次の例では、「ACCOUNT」列が「勘定科目」に分類されています。このディメンションの「データ表列名」は「ACCOUNT」として分類されています。
DATA_AMOUNTを「金額」として分類し、「データ表列名」は空白のままにします。
YEARを「年」として分類し、「データ表列名」は空白のままにします。
PERIODを「期間」として分類し、「データ表列名」は空白のままにします。
アプリケーション・ページで、アプリケーションの右側にあるをクリックし、「アプリケーション詳細」を選択します。
「オプション」タブを選択します。
「表名」、「JDBC URL」およびデータベース資格証明を指定します。
「問合せの挿入」フィールドは空白のままにします。「問合せの挿入」を指定していない場合は、アプリケーション・ディメンションがターゲット・データベース列と同一の名前を示していると見なされます。アプリケーション・ディメンションには、ライトバック・プロセスで移入する必要があるターゲット表の各列が含まれている必要があります。そうでない場合、統合は失敗します。
ソース・アプリケーションとターゲットのEPM Cloudアプリケーションの間の統合を作成します。
次の例は、ソースVision PlanningアプリケーションとORACLE_DWHというターゲット・データ・エクスポート・アプリケーションを示しています。
すべての列をマップし、「金額」と「BATCH_ID」を除くすべてのディメンションのターゲット式としてcopysource()を使用します。
式はメンバー・マッピングでBATCH_IDに適用されます。「金額」ディメンションにはターゲット式がありません。
「マップ・メンバー」から、TDATASEG_T表のLOADID列を使用して、BATCH_IDの#SQLマッピングを作成します。
「オプション」の「フィルタ」で、必要に応じてソース・プランニング・アプリケーションのフィルタを指定します。
次の例では、Visionアプリケーションからすべてのデータ(期間の開始から終了の範囲)がターゲット・アプリケーションにインポートおよびエクスポートされるため、フィルタは選択されていません。
「オプション」の「ソース・キューブ」で、ソース・キューブ(プラン・タイプ)を指定します。次に「期間マッピング・タイプ」で、「デフォルト」を指定します。その後、次に示すように「保存」をクリックします。
ターゲット・データベースにアクセスできるオンプレミス・ホストでEPM統合エージェントを起動します。
「データ統合」で、指定された期間範囲で統合を実行します。
次の例ではJan-16からDec-16が選択されています:
オンプレミス・エージェントがEPM Cloudからジョブの詳細をフェッチしていることを確認し、プロセスが完了するまで待ちます。
「プロセスの詳細」で、ログ・ファイルを開き、エクスポートされたデータ・レコードの合計数とInsert問合せ文を書き留めます:
レコードがターゲット・データベースに正常にエクスポートされたことを確認します。
クラウドのプロセスIDがデータベースのBATCH_ID列に正常にマップされていることに注意してください。
EPM CloudのInsert問合せを使用して、同じデータをVISION_DATA_2という別の表にエクスポートします。
INSERT問合せにより、複雑なSQL式を使用してデータベースの列をマッピングできます。SQL式は、クラウド・データベース(Oracle)ではなく、ターゲット・データベースで実行されます。これにより、MS SQLサーバー、MYSQなど、データベースのタイプに固有のSQL式を柔軟に使用できるようになります。また、別の表のサブ問合せを使用して列の値を導出することもできます。
次の例では:
BATCH_IDの名前がBATCH_NUMBERに変更されました。
ENTITYの名前がORGANIZATIONに変更されました。
YEAR列とPERIOD列が削除され、同じ列に年と期間の両方を移入するPERIOD_NAME列が作成されました。
別の一連の列名でアプリケーションがすでに登録されているため、アプリケーションを登録するCSVファイルは必要ありません。SQL Insert問合せを使用する利点は、SQL Insert問合せを使用して実際の列名をマップする際に、登録されたアプリケーションの列名を使用できる点です。したがって、アプリケーションには、ターゲット・データベースの実際の列名とはまったく異なるディメンションが含まれている可能性があります。アプリケーションのディメンションは、ターゲット・データベース表に移入されている実際の列のサブセットのみを示すこともできます。
詳細は、次を参照してください:カスタムINSERT問合せでのライトバック
INSERT問合せの値は、ターゲット・ディメンション名を~~ (チルダ)で囲むことで示されます。たとえば、データ・エクスポート・アプリケーションのABCというディメンションをデータベースのDEF列にマップする必要がある場合は、DEF列の値を~ABC~と指定します。
次の値で新しい問合せを作成します:
BATCH_IDをBATCH_NUMBERに再マップします。
接頭辞「Acc」を使用します(例: ACCOUNT)。
接頭辞「Org」を使用します(例: ORGANISATION)。
期間と年を連結してPERIOD_NAMEにします。
接頭辞「Prd」を使用します(例: PRODUCT)。
DATA_AMOUNTを小数点第2位に丸め処理します。
「アプリケーション詳細」で、登録されたデータ・エクスポート・アプリケーションの問合せ名を指定し、「表名」は空白のままにします。
期間範囲について統合プロセスを再度実行し、プロセスが正常に完了するまで待ちます。
宛先表が正しく移入されていることを確認します。