インスタンスデータレプリケーション (IDR) の詳細

  • リリースバージョン: Xanadu
  • 更新日 2024年08月01日
  • 所要時間:7分
  • インスタンスデータレプリケーション (IDR) (HLA) は、1 つのインスタンスでさまざまな部門や事業部門間にデータを伝搬し、データの同期を維持できる、1 対多のレプリケーションを提供します。

    HLA では双方向レプリケーションもサポートしています。双方向レプリケーションでは、プロデューサーインスタンスからコンシューマーインスタンスにデータをコピーし、コンシューマーインスタンスからプロデューサーインスタンスにデータをコピーし直すことができます。

    メリット

    • データは 1 つ以上の他のインスタンスに自動的にレプリケートされます。
    • データを変更して、他のインスタンスの任意のテーブルとテーブル列にマッピングできます。たとえば、テーブル列を変更およびマッピングして、さまざまなロケールに応じてデータをローカライズできます。
    • コンシューマーインスタンスで更新されたデータをプロデューサーインスタンスにレプリケートできます。

      問題要求などのデータは、サードパーティが使用できるようにコンシューマーインスタンスにコピーできます。サードパーティはコンシューマーインスタンスの問題を更新できます。その後、データをプロデューサーインスタンスで更新できます。

    • 通知の生成やレプリケーションの検証など、ビジネスルールでレプリケーション後のワークフローをトリガーできます。
    • クラッシュ中に転送していたデータは復旧可能です。

    インスタンスデータレプリケーション (IDR) の仕組み

    インスタンスデータレプリケーション (IDR) プラグイン (com.glide.idr) を使用して、プロデューサーインスタンスと呼ばれる 1 つのインスタンスのデータ更新を、コンシューマーインスタンスと呼ばれる 1 つ以上の他のインスタンスにレプリケートします。

    プロデューサーレプリケーションセットを構成することで、レプリケートするプロデューサーインスタンスのテーブルとテーブル列を指定できます。コンシューマーデータセットの構成時に、プロデューサーレプリケーションセットデータを受信するコンシューマーインスタンスのテーブルとテーブル列を指定できます。

    次に、プロデューサーとコンシューマーの両方のレプリケーションセットをアクティブ化して、HLA 機能をオンにします。プロデューサーレプリケーションセット内のデータが更新されると、コンシューマーレプリケーションセット内の対応するデータが自動的に更新されます。

    プロデューサーおよびコンシューマーレプリケーションセットを同期するには、すべてのプロデューサーレプリケーションセットデータをコンシューマーインスタンスに 1 回限りダウンロード (「シード」と呼ばれる) する必要があります。

    コンシューマーレプリケーションセットをアクティブ化すると、コンシューマーインスタンスでシード要求を開始できます。Rome リリース以降、フィルター基準機能 (「部分シード」と呼ばれる) を使用して、シードされるレコード数を制限できます。重複するレコードが多数ある場合は、部分シードを使用して大きなジョブを小さなジョブに分割します。

    シード後、レプリケーションではデータ更新のみが行われます。監査記録にはこれらのレコードの更新履歴が含まれています。

    デフォルトでは、プロデューサーインスタンスのテーブルデータは、コンシューマーインスタンスの同じ名前のテーブルに入ります。変換は、コンシューマーインスタンスで名前が異なるテーブルまたはテーブル列のプロデューサーデータをレプリケートするプロセスです。

    HLA アダプターは、コンシューマーインスタンスに保存する前にデータを変更します。アダプターは、通貨の換算やタイムゾーンの変換など、文字列と算術の演算を実行します。

    図 : 1. HLA の概要
    データはプロデューサーインスタンスから 1 つ以上のコンシューマーインスタンスにレプリケートされます。
    警告:
    HLA はインスタンスのデータを上書きし、機密データをレプリケートできます。本番前環境で HLA の実装をテストすることで、データが消失したりデータが公開されたりする可能性を回避します。詳細については、「IDR のデータプライバシー (data privacy in IDR)」を参照してください。

    レガシーおよび V2 レプリケーションセット

    HLA では、レガシーおよび V2 レプリケーションセットがサポートされています。Washington DC リリース以降、レガシーレプリケーションセットを作成できなくなりました。

    • レガシーレプリケーションセットでは、Utah リリースより前に作成された ServiceNow Kafka メッセージ転送および配信実装を使用します。 Utah リリースより前に作成されたすべてのレプリケーションセットは、レガシーレプリケーションセットと見なされます。
    • V2 レプリケーションセットでは、Kafka メッセージ転送および配信に代わって ServiceNow Hermes メッセージングサービス を使用します。Hermes メッセージングサービス は、HLA がデータをより迅速かつ大規模にレプリケートできるようにする Now Platform の機能です。

    レガシープロデューサーレプリケーションセットは、レガシーコンシューマーレプリケーションセットとのみ互換性があります。同様に、V2 プロデューサーレプリケーションセットは、V2 コンシューマーレプリケーションセットとのみ互換性があります。

    新しい V2 レプリケーションセットを作成した場合は、既存のレガシーレプリケーションセットを V2 にアップグレードできます。「インスタンスデータレプリケーション (IDR) でのレガシーレプリケーションセットから V2 へのアップグレード」を参照してください。

    HLA およびインスタンスのアップグレード

    HLAを有効にしたインスタンスのアップグレードは、シームレスなプロセスです。

    • HLA は、インスタンスのアップグレード中にメッセージを消費または生成しません。 HLA ジョブは、アップグレードの開始時に自動的に停止されます。
    • data_replication_queueは、最後に送信されたメッセージのタイムスタンプを追跡します。これにより、アップグレード前に行われた最後の変更からレプリケーションが再開されます。
    • アップグレード前に進行中のシードは、アップグレードの開始時に自動的に一時停止され、アップグレードが完了すると再開されます。シードが中断なしで完了するようにするには、アップグレードの前にシード要求を開始しないでください。
    • シード要求は、インスタンスのアップグレード中に開始できません。
    • レプリケーションは、アップグレードが完了するとすぐに再開されます。レコードのレプリケーションを続行するために HLA を調整する必要はありません。

    HLA の制限事項および HLA を使用すべきでない場合

    • HLA を使用してインスタンスのクローンを作成しないでください。

      HLA は、メタデータテーブル、子メタデータテーブル、およびほとんどのユーザーテーブルとシステムテーブルをレプリケートしません。HLA は、インスタンスのクローンではなく、データをレプリケートするように設計されています。たとえば、アプリケーションファイル [sys_metadata] テーブルと [sys_metadata] を拡張するテーブル (ビジネスルール [sys_script]、カタログ [sc_catalog]、ワークフロー [wf_workflow] テーブルなど) は除外され、レプリケートできません。クローン作成の詳細については、「System clone」を参照してください。

    • 一連の大きな添付ファイルを定期的に複製するために HLA を使用することは避けてください。10 MB を超える添付ファイルを定期的に含める必要がある場合は、遅延時間が予想を超えないように HLA を監視します。
    • CMDB テーブルを複製しないでください。テーブルを複製する必要がある場合は、条件を使用して複製レコードの数を制限し、すべての必要な列がレプリケーションセットに含まれるようにする必要があります。
    • [エッジ暗号化 ( Edge Encrypted)]、[列レベル暗号化 (CLE)]、および [パスワード (双方向暗号化) (Password (2-Way Encrypted))] フィールドはレプリケートできません。
    • 更新されたレコードの複製に関する制限:
      • 最大レコードサイズは 32 MB です。
      • HLA は、1 日あたり約 100 万件のレコードの複製をサポートしています。
    • レコードのシードに関する制限事項:
      • レプリケーションシードが完了するまでに 7 日間を超えることはできません。
      • テーブルの初期シードがレプリケーションセットあたり 300 万レコードを超えることはできません。
      注:
      これらの制限に対応するには、シード要求のテーブル数を減らすか、レコードのサイズを小さくするか、または部分シードを使用します。