この項では、スナップショットを使用してメタデータを管理する方法について説明します。Oracle Warehouse Builderでスナップショットを取得する方法では、プロジェクト・ナビゲータで作成した設計オブジェクトのメタデータ定義を特定の時点で取得できます。プロジェクト内のすべての設計オブジェクトを取得することも、スナップショットに含めるオブジェクトを選択することもできます。
この項では、次の項目について説明します。
スナップショットとメタデータ・ローダー・ユーティリティの機能は重複するため、状況によってはどちらを使用すべきか迷う場合があります。一般的には、スナップショットは、設計が段階的に進行する過程で発生する変更を追跡管理する開発チームのニーズに重点が置かれています。一方、メタデータ・ローダーは、リポジトリのバックアップ、リストアおよび移行を行う従来型管理作業に役立つようになっています。
スナップショットとメタデータ・ローダーについて理解する上で重要な鍵となるのは、これらが処理するオブジェクトの範囲が異なるという点です。スナップショットは、ユーザーがプロジェクト・ナビゲータで作成する設計オブジェクトの処理のみに制限されています。ただし、リポジトリ内のすべての要素はメタデータ・ローダーによって処理されます。これには、すべての設計オブジェクトと、ロケーションおよびセキュリティに関する情報が含まれます。
2つのツール間の重要な相違点の一覧は、表11-1を参照してください。
表11-1 スナップショットとメタデータ・ローダーの比較
機能 | スナップショット | メタデータ・ローダー |
---|---|---|
対象範囲 |
プロジェクト・ナビゲータ内のオブジェクトに関連するメタデータのみを取得します。マッピング、プロセス・フローおよびその他の設計オブジェクトのメタデータを取得します。ロケーション、セキュリティおよびユーザー定義オブジェクトに関する情報は取得しません。 |
ロケーション、セキュリティおよびユーザー定義オブジェクトに関する情報とすべての設計オブジェクトを含めて、リポジトリ関連のメタデータをすべて取得します。 |
出力 |
オブジェクトのリストア元となる完全なスナップショットを作成できます。または、必要な領域が小さいシグネチャ・スナップショットを作成して、オブジェクトをリストアせずに変更を追跡することもできます。どちらのタイプのスナップショットもOracleデータベースに格納されます。 |
メタデータ・ローダーは、エクスポート時に拡張子が |
バージョン管理ツールとの統合 |
出力をファイルとして保存し、そのファイルをバージョン管理ツールにエクスポートできます。 |
MDLファイルをバージョン管理ツールにエクスポートできます。GUIを使用する場合は、対象オブジェクトをバージョン管理ツールに渡す前に、MDLファイルを抽出する必要があります。OMB Plusスクリプト言語を使用する場合は、「メタデータ・ローダーの制御ファイルについて」の説明に従って |
互換性 |
スナップショットには、Oracle Warehouse Builderの各リリース間の互換性がありません。 |
MDLファイルは、Oracle Warehouse Builderの上位リリースに対して上位互換性があります。以前のリリースのMDLファイルをインポートするときに、メタデータが新しいリリースに自動的にアップグレードされます。 |
オブジェクトのロック |
スナップショットをリストアするには、変更マネージャはすべてのプライマリ・オブジェクトに対するロックを取得する必要があります。そのセッション内で保持されるロックは、保留中の変更がある場合は保存または元に戻すようにユーザーに求めることにより、解放され、その後すべてのエディタ・ウィンドウが自動的に閉じます。ロックが他のセッションによって保持されている場合、リストアは失敗し、すべての変更はロールバックされます。 |
インポートするには、メタデータ・ローダーではすべてのプライマリ・オブジェクトに対するロックを取得する必要があります。必要なロックを使用できない場合、インポートは失敗し、すべての変更がロールバックされます。 |
比較 |
ユーザー・インタフェースでコマンドを起動することで、スナップショットを比較できます。 |
サード・パーティ製 |
スナップショットを使用すると、メタデータのバックアップやリストアを実行したり、メタデータの変更履歴を保持できます。また、異なるバージョンのメタデータを比較できます。
スナップショットにより、選択したオブジェクトとそれらの関係について、特定の時点におけるすべてのメタデータ情報が取得されます。オブジェクトがワークスペース内で保持できる定義は現行のもののみですが、履歴全体を通じて変化する状態を示す複数のスナップショットにより、それぞれの時点での定義を保持できます。Oracle Warehouse Builderでは、次のタイプのスナップショットがサポートされています。
FULLスナップショット: バックアップとリストアの機能を実現します。
SIGNATUREスナップショット: 比較目的で履歴レコードを出力します。
スナップショットはOracle Databaseに格納されます。メタデータ・ローダーのエクスポートとは対照的に、別個のディスク・ファイルに格納されます。スナップショットをディスク・ファイルにエクスポートできます。
スナップショットは、ウェアハウスの管理者と設計者の両方にとって役立ちます。管理者は、FULLスナップショットを使用することで、ウェアハウスをデプロイしたり、ウェアハウスを以前の状態にリストアしたりするなど、大規模な操作を実行できます。設計者は、開発中の特定のコンポーネントのFULLスナップショットを作成することで、必要に応じて、そのコンポーネントを以前の状態にリストアできます。また、設計者は、SIGNATUREスナップショットを使用することで、特定のコンポーネントに対する変更を追跡できます。
MDLメタデータ・インポートや影響分析などの他の機能とスナップショットを併用することで、メタデータの管理に役立ちます。たとえば、スナップショットを使用して、現行のメタデータ・ワークスペースに対するMDLメタデータ・インポートの影響を調べることができます。この比較によって判明した情報に基づいて、メタデータをより詳細度の低いレベルでのインポートを選択すれば、関連するメタデータ・オブジェクトの定義が上書きされるのを防止できます。
また、スナップショットはごみ箱機能としても使用され、削除されたメタデータ・オブジェクトのリストアに必要な情報を提供します。
この項の以降の部分では、グラフィカル・ユーザー・インタフェースによるメタデータ変更管理機能について説明します。スクリプトによるスナップショットの作成および管理の詳細は、『Oracle Warehouse Builder APIおよびスクリプト・リファレンス』を参照してください。
スナップショットを取得するときは、ワークスペースにある特定のオブジェクトやすべてのオブジェクトの特定の時点におけるメタデータを取得します。このスナップショットを使用して、メタデータ内の変更を検出してレポートできます。
自動デフォルト・オブジェクトおよびユーザーまたはロール・オブジェクトを除き、任意の最初のクラス・オブジェクトのスナップショットを作成できます。スナップショット作成ウィザードを使用してスナップショットを作成します。
コレクションのスナップショットとは、コレクション内のショートカットと実際のオブジェクトの両方のスナップショットです。ユーザー・フォルダのスナップショットにも、フォルダ内のオブジェクトと実際のオブジェクトの両方に対する参照(ショートカットに類似する)が含まれるため、同じことが言えます。
スナップショットを作成するには:
プロジェクト・ナビゲータで、スナップショットに含めるすべてのオブジェクトを選択します。
親オブジェクトや子オブジェクトはウィザードで自動的に選択されるため、手動で選択する必要はありません。
たとえば、2つのキューブが含まれるコレクションを選択した場合、スナップショットには両方のキューブが含まれ、ディメンション表やソース表などの任意の依存オブジェクトを含めるオプションがあります。
実際のオブジェクトまたはユーザー・フォルダを含む標準のフォルダではなく、実際のオブジェクト自体またはユーザー・フォルダ自体を選択する必要があります。
選択したオブジェクトを右クリックして、「スナップショット」→「新規」を選択します。
または、「ファイル」メニューから、「スナップショット」→「新規」を選択します。
「ようこそ」画面で、「次へ」をクリックします。
「ヘルプ」をクリックすると、いつでもサポート情報を得ることができます。
「名前」ページで、スナップショットの名前とタイプ(FullまたはSignature)を指定します。
「次へ」をクリックします。
(オプション)説明を入力します。
「コンポーネント」画面で、「カスケード」オプションを選択するかどうかを選択します。
「次へ」をクリックします。
この画面では、スナップショットの取得対象コンポーネントが表示されます。コンポーネントがモジュールなどのノード・レベルのオブジェクトの場合は、「カスケード」オプションを選択してサブコンポーネントを含めます。
「依存性」画面では、依存性の「深さ」でスナップショットに依存オブジェクトを含めます。
「次へ」をクリックします。
パフォーマンスに影響を与えるので、深さには不必要に大きな値は指定しないでください。たとえば、プロジェクト・スナップショットの深さに0
を超える値を指定すると依存性のグローバルを検索します。
「終了」画面で、スナップショットの特性を確認します。
「終了」をクリックして、スナップショットを作成します。
システムでは、スナップショットの作成が開始し、「スナップショット作成」進行状況が表示されます。
スナップショットが完了すると、Oracle Warehouse Builderのメッセージ画面に「スナップショットが正常に作成されました。」と表示されます。
「OK」をクリックします。
スナップショットの作成後に、コンポーネントを追加できます。ただし、コンポーネントを追加すると、スナップショットにより提供される履歴レコードが変更され、その作成日付が変わることに注意してください。
スナップショットを更新するには、スナップショットへの追加ウィザードを使用します。
新しいコンポーネントをスナップショットに追加するには:
デザイン・センターのプロジェクト・ナビゲータで、スナップショットに追加するコンポーネントをすべて選択します。
たとえば、Oracleモジュールから表、マッピングおよびディメンションを選択できます。
右クリックして、「スナップショット」→「既存へ追加」を選択します。
または、「ファイル」メニューから、「スナップショット」→「既存へ追加」を選択します。
スナップショットへの追加ウィザードが表示されます。
「ようこそ」画面で、「次へ」をクリックします。
「ヘルプ」をクリックすると、いつでもサポート情報を得ることができます。
「スナップショット」画面で、スナップショットのリストから、コンポーネントの追加先スナップショットを選択します。
「次へ」をクリックします。
「コンポーネント」画面では、スナップショットの追加対象コンポーネントが表示されます。コンポーネントがモジュールなどのフォルダ・レベルのオブジェクトの場合は、「カスケード」オプションを選択してサブコンポーネントを含めます。
「次へ」をクリックします。
「終了」画面で、スナップショットの特性を確認します。
「終了」をクリックして、スナップショットを更新します。
システムでは、スナップショットの更新が開始し、「スナップショット更新」進行状況ポップアップが表示されます。
スナップショットが完了すると、Oracle Warehouse Builderのメッセージ画面に「スナップショットが正常に更新されました。」と表示されます。
「OK」をクリックします。
作成したスナップショットは、デザイン・センターの「メタデータ変更管理」ウィンドウを使用して管理できます。このウィンドウを開くには、「ツール」メニューから「変更マネージャ」を選択します。
「メタデータ変更管理」ウィンドウには、メニュー・バーとツールバーがあります。ほとんどのタスクは、メニューの使用、ツールのクリック、スナップショットやコンポーネントの右クリックなど、複数の方法により開始できます。
「メタデータ変更管理」ウィンドウでは、次のアクティビティをサポートします。
図11-1では、「メタデータ変更管理」ウィンドウが表示されます。
スナップショットへのアクセスは、他のオブジェクトと同様の方法で制御できます。デフォルトでは、スナップショットへの完全なアクセス権限が、すべてのユーザーに付与されます。
スナップショットのアクセス権限を変更するには:
「メタデータ変更管理」ウィンドウの左側のセクションで、スナップショットの名前を右クリックします。
このメニューから「セキュリティ」を選択します。
「スナップショット権限管理」ダイアログ・ボックスが表示されます。
「スナップショット権限管理」画面で、それぞれのユーザーまたはロールに対して、権限を選択して付与するか、権限を選択解除して取り消します。
詳細を表示するには、「ヘルプ」をクリックします。
2つのスナップショットを比較したり、スナップショットと現行のワークスペース・オブジェクトを比較したりできます。比較の結果は、すべてのオブジェクトが次のいずれかとしてリストされます。
両方のスナップショットで表示される同一オブジェクト
唯一のスナップショットで表示されるオブジェクト
両方のスナップショットで表示される、異なるプロパティ値を持つ類似オブジェクト
子オブジェクトを持つオブジェクトのスナップショットを取得し、その子オブジェクトが後で変更される場合、比較すると、親オブジェクトが変更されたものとして表示されます。たとえば、プロジェクトのカスケード・スナップショットを作成すると、そのプロジェクト内のすべてのモジュールが子になります。これらのモジュールが変更された場合、スナップショットとワークスペースの比較結果には、プロジェクトの変更が示されます。
メタデータ変更マネージャは、すべての比較の基礎としてユニバーサル・オブジェクトID(UOID)を使用します。オブジェクトを削除し、同じメタデータを使用して再作成すると、そのオブジェクトのUOIDは異なりますが、他のすべての側面では削除済オブジェクトと同じになります。再作成したオブジェクトをオリジナル・バージョンと比較すると、結果はすべてのメタデータに変更があったことを示します。同様に、インポート中やインテリジェンス・オブジェクトの導出中に削除されてから再作成されたオブジェクトは一致しません。
現行ワークスペース・オブジェクトの一時SIGNATUREスナップショットが自動的に取得されるため、これにより比較時間が長くなります。同じ現行ワークスペース・オブジェクトに対して複数の比較を行う場合は、SIGNATUREスナップショットを取得して、スナップショット間の比較で直接これを使用します。
2つの画面で2つのスナップショットを次のように比較します。
「メタデータ変更管理」画面で、比較する2つのスナップショットを選択します。
選択したスナップショットを右クリックし、「比較」を選択します。
また、「スナップショット」メニューから「比較」を選択します。
「2つのスナップショットを比較します」画面が表示されます。
「2つのスナップショットを比較します」画面で、正しいスナップショットが選択されていることを確認し、「比較」を選択します。
(オプション)詳細を表示するには、「ヘルプ」をクリックします。
「スナップショット比較」画面が表示されます。
「スナップショット比較」画面には、2つのスナップショット間における差異が表示されます。変更されたオブジェクトを選択すると、変更の詳細を確認することができます。
スナップショット間に差異がない場合、Oracle Warehouse Builderのメッセージ画面に「2つのスナップショットが同じです。」と表示されます。
「OK」をクリックします。
(オプション)*.xml
ファイルに比較の結果を保存するには、「別名で保存」をクリックします。
「閉じる」をクリックします。
現行バージョンのオブジェクトをスナップショット・バージョンと比較する手順は次のとおりです。
プロジェクト・ナビゲータでプロジェクトを選択します。
選択したオブジェクトを右クリックして、「スナップショット」→「比較」を選択します。
または、「ファイル」メニューから、「スナップショット」→「比較」を選択します。
「スナップショット選択」画面が表示されます。ここには、対象のオブジェクトを含むスナップショットのみが表示されます。
「スナップショット選択」画面で、比較するスナップショットを選択します。
「OK」をクリックします。
「スナップショット比較」ウィンドウには、2つのオブジェクト間における差異が表示されます。差異がない場合、オブジェクトが同じであることを示すメッセージが出力されます。
「スナップショット比較」画面には、オブジェクトとスナップショット間における差異が表示されます。変更されたオブジェクトを選択すると、変更の詳細を確認することができます。
スナップショット間に差異がない場合、Oracle Warehouse Builderの注意画面にobject
はスナップショットsnapshot
と同一ですと表示されます。
「OK」をクリックします。
(オプション)*.xml
ファイルに比較の結果を保存するには、「別名で保存」をクリックします。
「閉じる」をクリックします。
バックアップ用として必要でなくなったFULLスナップショットをSIGNATUREスナップショットに変換できます。この変換により、スナップショットの履歴を保持したまま、ワークスペースの領域が大幅に節約されます。
SIGNATUREスナップショットを使用してメタデータ・オブジェクトをリストアすることはできません。
FULLスナップショットを変換するには:
「スナップショットの管理」の説明に従って、「メタデータ変更管理」ウィンドウを開きます。
変換するスナップショットを選択します。
選択したスナップショットを右クリックし、「シグネチャに変換」を選択します。
または、「スナップショット」メニューから「シグネチャに変換」を選択します。
Oracle Warehouse Builderの「警告」ダイアログ・ボックスで、「はい」をクリックします。
スナップショットのタイプがSIGNATUREに変換されました。
ワークスペース内のオブジェクトの現行の定義を、そのオブジェクトのスナップショット・イメージと置換できます。
FULLスナップショットのみが使用可能で、SIGNATUREスナップショットからはオブジェクトをリストアできません。
スナップショットのすべてのコンポーネントまたは選択したコンポーネントのみをリストアできます。
スナップショットからコレクションをリストアすると、コレクションと実際のオブジェクトの両方がリストアされます。
コンテナをリストアすると、そのすべての子オブジェクトもリストアされます。
コレクションのみまたはコンテナ内の選択オブジェクトのみをリストアするには、「コンポーネント」タブを使用します。
スナップショットからオブジェクトをリストアするには:
現行のセッションで行ったすべての作業を保存します。
「スナップショットの管理」の説明に従って、「メタデータ変更管理」ウィンドウを開きます。
リストアするオブジェクトのバージョンが含まれるスナップショットを選択します。
(オプション)すべてのオブジェクトをリストアするには、スナップショットを右クリックして、「リストア」を選択します。
(オプション)一部のコンポーネントのみをリストアするには、「コンポーネント」タブで目的のコンポーネントを選択し、コンポーネントを右クリックして、「リストア」を選択します。
[オプション] オブジェクトに対する最新の変更がコミットされていない場合、「スナップショットをリストアする前に変更をコミットする必要があります。コミットしますか。」というOracle Warehouse Builderの警告メッセージが表示されます。
「はい」をクリックします。
「スナップショットのリストア」画面で、リストのオブジェクトを確認し、目的のオブジェクトがリストアされることを確認します。状況に応じて次のようにします。
「カスケード・アップ」を選択します。この操作により、親が存在しないコンポーネントに新しい親オブジェクトを作成して、ともにリストアすることができます。
「リストア」をクリックします。
「スナップショットが正常にリストアされた後、現在オープンされているエディタはすべてクローズされます。続行しますか。」というOracle Warehouse Builderの警告メッセージが表示されます。
「はい」をクリックします。
システムでは、スナップショットのリストアが開始し、「スナップショットのリストア」進行状況ポップアップが表示されます。
スナップショットがリストアされると、「スナップショットが正常にリストアされました。」というOracle Warehouse Builderのメッセージ画面が表示されます。
「OK」をクリックします。
FULLスナップショットをMDLファイルにエクスポートし、そのファイルを使用して同じデータベースや異なるデータベースにメタデータ・オブジェクトを再作成できます。シグネチャ・スナップショットやスナップショットの個別コンポーネントはエクスポートできません。
スナップショットをエクスポートするには:
「メタデータ変更管理」ウィンドウを開きます。
エクスポートするスナップショットを選択します。
「スナップショット」メニューから「エクスポート」を選択します。
[オプション] オブジェクトに対する最新の変更がコミットされていない場合、「エクスポート前に、変更を保存するか元に戻す必要があります。」というOracle Warehouse Builderの警告メッセージが表示されます。
「保存」をクリックします。
「メタデータのエクスポート」画面で、次の情報を入力します。
「参照」をクリックして、エクスポート・ファイルの場所と名前(「ファイル名」)を選択します。
「参照」をクリックして、「ログ・ファイル」の場所を選択します。
「エクスポート」をクリックします。
エクスポート・ファイルの拡張子は.mdl
で、ログ・ファイルの拡張子は.log
です。
(オプション)詳細を表示するには、「ヘルプ」をクリックします。
「メタデータのエクスポート進行状況」画面が表示されます。
プログレス・バーに100%が表示されたら、「OK」をクリックします。
スナップショットをインポートするには:
「ファイル名」メニューから、「インポート」→「Warehouse Builderメタデータ」を選択します。
「メタデータのインポート」画面で、インポート対象のファイルの「ファイル名」を指定します。
「インポート」をクリックします。
「メタデータのインポート進行状況」画面が表示されます。
プログレス・バーに100%が表示されたら、「OK」をクリックします。
スナップショットの削除やスナップショット内のコンポーネントの削除は、「メタデータ変更管理」ウィンドウを使用するとできます。
SIGNATUREスナップショットの個々のコンポーネントは削除できません。
スナップショットを削除するには:
「メタデータ変更管理」画面で、削除するスナップショットを選択します。
スナップショットを右クリックし、「削除」を選択します。
また、「スナップショット」メニューから「削除」を選択します。
「エクスポート前に、変更を保存するか元に戻す必要があります。」というOracle Warehouse Builderの警告メッセージが表示されます。
「はい」をクリックします。
スナップショットからコンポーネントを削除するには:
「メタデータ変更管理」で、コンポーネントを削除するスナップショットを選択します。
「コンポーネント」タブで、削除するコンポーネントを選択して、コンポーネントを右クリックし、「削除」を選択します。
また、「スナップショット」メニューから「削除」を選択します。
Oracle Warehouse Builderで、削除を確認するダイアログ・ボックスが表示されます。
「選択したコンポーネントとそのすべての子を削除しますか。」というOracle Warehouse Builderの警告メッセージが表示されます。
「はい」をクリックします。
スナップショット操作のパフォーマンスは、表および索引の小さなサブセットに対してSQLオプティマイザの統計の精度により異なります。新しく作成されたリポジトリではこれらの統計のほとんどでデータが乏しいため、まず統計をシードしてから、ロックする必要があります。この対処により、格納データの少ないリポジトリでの中程度のサイズのスナップショットで妥当なパフォーマンスが保証されます。
スナップショットの数とサイズは増加するので、正確な統計が定期的に更新されることのないかぎり、スナップショットのパフォーマンスは低下します。リフレッシュを実行するにはいくつかの方法がありますが、(OMB*Plusの) OMBOPTIMIZE
または(「ツール」メニューの)「リポジトリの最適化」を実行する必要があります。それ以外の場合、特定の表はロックされたまま、以前シードされた統計が引き続き使用されます。