異なるジオデータベースにデータを分散すること、および各データベースのデータに対して行われた変更を同期することが、さまざまなワークフローで必要になります。このトピックでは、システムでデータ分散、ジオデータベース レプリカ、および同期を最適に使用する方法について説明します。
「データ分散の概要」は、ジオデータベース レプリケーションとそれ以外の分散データ操作方法を理解するのに適した手引きです。「データ分散のシナリオ」では、ジオデータベース レプリケーションを使用するための一般的なユース ケースが紹介されています。ジオデータベース レプリケーションがシステムに最も適した方法と思われる場合、次に行う手順はレプリカの作成です。
レプリカの作成
次の情報は、システムのレプリカを作成するための最適な方法を判断するのに役立ちます。
- どのようなレプリカが必要か判断する - レプリカを 1 つか 2 つ作成すれば十分な場合もあれば、多くのレプリカが必要になる場合もあります。たとえば、多くのレプリカが必要になるのは、現場でモバイル デバイスを使用して操作するフィールド担当者にデータを配布する場合です。2 つのエンタープライズ ジオデータベースを同期させたい場合は、レプリカ ペアが 1 つあれば十分でしょう。レプリカの詳細とジオデータベース内でのレプリカの機能については、「ジオデータベース レプリケーションの構造」をご参照ください。
- レプリケーションの種類を判断する - 「レプリケーションの種類」では、利用可能なレプリケーションの種類を説明しています。システムでシナリオごとに異なるタイプのレプリカを使用しなければならない場合があります。たとえば、別のオフィスとの同期には双方向レプリケーションが適しており、マップ 公開用のジオデータベースの更新には一方向レプリケーションを使用することが適してきます。
- レプリカを作成する - [レプリカの作成 (Create Replica)] ジオプロセシング ツールを使用して、レプリカを作成します。このツールは、レプリカを定期的に作成する必要がある場合に最適です。たとえば、現場担当者が日常的に使用するチェックアウト レプリカを作成するためのモデルを構築して保存しておくことができます。
- バージョン対応のワークフローにレプリケーションを統合する - ジオデータベース レプリケーションは従来のバージョニングに基づいて作成されています。レプリカの作成時に、親レプリカと子レプリカの両方にレプリカ バージョンが定義されます。これは同期の際に変更を送受信するバージョンです。詳細については、「レプリケーションとバージョニング」をご参照ください。
レプリカ バージョンは変更を同期するためのパイプなので、レプリカを作成する前に、レプリカ バージョンをどのように操作するか検討してください。たとえば、同期の際に、受信した変更に整合チェックを実行してから、メインのワークフローに統合する計画を立てたとします。この場合は、同期後にレプリカ バージョンの内容を解析してから、通常の作業バージョンにリコンサイルしてポストします。また、DEFAULT バージョンをレプリカ バージョンとして使用することもできます。これは、同期の際に、変更内容を直接 DEFAULT バージョンにポストしたい場合に使用できます。
- 複製するデータを定義する - ジオデータベース レプリケーションでは、エンタープライズ ジオデータベース内の一部またはすべてのデータセットを複製できます。また、フィルターおよびリレーションシップ クラスを使用して、複製するフィーチャまたは行 (地理的な範囲や選択条件) を定義することもできます。レプリカを作成する際には、常にフィルターが先に適用され、次にフィーチャと行をさらに追加するためにリレーションシップ クラスが使用されます。詳細については、「レプリケーションのためのデータの準備」をご参照ください。
複製するデータを定義する際には、その他のニーズについても検討します。たとえば、双方向レプリカと一方向レプリカを一度だけ作成して、繰り返し同期するような場合、 レプリカの作成時に定義したフィルターは、同期時にも適用されます。要件が徐々に変化するに従い、より地理的に大きなレプリカ範囲が必要になるなど、定義した条件を変更しなければならない場合もあります。また、複製するデータの種類について検討することも重要です。データの整合性を維持するために、トポロジなどのコンプレックス データ タイプを複製する際には、追加のルールが適用されます。次のヘルプ トピックには、これらのルールの説明が記載されており、例が示されています。トポロジ、リレーションシップ クラス、ラスター データ、テレイン、およびネットワーク データセット。複製するデータを定義する場合の考慮事項については、「高度なジオデータベース データセットのレプリケーション」をご参照ください。
- レプリカ作成オプションを検討する - レプリカの作成プロセスをできるだけ効率化するためのオプションがいくつか追加されました。これらのオプションは特定のケースを対象に設計されているため、ワークフローに適さない場合もあります。次のリストを参照して、これらのオプションを利用できるかどうか確認してください。
- スキーマの再使用 - 複製するデータのスキーマがすでに存在する複製先のジオデータベースを指定します。これにより、レプリカの作成時にスキーマを作成する必要がなくなるため、時間を節約することができます。このオプションは、チェックアウト/チェックイン レプリカにしか使用できません。可能な限り、このオプションを使用してください。
- 関連データのレプリカ - レプリカの作成時に、複製するデータを決定するために、最初にフィルターが適用され、次にリレーションシップ クラスが処理されます。リレーションシップ クラスの処理をオフにすると、時間を節約することができます。リレーションシップ クラスの処理をオフにした場合、リレーションシップ クラスは依然として含まれますが、レプリカの作成および同期の際に処理されません。リレーションシップ クラスの処理をすべてオフにすることができるオプションが [レプリカの作成 (Create Replica)] ジオプロセシング ツールに用意されています。
- 履歴管理を使用して変更を追跡 - バージョニングに関連付けられた差分テーブルの代わりに、履歴管理を使用して変更を追跡する場合、システムにレプリカ バージョンは作成されません。したがって、バージョニングの、リコンサイル、ポストなどのプロセスはレプリケーションの影響を受けず、バージョン管理とレプリケーション管理がそれぞれ独立したものになります。これによって、同期のスケジュールもより柔軟に設定できます。
メモ:
このオプションを選択しても、履歴管理は有効になりません。このオプションには、従来のバージョン対応登録されており、履歴管理が有効になっているデータが必要となります。このオプションを使用する場合は、デフォルト バージョンからレプリカを作成する必要があります。
レプリカの同期
レプリカが作成されたら、レプリカ ジオデータベース間で変更の同期を開始することができます。システムを効果的に運用するには、変更を同期するための計画を立てることが重要です。詳細については、「同期とは」をご参照ください。
システムに最適な手法を決定する際には、以下の点を考慮する必要があります。
- 同期の方法 - まず、システムに最適な同期の方法を決定します。次のオプションが用意されています。
- 手動による同期 - 操作するレプリカの数が少なく、変更の同期を頻繁に実行する必要がない場合は、ArcGIS Pro に用意されている [変更の同期 (Synchronize Changes)] ジオプロセシング ツールを使用します。
- エージェントによる自動化された同期 - レプリカの数が多いシステムまたは同期が頻繁に行われるシステムでは、レプリケーション エージェントの構築を検討する必要があります。レプリケーション エージェントは、複製先のジオデータベースに自動的に接続して、同期を実行する仕組みになっています。この場合、同期は自動的に開始されるため、エンド ユーザーが明示的に実行する必要はありません。
- ジオプロセシング ツールによる同期 - ジオプロセシング ツールで、レプリカを同期するためのモデルを構築することができます。これには、ローカル ジオデータベース接続またはインターネット経由で実行されるジオデータ サーバー オブジェクトへの接続のどちらかを使用します。これらのモデルを Python スクリプトにエクスポートして、Python で実行することができます。スクリプトを実行するためのコマンドを Windows スケジューラなどのスケジューリング ソフトウェアに追加して、定期的に実行することができます。たとえば、2 つのエンタープライズ ジオデータベースの同期を週に一度、ピーク時以外の時間帯にスケジュール設定することができます。
- 同期と競合 - レプリカのデータに加えられた編集内容が相対レプリカから同期された編集内容と競合している場合は、競合を解決する方法を決定しなければなりません。競合を自動的に解決するためのリコンサイル ポリシーを適用できます。システムで競合が発生しているかどうかを確認するには、「同期とバージョニング」をご参照ください。
- 同期するデータ - チェックアウト レプリカの場合は、子レプリカに加えられたすべてのデータ変更が同期されます。双方向レプリカと一方向レプリカの場合は、フィルターとリレーションシップ クラスのルールを満たしている変更だけが適用されます。[レプリカの管理 (Manage Replicas)] ウィンドウを使用して、複製先の各データセットに適用されたフィルターとリレーションシップ クラス ルールを特定することができます。データの整合性を維持するために、トポロジなどのコンプレックス データ タイプを同期する際には、追加のルールが適用されます。リレーションシップ クラスを処理して、同期するデータを追加することもできます。タイプの異なるデータの同期方法を十分に把握するには、「トポロジの同期」および「関連データの同期」をご参照ください。
複製することを選択したデータのメタデータは、レプリカ作成プロセス中にコピーされます。メタデータへの変更はレプリカの同期中には適用されません。
- データの量 - 同期の際には、最後の同期以降に加えられた変更だけが適用されます。ArcGIS は、すでに送信および承認された変更を除外します。また、いったん送信された変更が元のレプリカに返送されることはありません。このようにして、送信するデータの量を必要なものだけに減らします。
変更がデータに適用される割合に応じて、同期の頻度を計画してください。変更の量に十分に対応できる頻度で同期を実行しないと、同期処理に時間がかかる場合があります。また、ピーク時以外の時間帯に同期を実行することも推奨されます。
- レプリカを同期する順番 - 複数のレプリカを操作する場合は、それらを同期する順番が重要になる可能性があります。たとえば、単一のエンタープライズ ジオデータベースから複数の双方向レプリカを作成する場合について検討してください。これらのレプリカの同期をとる方法の 1 つは、各子レプリカを親レプリカと双方向で同期させることです。この場合は、子レプリカが変更を親レプリカに送信し、親レプリカも変更を子レプリカに送信します。もう 1 つの方法では、各子レプリカが先に変更を親レプリカに送信します。親レプリカはすべての変更を取り込んだ後、変更を各子レプリカに返送します。1 つ目の方法では、親レプリカが送信するのは、親レプリカでの変更と、各レプリカから受信し、すでに同期されている変更だけですが、2 つ目の方法では、他のすべてのレプリカから取り込まれた変更も送信します。どちらの方法が適切であるかは、システムの要件によります。
- スキーマの変更 - ジオデータベース レプリケーションでは、スキーマの変更が可能です。これは、複製されたデータにスキーマの変更が加えられた場合でも、引き続き同期が機能することを意味します。一般に、スキーマの変更は最小限に抑えることをお勧めします。
- エラーへの対処 - 同期の際には、さまざまな理由でエラーが発生する可能性があります。コンピューター ネットワークがダウンしたり、競合しているレプリカを同期しようとしたりする可能性があります。システムはデータの整合性を保つように設計されています。変更がロールバックされ、不適切なデータ変更が破棄されます。レプリカ アクティビティ ログを使用して、発生したエラーを検索し、復旧方法を判断することができます。ほとんどの場合は、続けて変更を同期すると、システムがエラーから自動的に復旧します。レプリカには、送信された変更セットの数と受信された変更セットの数を示す世代情報も含まれています。詳細については、「レプリカの管理」をご参照ください。