ジオデータベース レプリケーションの基礎

異なるジオデータベースにデータを分散すること、および各データベースのデータに対して行われた変更を同期することが、さまざまなワークフローで必要になります。このトピックでは、システムでデータ分散、ジオデータベース レプリカ、および同期を最適に使用する方法について説明します。

データ分散の概要」は、ジオデータベース レプリケーションとそれ以外の分散データ操作方法を理解するのに適した手引きです。「分散データのシナリオ」では、ジオデータベース レプリケーションを使用するための一般的なユース ケースが複数紹介されています。ジオデータベース レプリケーションがシステムに最も適した方法である場合は、レプリカの作成方法について検討します。

レプリカの作成

次の情報は、システムのレプリカを作成するための最適な方法を判断するのに役立ちます。

  • どのレプリカが必要か判断する - レプリカを 1 つか 2 つ作成すれば十分な場合もあれば、多くのレプリカが必要になる場合もあります。たとえば、多くのレプリカが必要になるのは、現場でモバイル デバイスを使用して操作するフィールド担当者にデータを配布する場合です。2 つのエンタープライズ ジオデータベースを同期させたい場合は、レプリカ ペアが 1 つあれば十分でしょう。レプリカの詳細およびレプリカがジオデータベース内でどのように機能するかについては、「ジオデータベース レプリケーションのアーキテクチャ」をご参照ください。
  • レプリケーションの種類を判断する - 「レプリケーションの種類」では、利用可能なレプリケーションの種類を説明しています。システムでシナリオごとに異なるタイプのレプリカを使用しなければならない場合があります。たとえば、別のオフィスとの同期には双方向レプリケーションが適しており、マップ 公開用のジオデータベースの更新には一方向レプリケーションを使用することが適してきます。
  • レプリカを作成する - [レプリカの作成 (Create Replica)] ジオプロセシング ツールを使用して、レプリカを作成します。このツールは、レプリカを定期的に作成しなければならない場合に適しています。たとえば、現場担当者が日常的に使用するチェックアウト レプリカを作成するためのモデルを構築できます。
  • バージョン対応のワークフローにレプリケーションを統合する - ジオデータベース レプリケーションは従来のバージョニングに基づいて作成されています。レプリカの作成時に、親レプリカと子レプリカの両方にレプリカ バージョンが定義されます。これは同期の際に変更を送受信するバージョンです。詳細については、「レプリケーションとバージョニング」をご参照ください。

    レプリカ バージョンは変更を同期するためのパイプなので、レプリカを作成する前に、レプリカ バージョンをどのように操作するか検討してください。たとえば、同期の際に、受信した変更に整合チェックを実行してから、メインのワークフローに統合する計画を立てたとします。同期後にレプリカ バージョンの内容を解析してから、通常の作業バージョンにリコンサイルおよびポストできます。また、デフォルト バージョンをレプリカ バージョンとして使用できます。これは、同期の際に、変更内容を直接 DEFAULT バージョンにポストしたい場合に使用できます。

  • 複製するデータを定義する - ジオデータベース レプリケーションでは、エンタープライズ ジオデータベース内の一部またはすべてのデータセットを複製できます。また、フィルターおよびリレーションシップ クラスを使用して、複製するフィーチャまたは行 (地理的な範囲や選択条件) を定義することもできます。レプリカを作成する際には、常にフィルターが先に適用され、次にフィーチャと行をさらに追加するためにリレーションシップ クラスが使用されます。詳細については、「レプリケーションのためのデータの準備」をご参照ください。

    複製するデータを定義する際には、その他のニーズについても検討します。たとえば、双方向レプリカと一方向レプリカを一度だけ作成して、繰り返し同期するような場合、 レプリカの作成時に定義したフィルターは、同期時にも適用されます。要件が徐々に変化するに従い、より地理的に大きなレプリカ範囲が必要になるなど、定義した条件を変更しなければならない場合もあります。また、複製するデータの種類について検討することも重要です。データの整合性を維持するために、トポロジなどのコンプレックス データ タイプを複製する際には、追加のルールが適用されます。以下のヘルプ トピックでは、ArcGIS のトポロジリレーションシップと ArcGISArcGIS Pro における画像とラスターArcGIS Pro におけるテレイン データセットネットワーク データセットに関するルールと例を示しています。複製するデータを定義する場合の考慮事項については、「高度なジオデータベース データセットのレプリケーション」をご参照ください。

  • レプリカ作成オプションを検討する - レプリカの作成プロセスをできるだけ効率化するためのオプションがいくつか追加されました。これらのオプションは特定のケースを対象に設計されているため、ワークフローに適さない場合もあります。次のリストを参照して、これらのオプションを利用できるかどうか確認してください。
    • スキーマの再使用 - 複製するデータのスキーマがすでに存在する複製先のジオデータベースを指定します。これにより、レプリカ作成時にスキーマの作成を省略できるため、時間が節約されます。このオプションは、チェックアウト レプリカとチェックイン レプリカに適用されますが、可能な限りこれを使用することをおすすめします。
    • 関連データのレプリカ - レプリカの作成時に、複製するデータを決定するために、最初にフィルターが適用され、次にリレーションシップ クラスが処理されます。リレーションシップ クラスの処理をオフにすると、時間を節約することができます。リレーションシップ クラスの処理をオフにした場合、リレーションシップ クラスは依然として含まれますが、レプリカの作成および同期の際に処理されません。リレーションシップ クラスの処理をすべてオフにすることができるオプションが [レプリカの作成 (Create Replica)] ジオプロセシング ツールに用意されています。
    • 履歴管理を使用して変更を追跡 - バージョニングに関連付けられた差分テーブルの代わりに、履歴管理を使用して変更をトラックする場合、システムにレプリカ バージョンは作成されません。したがって、バージョニングの、リコンサイル、ポストなどのプロセスはレプリケーションの影響を受けず、バージョン管理とレプリケーション管理がそれぞれ独立したものになります。これによって、同期のスケジュールもより柔軟に設定できます。
      メモ:

      このオプションでは、履歴管理が有効にならないため、履歴管理を有効にしてデータをトラディショナル バージョン対応登録する必要があります。このオプションを使用する場合は、デフォルト バージョンからレプリカを作成する必要があります。

    • 既存データのみ登録 - 大量のデータを複製する場合は、[既存データのみ登録] オプションの使用を検討してください。このオプションを使用することで、レプリカの作成時にデータのコピーを省略し、既存のジオデータベースをレプリカとして登録することができます。このオプションを問題なく使用するには、レプリカ作成前に特定の要件群を満たす必要があります。

レプリカの同期

レプリカが作成されたら、レプリカ ジオデータベース間で変更の同期を開始することができます。システムを効果的に運用するには、変更を同期するための計画を立てることが重要です。詳細については、「同期とは」をご参照ください。

システムに最適な手法を決定するときには、以下を検討してください。

  • 同期の方法 - まず、システムに最適な同期の方法を決定します。次のオプションが用意されています。
    • 手動による同期 - 操作するレプリカの数が少なく、変更の同期を頻繁に実行する必要がない場合は、ArcGIS Pro に用意されている [変更の同期 (Synchronize Changes)] ジオプロセシング ツールを使用します。
    • エージェントによる自動化された同期 - レプリカの数が多い、または同期が頻繁に発生する、あるいはその両方のシステムでは、レプリケーション エージェントの構築を検討してください。レプリケーション エージェントは、複製先のジオデータベースに自動的に接続して、同期を実行する仕組みになっています。この場合、同期は自動的に開始されるため、エンド ユーザーが明示的に実行する必要はありません。
      • ジオプロセシング ツールによる同期 - ジオプロセシング ツールで、レプリカを同期するためのモデルを構築することができます。これには、ローカル ジオデータベース接続またはインターネット経由で実行されるジオデータ サーバー オブジェクトへの接続のどちらかを使用します。これらのモデルを Python スクリプトにエクスポートして、Python で実行できます。スクリプトを実行するためのコマンドを Windows スケジューラなどのスケジューリング ソフトウェアに追加すると、コマンドを定期的に実行できます。たとえば、2 つのエンタープライズ ジオデータベースの同期を週に一度、ピーク時以外の時間帯にスケジュール設定することができます。
  • 同期と競合 - レプリカのデータに対する編集が別のレプリカから同期された編集内容と競合した場合には、競合を解決する方法を決定しなければなりません。リコンサイル ポリシーを提供して、競合を自動的に解決できます。システムで競合が発生しているかどうかを確認するには、「同期とバージョニング」をご参照ください。
  • 同期するデータ - チェックアウト レプリカの場合は、子レプリカに加えられたすべてのデータ変更が同期されます。双方向レプリカと一方向レプリカの場合は、フィルターとリレーションシップ クラスのルールを満たしている変更だけが適用されます。[レプリカの管理] ウィンドウを使用して、複製された各データセットに適用されているフィルターとリレーションシップ クラスのルールを特定することができます。データの整合性を維持するために、トポロジなどのコンプレックス データ タイプを同期する際には、追加のルールが適用されます。リレーションシップ クラスを処理して、同期するデータを追加することもできます。タイプの異なるデータの同期方法を十分に把握するには、「トポロジの同期」および「関連データの同期」をご参照ください。

    複製することを選択したデータのメタデータは、レプリカ作成プロセス中にコピーされます。メタデータへの変更はレプリカの同期中には適用されません。

  • データの量 - 同期の際には、最後の同期以降の変更だけが適用されます。ArcGIS Pro すでに送信および承認された変更を除外します。また、いったん送信された変更が元のレプリカに返送されることはありません。このようにして、送信するデータの量を必要なものだけに減らします。

    変更がデータに適用される割合に応じて、同期の頻度を計画してください。変更の量に十分に対応できる頻度で同期を実行しないと、同期処理に時間がかかる場合があります。また、ピーク時以外の時間帯に同期を実行することも推奨されます。

  • レプリカを同期する順番 - 複数のレプリカを操作する場合は、それらを同期する順番が重要になる可能性があります。たとえば、単一のエンタープライズ ジオデータベースから複数の双方向レプリカを作成する場合について検討してください。これらのレプリカの同期をとる方法の 1 つは、各子レプリカを親レプリカと双方向で同期させることです。この場合は、子レプリカが変更を親レプリカに送信し、親レプリカも変更を子レプリカに送信します。もう 1 つの方法では、各子レプリカが先に変更を親レプリカに送信します。親レプリカはすべての変更を取り込んだ後、変更を各子レプリカに返送します。1 つ目の方法では、親レプリカが送信するのは、親レプリカでの変更と、各レプリカから受信し、すでに同期されている変更だけですが、2 つ目の方法では、他のすべてのレプリカから取り込まれた変更も送信します。どちらの方法が適切であるかは、システムの要件によります。
  • スキーマの変更 - ジオデータベース レプリケーションでは、スキーマの変更が可能です。これは、複製されたデータのスキーマが変更された場合でも、同期が依然として機能することを意味します。一般に、スキーマの変更は最小限に抑えることをお勧めします。
  • エラーへの対処 - 同期の際には、さまざまな理由でエラーが発生する可能性があります。コンピューター ネットワークがダウンしたり、競合しているレプリカを同期しようとしたりする可能性があります。システムはデータの整合性を保つように設計されています。変更がロールバックされ、不適切なデータ変更が破棄されます。レプリカ アクティビティ ログを使用して、発生したエラーを検索し、復旧方法を判断することができます。ほとんどの場合は、引き続き変更を同期すると、システムがエラーから自動的に復旧します。レプリカには、送信された変更セットの数と受信された変更セットの数を示す世代情報も含まれています。詳細については、「レプリカ管理の概要」をご参照ください。

関連トピック