ビジネス・データの移行

コンテンツ移行アシスタントを使用して、選択したマスター・エンティティとその関連トランザクション・データをある環境から別の環境へターゲット移行できます。たとえば、テスト目的でアカウントのサブセットとその関連データを移行します。

次に、ビジネス・データの移行を設計する際に特別な考慮を必要とする、ビジネス・データと構成データの主な違いについて説明します。

  • ビジネス・データの移行では通常、構成のみのデータ・セットと比較して、はるかに多くのレコードがデータ・セットに含まれます。データ・セットのサイズに明示的な制限はありませんが、適正な制限を想定する必要があります。

  • エンティティの大規模なセットが同じデータ・セット内の比較的少数のエンティティに依存する場合、インポート・プロセスが大幅に遅くなります。この状況は、単一の移行に構成データ、マスター・データおよび大量のトランザクション・データを混在させる場合に発生します。したがって、これらのデータ・クラスについては別個の移行を設計することをお薦めします。詳細は、後述の「移行オブジェクト間の依存関係の削減」の項を参照してください。

  • すべてのビジネス・エンティティにシステム生成キーがあります。詳細は、「システム生成の主キーがあるデータ」を参照してください。

次の各項では、ビジネス・データの移行に関連するトピックおよび概念について詳しく説明します。

移行オブジェクト間の依存関係の削減

コンテンツ移行アシスタントは、アプリケーションの参照整合性およびビジネス・ルールを使用して、エンティティが別の環境にインポートされたときに適合性と有効性が確実に維持されるようにします。これらのルールは、エンティティが参照するエンティティのいずれかがターゲット環境に存在しない場合に、元のエンティティがインポートされないようにするためにあります。参照元エンティティと参照先エンティティの両方が同じデータ・セットの一部である場合、これらのエンティティを正常にインポートするために処理する順序を指定する依存関係が確立されます。このツールは、エンティティ間の依存関係が循環する、つまりエンティティAが(直接的または間接的に)エンティティBを参照し、エンティティBが(直接的または間接的に)エンティティAに戻って参照するという、順次処理では正常なインポートを十分に保証できない、より複雑でまれな状況もサポートします。

このツールは、同じデータ・セット内のエンティティ間の外部キー関係を使用して、依存エンティティのセットを識別し、それらを別個の移行トランザクション・レコードにグループ化します。これらの外部キーは、柔軟性を高めるために、データベース・レベルではなく、アプリケーションのデータ・モデル・リポジトリで定義されます。移行トランザクションが大きいほど、すべてのオブジェクトを正常にインポートするプロセスが複雑になります。そのため、このツールはすべてのタイプの依存関係(順次および循環)をサポートするように設計されていますが、依存オブジェクトの非常に大規模なセットを処理すると、多大なパフォーマンス・コストが発生することがあります。

構成エンティティは相互依存性が高い傾向がありますが、構成オブジェクトのセット全体を構成するエンティティの合計数は比較的少ないものです。したがって、構成のみのデータ・セットをインポートするときにこのような依存関係がパフォーマンスに及ぼす影響は、ごくわずかです。一方、構成エンティティは多くのマスター・エンティティとトランザクション・エンティティで参照される傾向がありますが、これは、それらによって後者のビジネス・ルールの多くの側面が制御されるためです。そのため、同じデータ・セットに構成データとビジネス・データを混在させると、少数の構成エンティティに依存するビジネス・エンティティの非常に大規模なセットが形成される可能性があります。したがって、ビジネス・データをインポートする前に、ターゲット環境で構成データをインポートまたは設定することをお薦めします。

同様に、一部のトランザクション・データは、それらが参照するマスター・データ・エンティティと比較して、はるかに大量である傾向があります。ここでも、大量の関連トランザクション・データより前にマスター・データ・エンティティを移行することをお薦めします。たとえば、多くのインターバル測定レコード(トランザクション・データ)が同じ計量コンポーネント(マスター・データ)を参照します。大量の測定データをその計量コンポーネントとともに移行すると、移行トランザクションが非常に大きくなり、インポートに時間がかかることがあります。インターバル測定を移行する前に計量コンポーネントをインポートすると、測定のみのデータ・セット内の不要な依存関係がなくなり、プロセス全体のパフォーマンスが大幅に向上します。

適正なデータ量

単一のデータ・セットで移行するすべてのビジネス・エンティティの全体的な量は、適正なサイズである必要があります。たとえば、数百のアカウントとその関連マスター・データおよびトランザクション・データのインポートは、適正なサイズと考えられます。移行するデータが多すぎると、ツールの物理的制限やパフォーマンス制限に達する可能性があります。

サポートされている移行要求方法を使用して、エクスポートするエンティティを記述できます。「エンティティ・リスト」移行要求を選択する場合は、「エンティティの収集」ダッシュボード・ゾーンを使用して、それぞれのポータルでエンティティを参照しながらエンティティのリストを作成することを検討してください。

単一のデータ・ソース

コンテンツ移行アシスタントは、エンティティの主キーを使用して、それがターゲット環境にとって新しいものであるため追加する必要があるのか、既存のレコードを参照するため新しいバージョンに置き換える必要があるのかを確認します。すべてのビジネス・エンティティに、環境固有のシステム生成キーがあります。したがって、同じ主キーを持つ異なるエンティティが別個の環境に存在する可能性があります。キーがシステム生成であるエンティティを移行する場合は、このアプリケーションを使用して、単一のソース環境からターゲット環境にデータを移行し、ターゲット環境にそのようなエンティティが作成されないようにすることをお薦めします。この手法により、インポートされたエンティティの主キーが常にソース環境と同期されていることが確実になります。詳細および考慮事項は、「システム生成の主キーがあるデータ」を参照してください。

削除なし

コンテンツ移行アシスタントでは、構成エンティティであろうと、ビジネス・エンティティであろうと、いずれの種類のエンティティの削除も処理されません。データの初期スナップショットを使用してテストを繰り返す必要がある場合は、テスト・データがインポートされる前に取得したバックアップにターゲット環境をリストアし、最新バージョンのテスト・データをインポートする必要があります。以前にインポートされたエンティティを削除する必要がない場合は、必要に応じて単一のソース環境からテスト・データを再ロードし続けることができます。

「一括インポート」モード

デフォルトでは、インポート・プロセスによって、インポートされたエンティティごとに移行オブジェクトが作成されます。これにより、エンティティ・レベルでのきめ細かなレポートおよびエラー処理が可能になります。ビジネス・エンティティの大規模なデータ・セットをインポートする場合、こうしたきめ細かな管理がパフォーマンスに影響を及ぼします。このような場合は、移行データ・セットのインポート要求で「一括インポート」オプションを使用することをお薦めします。このモードでは、同じメンテナンス・オブジェクトの複数のエンティティについて単一の移行オブジェクト・レコードが作成されます。同様に、複数の論理トランザクション・グループについて単一の移行トランザクション・レコードが作成されます。このオプションを使用すると、プロセス全体を通して移行オブジェクト管理の負担が軽減されるため、パフォーマンスが向上します。

通常のインポート処理と同様に、各エンティティは個別に比較および検証されますが、1つのエンティティが無効な場合、移行オブジェクト全体が適用されないため、そのエンティティとともにグループ化されたすべてのエンティティに影響します。「一括インポート」モードは、エラーがほとんどないと予想されるような検証済のデータ・ソースから大規模なデータ・セットをインポートする場合に便利です。 

このオプションは、マスターおよびトランザクション・メンテナンス・オブジェクトについてのみサポートされています。つまり、構成の移行には適用されません。

「挿入のみ」モード

デフォルトでは、インポート・プロセスの比較ステップで、インポートされたエンティティが新しいため追加する必要があるのか、既存のエンティティに対する変更を表し、更新する必要があるのか、エンティティが変更されていないのかを確認する必要があります。すべてが現在の環境にとって新しいビジネス・エンティティの大規模なデータ・セットをインポートする場合、この確認には時間がかかるため、回避できます。このような場合は、移行データ・セットのインポート要求で「挿入のみ」オプションを使用して、インポートされたすべてのエンティティが現在の環境への新規追加とみなされるように指定できます。このようにすることで、エンティティを追加する必要があるのか、更新する必要があるのかを確認するための不要なステップがインポート・プロセスで回避され、インポート・プロセスが高速化されます。

このオプションは、マスターおよびトランザクション・メンテナンス・オブジェクトについてのみサポートされています。つまり、構成の移行には適用されません。

ビジネス移行オブジェクトを管理するための別個のバッチ・プロセス

デフォルトでは、インポート関連の同じバッチ・プロセスによって、構成データとビジネス・データの移行が管理されます。通常、ビジネス・データの移行には、はるかに軽量な構成データ・セットと比較して、大量のレコードが含まれます。同じバッチ・プロセスでそれらをまとめて処理すると、構成の移行のパフォーマンスが低下し、より迅速かつより頻繁に完了できなくなることがあります。この問題は主に、混合データ・クラスの移行がより一般的である(構成データは下位の環境からインポートされ、大規模なテスト・データは上位の環境からインポートされる)テスト用などの環境に影響します。このような環境では、基本製品の構成を調整して、構成データとビジネス・データのインポート・プロセスを分離することでメリットを得ることができます。

インポート・プロセスを分離する機能は、量のみを理由として移行オブジェクトに適用されます。移行データ・セットおよびトランザクション・レコードは少量であるため、引き続き同じバッチ・プロセスによって管理されます。

ビジネス・データを含む移行オブジェクトのインポート用に指定された次のバッチ・プロセスが提供されていますが、これらはデフォルトでは使用されません。

  • F1-MGOPB - 移行オブジェクト・モニター(ビジネス)

  • F1-MGOAB - 移行オブジェクト・モニター(ビジネス) - 適用

ビジネス・データ用に指定されたこれらの別個のバッチ・プロセスを使用する手順は次のとおりです。

  • 次のステータスのビジネス・データ関連のバッチ管理を参照するように、「ビジネス・データの移行オブジェクト」(F1-MigrObjectBus)ビジネス・オブジェクトを更新します。

    • 保留、適用中エラー、レビュー要 - 移行オブジェクト・モニター(ビジネス) - F1-MGOPB

    • 承認済 - 移行オブジェクト・モニター(ビジネス) - 適用 - F1-MGOAB

  • 組織でコンテンツ移行アシスタントのバッチ・プロセスにイベント駆動のジョブ発行を使用する場合は、追加の構成ステップについて「バッチ・ジョブの実行」を参照してください。