インスタンスデータレプリケーション (IDR) でのテーブル階層の保持

  • リリースバージョン: Washingtondc
  • 更新日 2024年02月01日
  • 読む3読むのに数分
  • 親子テーブル階層を複製するかどうか、および インスタンスデータレプリケーション (IDR) (IDR) のデータを複製するために使用する戦略を決定します。

    レプリケーションセットを作成する前に、複製するテーブルが親子テーブル階層に含まれているかどうかを確認します。含まれている場合は、その階層を保持するかどうか、および親の観点からデータを複製するか (親テーブルに属する列のみを保持する) か、または子の観点からデータを複製するか (子テーブルに属するすべての列を保持する) を決定します。以下の利用可能な戦略を確認してください。

    戦略 1:階層全体を保持して子列を複製する
    すべての子テーブル列を含む階層全体を保持するには、子テーブルごとに送信エントリを作成し、子テーブルごとに sys_class_name フィルターを指定します。

    たとえば、タスクテーブルを複製し、すべての子テーブルのすべての列が含まれるようにするには、次のように指定します。

    表 : 1. 送信エントリ
    テーブル フィルター
    タスク sys_class_name=task
    インシデント sys_class_name=incident
    問題 sys_class_name=problem
    変更要求 sys_class_name=change

    sys_class_name の各テーブルのフィルターを含め、すべての子テーブルについても同様です。

    この戦略では、プロデューサーの各子テーブルに属する列のデータをはじめ、レコードがコンシューマーの各子テーブルに挿入されます。

    戦略 2:階層は保持するが、子列は複製しない
    階層を保持し、親テーブルの列のみを複製するには、親テーブルを複製し、[含まれているフィールド] リストにクラス名 [sys_class_name] フィールドを含めます。クラス名フィールドを含めると、コンシューマーインスタンスの親レコードと子レコードの区別が維持されます。
    たとえば、タスクテーブルとその子 (インシデント、問題、変更要求) を複製するが、タスクテーブルに属する列のみを複製する場合は、次のように指定します。
    表 : 2. 送信エントリ
    テーブル 含まれているフィールド
    タスク クラス名

    この戦略では、コンシューマーのタスクテーブルの sys_class_name 列が親テーブル (タスク) と子テーブル (インシデント、問題、および変更) のエントリを受け取り、レコードがコンシューマーのそれぞれの子テーブルに挿入されます。ただし、sys_class_name フィルターがないと、各子テーブルに固有の列は複製されません。

    戦略 3:階層を無視し、親テーブルデータのみを複製する
    階層を無視し、親レコードのみを複製するには、親テーブルを複製し、[含まれているフィールド] リストからクラス名 [sys_class_name] フィールドを除外します。クラス名フィールドを除外すると、コンシューマーインスタンスで親レコードと子レコードが区別されなくなります。コンシューマーの複製されたレコードはすべて親テーブルレコードになります。
    たとえば、タスクテーブルからレコードを複製し、レポートまたは監査の目的ですべてのレコードを単にタスクと見なす場合は、次のように指定します。
    表 : 3. 送信エントリ
    テーブル 含まれているフィールド
    タスク クラス名フィールドを除くすべてのフィールド

    この戦略では、タスクテーブルを複製すると、複製されたすべてのレコードの sys_class_name 列にタスクの値が含まれ、子テーブルに属する列は複製されません。

    従来の動作の変更

    Utah より前に作成されたレプリケーションセット内の完全な親子テーブル階層は複製できますが、テーブルごとに個別の送信エントリを作成し、各テーブルにそれぞれの sys_class_name フィルターを含める必要があります。つまり、上記の戦略 1 を使用して階層を複製できますが、戦略 2 または 3 は使用できません。

    または、プロデューサーレプリケーションセットを編集し、[テーブル名を使用] フィールドの値を [True] に変更することで、任意の戦略を使用できます。このフィールドはデフォルトでは非表示になっており、変更するにはプロデューサーレプリケーションセットフォームに追加する必要があります。[テーブル名を使用] フィールドは、Utah リリース以降に作成するすべての新しいプロデューサーレプリケーションセットではデフォルトで True に設定されています。