データを複数のジオデータベースに分散させると、データの可用性とパフォーマンスが向上します。データを分散させると、サーバーの競合を軽減できるため、組織は編集作業を行うユーザーと読み取り専用操作のためにアクセスするユーザーの間でジオデータベースにかかる負荷を調整することができます。
ジオデータベース レプリケーションは、ArcGIS Pro で実行できるデータ分散ワークフローの 1 つです。ジオデータベース レプリケーションはトラディショナル バージョン対応環境に基づいて構築され、複数のジオデータベース間でデータ変更を同期できるようにすべてまたは一部のデータが分散されます。データセットが複製されるとレプリカ ペアが出来上がり、一方のレプリカデータは複製元のジオデータベースに配置され、もう一方の対応するレプリカデータは別の複製先のジオデータベースに配置されます。ジオデータベース内のこれらのレプリカに対する変更をすべて同期して、一方のレプリカのデータをもう一方のレプリカのデータと一致させることが可能です。
実装する前に、レプリケーションのためのデータの準備に関して考慮する点がいくつかあります。
ジオデータベース レプリケーション要件
複製するためには、データセットが次の要件を満たしていなければなりません。
- レプリカを作成するデータベース ユーザーは、データへの書き込みアクセスを許可されている必要があります。
- レプリカを作成するデータベース ユーザーには、エンタープライズ ジオデータベース内のデータを所有するための十分な権限が必要です。
- すべてのデータがトラディショナル バージョン対応登録されている必要があります。
メモ:
ブランチ バージョン対応データ、およびベース テーブル移行オプションを使用するトラディショナル バージョニングで登録されたデータは、ArcGIS Pro のジオデータベース レプリケーションでサポートされていません。
レプリケーション タイプによっては、次のレプリケーション要件も適用されます。
- チェックアウト/チェックイン レプリケーション
- バージョン対応登録されていないデータをチェックアウトするか、トラディショナル バージョン対応登録されているデータをチェックアウトするかを選択できます。
- 一方向レプリカおよび双方向レプリカ
- 各データセットには、GlobalID 列を持つ必要があります。GlobalID 列は、ジオデータベース間で行の一意性を維持するために使用されます。
- 履歴管理を使用して変更を追跡できる一方向レプリケーション
- 親から子への一方向レプリケーション - 子レプリカは、エンタープライズ ジオデータベースまたはファイル ジオデータベースにすることができます。
- 子から親への一方向レプリケーション - 子レプリカと親レプリカをどちらも、エンタープライズ ジオデータベースでホストする必要があります。
これらの要件を満たしていないデータセットはレプリカに含まれません。一部のデータセットがこれらの要件を満たしていない場合は、レプリカを作成できません。
従属データセットを含めるように、複製対象のデータのリストが自動的に展開されます。たとえば、レプリケーションのためにトポロジまたはフィーチャ データセット内のフィーチャクラスを選択した場合は、そのトポロジまたはフィーチャ データセット内のすべてのフィーチャクラスが含まれます。詳細については、「高度なジオデータベース データセットでのレプリケーション」および「レプリケーションとジオデータベースの互換性」をご参照ください。
次に、レプリカの作成時に追加のルールと振舞いが適用されるデータのタイプを示します。それぞれのデータに該当するトピックをご参照ください。
複製するデータセットの決定
レプリカの作成で最も重要な点の 1 つは、複製するデータを決定することです。レプリカを作成する場合には、データセット内のデータをすべて複製するか、データのサブセットだけを複製するかを選択できます。個々のニーズに合わせて、適切な範囲のデータを複製する計画を立ててください。レプリカのライフタイムを考慮して、個々の要件が満たされるようにしてください。
複製することを選択したデータのメタデータは、レプリカ作成プロセス中にコピーされます。メタデータへの変更はレプリカの同期中には適用されません。
すべてのデータを複製
[レプリカの作成 (Create Replica)] ジオプロセシング ツールを使用すると、複製するレイヤーを選択して、すべてのデータを複製することができます。
メモ:
テーブルの場合のデフォルト動作では、そのテーブルのスキーマだけが複製されます。すべてのレコードを複製する場合は、下記の「複製するデータのサブセットを作成」の手順に従って、SQL 式 1=1 をテーブルに対するフィルター設定として指定します。レコードのサブセットを複製する場合は、それに応じて適切な SQL 式を設定します。
複製するデータのサブセットを作成
データセット内のフィーチャのサブセットだけを複製したい場合がよくあります。複製するデータのサブセットを指定するには、複数の方法があります。
- フィルター設定を使用する。
- 選択セットを使用します。
- 範囲を指定する。
- ジオメトリ フィーチャを使用する。
使用したフィルターに基づいてデータを決定すると、リレーションシップ クラスが存在する場合に、リレーションシップ クラス ロジックが適用されます。リレーションシップ クラスに含まれているデータセットごとに、レプリカ内の既存のデータに関連する行がレプリカに追加されます。詳細については、「レプリケーションと関連データ」をご参照ください。
フィルター設定の使用
フィルター設定は SQL 構文で作成されます。フィルター設定を使用すると、データセットから取得するフィーチャをフィルタリングして、レイヤー内で操作するフィーチャのサブセットを定義し、そのレイヤーの属性テーブルに表示することができます。フィーチャのサブセットを複製するには、この手順に従って、ArcGIS Pro でまずレイヤーに対するフィルター設定を作成します。
データセットに対するフィルター設定を作成したら、[レプリカ データセット] ドロップダウン メニューを使用して、そのデータセットを [レプリカの作成 (Create Replica)] ジオプロセシング ツールに追加します。
メモ:
[レプリカの作成 (Create Replica)] ジオプロセシング ツールの [レプリカ データセット] ドロップダウン メニューを使用して、フィルター設定がレプリカに適用されているかどうかを確認する必要があります。参照ボタンを使用した場合、マップ内のデータからのフィルター設定は適用されません。
選択セットを使用します。
フィーチャを選択すると、マップ上でフィーチャのサブセットをハイライト表示して、その後のデータの調査や解析で使用できます。フィーチャを選択後、各フィーチャクラスおよびテーブルの選択セットを複製することができます。[レプリカの作成 (Create Replica)] ジオプロセシング ツールから [レプリカ データセット] ドロップダウン メニューを使用して、マップで選択したデータセットがレプリカ内で確実に使用されるようにします。
範囲の指定
[範囲] 環境設定を使用すると、複製するデータの空間範囲を定義できます。この設定では、指定した範囲内にあるフィーチャだけが処理の対象となります。
入力された範囲は、出力データの座標系の環境が設定されていても、入力データが格納されている座標系によるものと想定されます。ツールへの入力データセットが複数ある場合は、最初のデータセットで範囲の座標系が決まります。
ジオメトリ フィーチャの使用
レプリカ ジオメトリを定義する場合の使用方法の詳細については、[レプリカの作成 (Create Replica)] ジオプロセシング ツールに関するヘルプの [レプリカ ジオメトリ フィーチャ] パラメーターをご参照ください。
[レプリカの作成 (Create Replica)] ジオプロセシング ツールのパラメーター
[レプリカの作成 (Create Replica)] ジオプロセシング ツールの入力パラメーターを次に示します。
- レプリカ データセット - データのサブセットを複製する場合は、フィルター設定を適用し、ドロップダウン メニューを使用して、データのサブセットをレプリカに追加します。それ以外のデータセットでは、該当するデータセットを参照して選択するか、レイヤーがマップ内に存在する場合はドロップダウン メニューを使用します。
- レプリカ タイプ - チェックアウト レプリカ、一方向レプリカ、子から親への一方向レプリカ、または双方向レプリカを選択します。
- 複製したデータを格納するジオデータベース - ローカルまたはリモートの複製先ジオデータベースに複製できます。リモート ジオデータベースにアクセスするには、 ArcGIS Server で実行されているジオデータ サービスを使用します。
該当するジオデータベースまたはジオデータ サービスを参照して選択し、データを受信します。レプリカ タイプがチェックアウトまたは一方向の場合は、複製先をファイル ジオデータベースにすることができます。それ以外のレプリカ タイプの場合は、エンタープライズ ジオデータベースにする必要があります。
- レプリカ名 - 作成するレプリカの名前を入力します。
高度な設定
レプリカ アクセス タイプ
レプリカを作成する場合は、フィーチャ情報モデルに関して次の 2 つのオプションのいずれかを選択できます。
- フル モデル - フル モデルでは、トポロジ、アノテーション、ディメンション フィーチャクラスなど、すべてのシンプル データ タイプとコンプレックス データ タイプが子ジオデータベースに複製され、バージョン対応登録されます。これがデフォルトです。
フル モデルでは、フィーチャが親相対レプリカ ジオデータベースと子相対レプリカ ジオデータベースの両方に同じフィーチャ タイプで格納されていると見なされます。このオプションは、ArcGIS クライアント ソフトウェアに基づく編集アプリケーションでの使用を目的としています。
- シンプル モデル - シンプル モデルでは、子ジオデータベースにシンプル フィーチャだけが含まれます。シンプル モデルでは、トポロジ、ネットワーク データセット、アノテーション、ディメンション フィーチャクラスは複製されず、子ジオデータベース内のデータはバージョン対応登録されません。必要に応じて、レプリカの作成後に、子ジオデータベース内のデータをバージョン対応登録することができます。
複製中に、親ジオデータベース内のシンプル フィーチャ以外のフィーチャ (トポロジやネットワーク データセットなど) は子ジオデータベース内でシンプル フィーチャに変換され、この逆の変換も行われます。2 つのジオデータベース内のフィーチャのタイプおよび特性の違いを把握するために、同期中に追加処理が適用されます。
このオプションは、子ジオデータベースがシンプル フィーチャ エディター (ArcGIS クライアント ソフトウェアに基づいていないサードパーティ製のエディターを含む) での編集を目的として設計されている場合に使用する必要があります。また、このオプションは、子ジオデータベース内のデータ モデルを単純化するために、一方向のレプリケーションの実行時に使用するか、ArcGIS または ArcGIS クライアント ソフトウェアに基づくエディターで使用することもできます。
シンプル モデルには、次の利点があります。
- Esri ソフトウェアに基づいていないシンプル フィーチャ エディターを使用して子ジオデータベースを編集できます。
- 一方向レプリカの場合は、子ジオデータベース内のデータがバージョン対応登録されていないため、Esri 以外のアプリケーションと簡単に統合できます。
メモ:
トポロジでは、シンプル モデルを使用した場合に、トポロジ オブジェクトが子ジオデータベースから除外されますが、関連するフィーチャクラスはすべて含まれます。レプリカを作成した後、子ジオデータベースから親ジオデータベースに変更を送信すると、親ジオデータベース内のフィーチャが自動的に維持されます。親ジオデータベースでは、トポロジのダーティ エリアを更新するための追加処理が行われます。
拡張フィーチャクラスとテーブル
ここでは、拡張フィーチャクラスおよびテーブル (トポロジまたはリレーションシップ クラス内にあるものなど) のうち、レプリカ データセットに表示されていないものを含めるかどうかを指定します。
- [デフォルトの使用] - レプリカ内のフィーチャクラスおよびテーブルに関連した拡張フィーチャクラスおよびテーブルを追加します。フィーチャクラスの場合は、デフォルトで空間フィルターを交差するすべてのフィーチャがレプリカに含まれます。空間フィルターが指定されていないと、すべてのフィーチャが含まれます。テーブルの場合は、デフォルトでスキーマのみがレプリカに含まれます。
- スキーマのみを使用して追加 - 拡張フィーチャクラスおよびテーブルのスキーマのみを追加します。
- [すべての行] - 拡張フィーチャクラスおよびテーブルのすべての行を追加します。
- [追加しない] - 拡張フィーチャクラスおよびテーブルを追加しません。
関連データの複製
ここでは、レプリカ内にすでに存在する行に関連した行を複製するかどうかを指定します。たとえば、レプリケーション フィルター内部にフィーチャ (f1) があり、そのフィルター外部にこのフィーチャに関連付けられた別のクラスの関連フィーチャ (f2) があるとします。この場合、関連データの取得を選択すると、フィーチャ f2 がレプリカに含まれます。
- 関連データを取得しない - 関連した行を複製しません。
- 関連データを取得 - 関連データを複製します。これがデフォルトです。
レプリカ ジオメトリ フィーチャ
[レプリカ ジオメトリ フィーチャ] を使用して、レプリカ ジオメトリを指定できます。
- レプリカ ジオメトリ フィーチャとして、ポイント、ライン、またはポリゴンを指定できます。
- レプリカ ジオメトリ フィーチャに使用されるフィーチャ レイヤーには、1 つ以上のフィーチャを含めることができます。複数のフィーチャがある場合は、ジオメトリがマージされ、マージされたジオメトリと交差するデータだけが複製されます。
- フィルター (フィルター設定など) がレプリカ ジオメトリ フィーチャに対して指定されている場合は、これらのフィルター条件を満たしたフィーチャだけがレプリカ ジオメトリの定義に使用されます。
- [範囲] 環境設定を使用してレプリカ ジオメトリを指定することもできます。
- [レプリカ ジオメトリ フィーチャ] が設定されている場合、これがレプリカ ジオメトリとして使用されます。
- [レプリカ ジオメトリ フィーチャ] が設定されていない場合は、[範囲] 環境設定がレプリカ ジオメトリとして使用されます。
- [レプリカ ジオメトリ フィーチャ] と [範囲] 環境設定がどちらも設定されている場合は、[レプリカ ジオメトリ フィーチャ] 設定が使用されます。
- [レプリカ ジオメトリ フィーチャ] も [範囲] 環境設定も設定されていない場合は、データの全範囲が使用されます。
既存データのみ登録
レプリカの作成は、ソース ジオデータベースからターゲット ジオデータベースにデータをコピーし、各ジオデータベースにレプリカを登録して、複製されたデータを記述するプロセスです。別のジオデータベースにデータをコピーして登録するレプリカの作成プロセスは、データ サイズが大きいデータセットでは時間がかかる可能性があります。
大規模なデータセットを持つユーザーや、2 つのジオデータベースに同一のデータを持つユーザー向けに、レプリカの作成時に既存データのみを登録する [既存データのみ登録] オプションが用意されています。[既存データのみ登録] オプションを使用すると、ジオデータベースで変更を同期する必要のあるレプリカ バージョンが作成されますが、データはすでに両方のデータベースに存在しているので、データ コピーの処理時間を短縮することができます。
[既存データのみ登録] オプションは、[レプリカの作成 (Create Replica)] ジオプロセシング ツールの [高度な設定] にあります。
- オン - [既存データのみ登録] がオンの場合、データは子ジオデータベースにすでに存在し、レプリカの登録に使用されることが想定されます。
- オフ - [既存データのみ登録] がオフ (デフォルト) の場合、親ジオデータベースのデータが子ジオデータベースにコピーされます。
要件
[レプリカの作成 (Create Replica)] ジオプロセシング ツールを、[既存データのみ登録] オプションを指定して実行する前に、子 (ターゲット) ジオデータベースが次の要件を満たしている必要があります。
メモ:
[既存データのみ登録] オプションを指定して [レプリカの作成 (Create Replica)] ジオプロセシング ツールを使用する前に、次のすべての要件が満たされている必要があります。ジオデータベースのレプリケーション要件は、データセット名が一致し、データセットが子ジオデータベースに接続しているユーザーによって所有されているという要件とともに、レプリカ作成プロセス中に行われる唯一の検証です。レプリカ作成前に他の要件が満たされていなかった場合は、レプリカの作成後、レプリカの同期でエラーが発生します。
- 選択したレプリケーション タイプに基づいて適用される追加のレプリケーション要件を含め、ジオデータベースのレプリケーション要件を満たしている必要があります。
- 子から親への一方向レプリカおよび双方向レプリカの場合、子レプリカのデータをバージョン対応登録する必要があります。
- 子ジオデータベースに接続しているユーザーによって所有されている必要があります。
- 親データベースのデータセットと、名前が一致している必要があります。
- 親データベースのデータセットと、スキーマ、ルール、リレーションシップ、およびプロパティが一致している必要があります。
- 親データベースのデータセットと、ジオメトリ タイプが一致している必要があります。
ヒント
[既存データのみ登録] オプションを使用するうえで参考になるヒントを、以下にいくつか紹介します。
- Global ID がレプリケーション タイプの要件である場合は、データを他のジオデータベースにコピーする前に、Global ID を必ずデータに追加する必要があります。ArcGIS 内の機能を使用してデータをコピーする場合は、コピーと貼り付け、または XML ワークスペースのエクスポートとインポートを使用します。
- レプリカを作成する場合、ターゲット ジオデータベースのデータの所有者として接続する必要があります。
- レプリカ作成プロセスで適用されるフィルターはすべて、相対ジオデータベースのデータにも適用されます。
制限事項
[既存データのみ登録] オプションを使用している場合は、次の制限に注意することが重要です。
- [レプリカの作成 (Create Replica)] ジオプロセシング ツールで [既存データのみ登録] オプションがオンになっている場合、子ジオデータベースで一致するデータセットを選択することはできません。そのため、このオプションを選択する前に、子ジオデータベースのデータセットが正しく構成されており、ジオデータベースのレプリケーション要件をすべて満たしていることを、手動で確認する必要があります。
- [既存データのみ登録] オプションの使用は、両方のジオデータベースでデータが一致していることが前提となります。したがってレプリカの作成時に、親レプリカと子レプリカでデータセットに違いがあった場合、その違いは同期されません。ターゲット ジオデータベースにレイヤーがない場合、[レプリカの作成 (Create Replica)] ジオプロセシング ツールは失敗し、エラー メッセージが返されます。
データの複製の例
次の保守作業指示の例は、データを複製する場合のデフォルト動作の一部を示しています。
保守担当者が住宅地域でいくつかの点検を行う準備をしています。編集作業の一部を現地で行うために、保守担当者はこの住宅地域を対象としている基盤の該当する部分を複製する必要があります。複製プロセスを開始するには、空間フィルターを使用して、点検対象地域の空間範囲を特定します (この場合、範囲は環境設定によって決まります)。
担当者の作業には、特定の材質で絶縁されているケーブルのみが必要です。これらのケーブルを特定するには、関連データセットにフィルター設定を適用します。
最後に、各保守担当者が 1 日に訪問できる世帯数は限られているので、土地区画番号に基づくフィルター設定により、1 つの住宅街区の世帯を特定します。これは、次のように選択セットとして表示されます。
選択されたフィーチャ、フィルター設定によって特定されたフィーチャ、および選択された空間範囲と交差するフィーチャが複製されます。これ以外にも、いくつかのフィーチャが含まれています。