データの準備
まず、交通部門と観光部門間のデータ配布方法として、他のタイプのレプリカよりも一方向レプリカが最適なソリューションであることを確認します。 次に、データをダウンロードし、両部門のエンタープライズ ジオデータベースに接続して、交通データがレプリケーション向けに正しく構成されていることを確認します。
一方向レプリカにする理由
ジオデータベース レプリケーションは、複数の位置やジオデータベース間で空間データを管理し、分散する際に便利です。 ソース ジオデータベースのデータのレプリカ (コピー) を作成し、それらのレプリカをターゲット ジオデータベースに転送する手順を行います。 レプリカの利点の 1 つとして、ソース データと定期的に同期されることが挙げられます。 同期とは、ソース データに加えた変更がレプリカ データにも反映されることを意味し、頻繁に更新されるデータの管理にも便利です。
一方向、双方向、チェックアウト/チェックインの 3 種類のジオデータベース レプリケーションがあります。 どのタイプを使用するかは、データの格納方法、データの配布方法、データの編集要件によって異なります。
このチュートリアルでは、観光部門と交通部門間でのレプリカを取り上げます。 使用するレプリカのタイプは、一方向レプリカです。
観光部門と交通部門で使用するレプリケーションのタイプとして、一方向レプリカが最適である理由 ワークフローの次の側面を考慮に入れます。
- 両部門とも、エンタープライズ ジオデータベースにデータを格納しています。
- 交通部門は観光部門にデータを共有する必要があります。
- 観光部門がデータを変更する必要はありません。 Web マップにデータを公開できるよう、読み取りアクセスのみを必要とします。
- 交通部門がすべての編集と更新を管理します。 データを編集するのは 1 部門のみなので、手動編集で競合解決を行う必要はありません。
一方向レプリケーションでは、親ジオデータベースから子ジオデータベースへ一方向に送信されるデータを変更できます。 ここでデータを管理するのは親のみです。子はデータを読み取ることはできますが、編集はできません。 一方向レプリカでは、データが複数回更新された場合に、繰り返し同期を行うこともできます。
データのダウンロード
このワークフローでは一方向レプリケーションが最適であることがわかったので、このチュートリアルで使用されるデータを含む ArcGIS Pro プロジェクト パッケージをダウンロードして開きます。
注意:
このチュートリアルでは、各自のエンタープライズ ジオデータベースを使ってワークフローを実施します。 ArcGIS Server がインストールおよび認証されていること、Microsoft SQL Server (または別のサポートされているリレーショナル データベース管理システム) がインストールされていることを確認してください。 これらのコンポーネントのインストールに関する詳細については、「ArcGIS Enterprise の基本デプロイメント」ドキュメントと「はじめての ArcGIS Enterprise Builder」チュートリアルをお読みください。
- Tourism_and_Transportation プロジェクト パッケージをダウンロードします。
- コンピューター上で、ダウンロードしたファイルを選択します。
注意:
お使いの Web ブラウザーによっては、ダウンロードを開始する前に、ファイルの場所を選択するよう求めるメッセージが表示される場合があります。 ほとんどのブラウザーでは、デフォルトでコンピューターのダウンロード フォルダーがダウンロード先の場所になります。
- コンピューターに ArcGIS Pro がインストールされている場合は、[Tourism_and_Transportation.ppkx] をダブルクリックしてプロジェクトを開きます。 サイン インを求められたら、ライセンスが割り当てられた ArcGIS アカウントを使用してサイン インします。
注意:
ArcGIS Pro へのアクセス権限または組織アカウントがない場合は、ソフトウェア アクセスのオプションをご参照ください。
プロジェクトには、レプリケーションに参加する部門ごとに [Transportation] と [Tourism] の 2 つのマップがあります。 これらのマップはアルゼンチンのブエノス アイレスにズームしますが、ベースマップ以外のデータは含まれていません。
プロジェクトには、プロジェクト ジオデータベースのデータも含まれています。
- [カタログ] ウィンドウで [データベース] を展開し、[tourism_and_transportation.gdb] を展開します。
データベースには、[Public_Bicycles]、[Subway_Lines]、[Subway_Stations] の 3 つのフィーチャクラスが含まれています。 このチュートリアルでは、交通部門が管理するこれらのデータセットを観光部門のマップで使用します。
エンタープライズ ジオデータベースへの接続
現在、データはファイル ジオデータベースに格納されています。 一方向レプリケーションは親データベースがエンタープライズ ジオデータベースである場合のみ可能なので、このデータを移動する必要があります。
エンタープライズ ジオデータベースは ArcGIS Enterprise を使用します。 追加の機能とデータセット タイプが提供されるほか、データから公開されたフィーチャ サービスとの同期も行えます。
まず、交通部門で使用されるエンタープライズ ジオデータベースを作成するか、そこに接続します。 ファイル ジオデータベースのデータをコピーします。 次に、観光部門で使用されるエンタープライズ ジオデータベースを作成するか、そこに接続します。
- 必要であれば、SQL Server (またはサポートされている別のリレーショナル データベース管理システム) のインスタンスに、Transport_BA というエンタープライズ ジオデータベースを作成します。
注意:
エンタープライズ ジオデータベースがすでに存在する場合は、新規作成する代わりに使用できます。 新しいエンタープライズ ジオデータベースを作成する方法については、「不動産用エンタープライズ ジオデータベースのデプロイ」チュートリアルの「エンタープライズ ジオデータベースの作成」セクションをご参照ください。
次に、エンタープライズ ジオデータベースに接続します。
- [カタログ] ウィンドウで [データベース] を右クリックし、[新しいデータベース接続] を選択します。
[データベース接続] ウィンドウが表示されます。 エンタープライズ ジオデータベースに接続するために使用するパラメーターは、SQL Server またはリレーショナル データベース管理システム (RDBMS) インスタンスによって異なります。
- [データベース プラットフォーム] で、インスタンスで使用される RDBMS を選択します。 [インスタンス] で、RDBMS インスタンス名を入力します。
注意:
サンプル画像では、BASQL という SQL Server インスタンスを使用しています。実際のインスタンスは異なります。
- [認証タイプ] で、[データベース認証] を選択します。
- [ユーザー名] と [パスワード] に、エンタープライズ ジオデータベースのデータにアクセスし、データを読み込むことができるアカウントの認証情報を入力します。
注意:
サンプル画像では、ユーザー名は JUAN です。実際のユーザー名は異なります。
- [データベース] で、作成した [Transport_BA] エンタープライズ ジオデータベース (または、このチュートリアル用にアクセスして変更できる別のエンタープライズ ジオデータベース) を選択します。
- [OK] をクリックします。
エンタープライズ ジオデータベースが [カタログ] ウィンドウに追加されます。 デフォルトでは、データベース名はインスタンスと同じ名前になります (たとえば、サンプル データベースの名前は BASQL.sde です)。データベースの名前を、データベース名_データベース ユーザー.sde の形式になるよう変更します。
- [カタログ] ウィンドウで、エンタープライズ ジオデータベースを右クリックして [名前の変更] を選択します。 名前を「Transport_BA_[データベース ユーザー名].sde」に変更します。
注意:
サンプル画像では、ユーザー名は JUAN なので、エンタープライズ ジオデータベース名は Transport_BA_JUAN_sde になります。 実際のユーザー名は異なります。
次に、ファイル ジオデータベースのデータをエンタープライズ ジオデータベースにコピーします。
- [Public_Bicycles]、[Subway_Lines]、[Subway_Stations] の各フィーチャクラスを [tourism_and_transportation.gdb] から [Transport_BA.sde] にドラッグします。
ヒント:
Ctrl キーを押しながら各フィーチャクラスをクリックして 3 つすべてのフィーチャクラスを選択し、ドラッグすると 3 つをすべて一度にコピーできます。
- [Transport_BA.sde] を展開してコンテンツを表示します。
データがコピーされました。 コピーの先頭には、データの所有者名が付きます。 サンプル画像では、所有者は JUAN というアカウントです。実際のユーザー名は異なります。
- [tourism_and_transportation.gdb] を折りたたみます。
次に、観光部門で使用されるエンタープライズ ジオデータベースに接続します。 一方向レプリカの場合、子データベースがエンタープライズ ジオデータベースである必要はありません。 ただし、このシナリオでは、観光部門が Web マップを作成するために共有データを使用します。 エンタープライズ ジオデータベースを使用すると、そのデータから公開された Web フィーチャを同期することができます。 つまり、観光部門がデータ更新のたびに Web マップを常に自動的に更新したい場合には、エンタープライズ ジオデータベースを使用する必要があるのです。
- 必要であれば、SQL Server (またはサポートされている別のリレーショナル データベース管理システム) のインスタンスに、Tourism_BA というエンタープライズ ジオデータベースを作成します。
- [カタログ] ウィンドウで [データベース] を右クリックし、[新しいデータベース接続] を選択します。
- [データベース接続] ウィンドウで、作成した Tourism_BA ジオデータベース (またはこのチュートリアル用にアクセスでき、変更を加えることができる別のエンタープライズ ジオデータベース) に接続するために適切なパラメーターを設定します。
- [OK] をクリックします。
- 新しいデータベース接続の名前を「Tourism_BA_[データベース ユーザー名].sde」に変更します。
サンプル画像では、tourism データベースのユーザー名は EMMA です。実際の名前は異なります。
これで、2 つのエンタープライズ ジオデータベースに接続されました。 片方は交通部門が管理するエンタープライズ ジオデータベースで、交通データが格納されています。 もう 1 つは観光部門が管理するエンタープライズ ジオデータベースで、まだ何も格納されていません。
Global ID の有効化
次に、交通データのレプリケーションを準備します。 まず、データベース接続で、ブランチ バージョニングではなくトラディショナル バージョニングを使用していることを確認します。 レプリカには親データベースへのダイレクト コネクションが必要なので、ブランチ バージョニングではレプリケーションはサポートされていません。 次に、フィーチャクラスの Global ID を有効にします。 編集によってデータがバージョン対応になると、Global ID は同じデータの複数バージョンで行われた編集のマッピングに役立ちます。
- [カタログ] ウィンドウで [Transport_BA.sde] を右クリックし、[ジオデータベース コネクション プロパティ] を選択します。
- [ジオデータベース コネクション プロパティ] ウィンドウで [バージョニング タイプ] が [トラディショナル] に設定されていることを確認します。
- [ジオデータベース コネクション プロパティ] ウィンドウを閉じます。
次に、トラディショナル バージョニングを有効にし、3 つのフィーチャクラスのそれぞれに対して Global ID を有効にします。
- [カタログ] ウィンドウで [Public_Bicycles] を右クリックし、[管理] を選択します。
[フィーチャクラス プロパティ] ウィンドウが表示されます。
- [管理] タブで [バージョニング] をオンにして [トラディショナル] を選択します。 [Global IDs] チェックボックスをオンにします。
- [OK] をクリックします。
- [Subway_Lines] フィーチャクラスと [Subway_Stations] フィーチャクラスで [フィーチャクラス プロパティ] ウィンドウを開き、トラディショナル バージョニングと Global ID を有効にします。
これで、3 つすべてのフィーチャクラスでレプリケーションの準備が整いました。
- [クイック アクセス ツールバー] で、[保存] ボタンをクリックして、プロジェクトを保存します。
ここまでの手順では、交通部門と観光部門間でデータを配布するレプリケーション タイプとして、一方向レプリカが最適であることを確認しました。 また、チュートリアルで使用するエンタープライズ ジオデータベースに接続し、データベース接続とフィーチャクラスをレプリケーションに向けて準備しました。
一方向レプリカの作成
次に、transportation ジオデータベースと tourism ジオデータベース間で一方向レプリカを作成します。
レプリカの作成
レプリカを作成するには、ジオプロセシング ツールを実行します。
- [カタログ] ウィンドウで [Transport_BA.sde] を右クリックし、[分散ジオデータベース] をポイントして [レプリカの作成] を選択します。
[ジオプロセシング] ウィンドウが開き、[レプリカの作成] ツールが表示されます。 まず、複製されるデータセットを設定します。
- [レプリカ データセット] で [参照] ボタンをクリックします。
- [レプリカ データセット] ウィンドウの [プロジェクト] で [データベース] を展開します。 [Transport_BA.sde] をクリックします。
- Ctrl キーを押しながら [Public_Bicycles]、[Subway_Lines]、[Subway_Stations] をクリックして、3 つすべてを選択します。
- [OK] をクリックします。
データセットが [ジオプロセシング] ウィンドウのパラメーターに追加されます。
- [レプリカ タイプ] で [一方向レプリカ] を選択します。 [出力タイプ] が [ジオデータベース] に設定されていることを確認します。
次に、データが観光部門のデータベースに複製されていることを確認します。
- [複製したデータを格納するジオデータベース] で [参照] ボタンをクリックします。
- [複製したデータを格納するジオデータベース] ウィンドウの [プロジェクト] で [データベース] をクリックします。 [Tourism_BA.sde] を選択して [OK] をクリックします。
- [レプリカ名] に「Transportation_to_Tourism」と入力します。
- [実行] をクリックします。
ツールが実行され、レプリカが作成されます。
- [ジオプロセシング] ウィンドウを閉じます。
レプリカの探索
レプリカが作成されたので、次に、親データベースと子データベースの両方の観点からレプリカを調査します。
- [カタログ] ウィンドウで [Transport_BA.sde] を右クリックし、[分散ジオデータベース] をポイントして [レプリカの管理] を選択します。
[レプリカの管理] ウィンドウが表示されます。 ここには、先ほど作成した [Transportation_to_Tourism] レプリカがリストされます。
- [Transportation_to_Tourism] で、矢印をクリックしてレプリカを展開します。
レプリカに関する情報が表示されます。 所有者は、レプリカを作成したデータベース ユーザーです (サンプル画像では JUAN)。 情報には、データベースが親であるか子であるか、データの送信側であるか受信側であるかも含まれます。
- [レプリカの管理] ウィンドウを閉じます。
次に、データが子データベースに複製されたことを確認します。
- [カタログ] ウィンドウで、[Tourism_BA.sde] を右クリックして [更新] を選択します。
- [Tourism_BA.sde] を展開します。
3 つのフィーチャクラスが子データベースに正常に複製されました。
- [Tourism_BA.sde] を右クリックし、[分散ジオデータベース] にポイントして [レプリカの管理] を選択します。
- [レプリカの管理] ウィンドウで [Transportation_to_Tourism] レプリカを展開します。
tourism データベースからレプリカの情報にアクセスすると、ロールが子であることと、ステータスがデータ受信側 (データ送信側ではない) であることが表示されます。
- [レプリカの管理] ウィンドウを閉じます。 [Tourism_BA.sde] 接続を折りたたみます。
- プロジェクトを保存します。
これで、transportation ジオデータベースと tourism ジオデータベース間で一方向レプリカが作成されました。 データが正常に複製されたことを確認し、親と子の両方の観点からレプリカを調査し、データ フローを評価しました。 これで、データの編集の同期の準備ができました。
変更の同期
ここまでの手順で一方向レプリカを作成したので、次に、これを使用してデータの同期を行います。 ワークフローのこの部分では、交通部門が元のデータの編集を望んでいるものとします。 編集の実行後に変更を同期することで、観光部門のレプリカに編集が反映されるようにします。
データをマップに追加
交通部門は最近、市内の病院への便を向上させるために、地下鉄の路線の 1 つを延長しました。 あなたは、交通部門の GIS 専門家として、元の地下鉄データを編集してこれらの変更を反映させます。 まず、マップにデータを追加してシンボルを変更し、地下鉄の路線を区別します。
- [Transportation] マップがアクティブなマップであることを確認します。
- [カタログ] ウィンドウの [Transport_BA.sde] で、Ctrl キーを押しながら [Subway_Lines] と [Subway_Stations] をクリックして、これらを選択します。 選択したフィーチャクラスのどちらかを右クリックして [現在のマップに追加] を選択します。
両方のフィーチャクラスがマップに追加されます (デフォルトのシンボルはこの画像例とは異なる場合があります)。
次に、シンボル表示を変更します。 時間を節約するために、プロジェクト フォルダーにレイヤー ファイルが含まれています。 これらのファイルからシンボルをインポートします。
- [コンテンツ] ウィンドウで、[Subway Stations] が選択されていることを確認します。
- リボンの [フィーチャ レイヤー] タブをクリックします。 [描画] グループで、[インポート] をクリックします。
[シンボルのインポート] ウィンドウが表示されます。
- [入力レイヤー] で [Subway Stations] が選択されていることを確認します。 [シンボル レイヤー] で、[参照] ボタンをクリックします。
- [シンボル レイヤー] ウィンドウの [プロジェクト] で、[フォルダー]、[Tourism_and_Transportation]、[p30] を展開します。 [tourism_and_transportation1] をクリックします。
- [Subway_Station_Symbology.lyrx] をクリックして、[OK] をクリックします。
ファイルがツール パラメーターに追加されます。
- [OK] をクリックします。
シンボルが適用されます。 このプロセスを他のレイヤーに対して繰り返します。
- [コンテンツ] ウィンドウで、[Subway Lines] を選択します。 リボンの [フィーチャ レイヤー] タブで、[インポート] をクリックします。
- [シンボルのインポート] ウィンドウの [シンボル レイヤー] で、[Subway_Lines_Symbology.lyrx] を選択します (stations レイヤー ファイルと同じフォルダー内にあります)。 [OK] をクリックします。
マップ上では、駅と線路が両方ともシンボル化され、地下鉄の各路線が個別の色で表されています。
データの編集
まず、既存の地下鉄のライン フィーチャを新しいエンドポイントまで延長します。 次に、ラインの終点に地下鉄の別の駅を追加します。
変更は地下鉄の Line C に対して行います。この路線は市の東側を南北に走っています。 このチュートリアルの目的のため、対象のエリアにはブックマークがすでに用意されています。
- リボンの [マップ] タブをクリックします。 [ナビゲーション] グループで、[ブックマーク] をクリックして [Lima Street] を選択します。
マップに Lima Street が表示されます。ここでは市が Hospital Borda (ボルダ病院) の近くまで地下鉄の Line C を延長しています。
まず、病院まで延びた新しい地下鉄のライン フィーチャを作成します。
- リボンの [編集] タブをクリックします。 [フィーチャ] グループの [作成] をクリックします。
[フィーチャ作成] ウィンドウが表示されます。
- [フィーチャ作成] ウィンドウの [Subway Lines] で、[Linea C] フィーチャ テンプレートをクリックします。 [ライン] が選択されていることを確認します。
- [スナップ] グループで、[スナップ] ドロップダウン矢印をクリックします。 スナップがオンになっていて、[ポリラインまたはポリゴン フィーチャの最も近い頂点への最も近い頂点への頂点スナップ] が選択されていることを確認します。
- マップ上で、地下鉄の路線の端点をクリックします。
- 2 つ目の頂点として、最初の頂点のすぐ南にある Lima Street の端点をクリックします。
- マップの下部にある [完了] ボタンをクリックします。
新しい地下鉄のライン フィーチャが作成されます。 次に、延長した路線の地下鉄の駅を作成します。
- [フィーチャ作成] ウィンドウの [Subway Stations] で、[C] フィーチャ テンプレートをクリックして、[ポイント] が選択されていることを確認します。
- [アクティブなテンプレート ウィンドウを開き、作成しようとしているフィーチャの属性を指定します] ボタンをクリックします。
- 次の属性情報を入力します。
- [Estacion] に「Hospital Borda」と入力します。
- [Linea] では [C] が選択されていることを確認します。
- [Ascensor] に「0」と入力します。
- [Escalera] に「4」と入力します。
- [Adaptado] に「NO」と入力します。
- [Accesible] に「NO」と入力します。
- マップ上で、作成した新しい地下鉄ライン フィーチャの端点をクリックします。
駅が追加されます。
- マップの下部にある [完了] ボタンをクリックします。 [フィーチャ作成] ウィンドウを閉じます。
- リボンの [編集] タブの [選択] グループで、[選択解除] をクリックします。
- [編集の管理] グループにある [保存] をクリックします。
- [編集の保存] ウィンドウで [はい] をクリックします。
フィーチャクラスを編集して新しいデータを追加しました。
データの同期
次に、交通データに加えた変更を同期して、これらが観光部門のレプリカに表示されるようにします。
- [カタログ] ウィンドウで [Transport_BA.sde] を右クリックし、[分散ジオデータベース] をポイントして [変更の同期] を選択します。
[ジオプロセシング] ウィンドウが開き、[変更の同期] ツールが表示されます。 一方向レプリカの作成時に設定した詳細内容に基づいて、ツール パラメーターが自動的に入力されます。 ジオデータベース 1 は親ジオデータベースの [Transport_BA.sde] で、ジオデータベース 2 は子ジオデータベースの [Tourism_BA.sde] です。 方向はジオデータベース 1 からジオデータベース 2 で、データへの変更が親から子に送信されることを意味しています。
2 つのデータベース間の競合は、ジオデータベース 1 を優先して解決されるように設定されています。 一方向レプリカでは、編集できるジオデータベースは 1 つだけなので、手動による競合解決は行われません。 このチュートリアルでは、交通部門は編集を実行できますが観光部門はできません。このため、すべての競合が交通部門を優先して自動的に解決されます。
注意:
[競合解決ポリシー] パラメーターには、競合が自動的に解決されることを通知する警告が存在します。 この挙動は一方向レプリカで想定されるものなので、この警告は無視してかまいません。
- [実行] をクリックします。
ツールが実行されます。 完了すると、交通部門のデータに対する編集内容が観光部門のレプリカと同期されます。
- [ジオプロセシング] ウィンドウを閉じます。
観光部門のデータに変更内容が表示されることを確認します。
- [Tourism] マップをアクティブ化します。
このマップには [Transportation] マップのブエノスアイレスと同じビューが表示されます。 ただし、交通部門のデータがありません。
- [カタログ] ウィンドウで、[Tourism_BA.sde] を右クリックして [更新] を選択します。
- [Tourism_BA.sde] を展開します。 [Subway_Lines] フィーチャクラスと [Subway_Stations] フィーチャクラスを現在のマップに追加します。
- リボンの [マップ] タブをクリックします。 [ナビゲーション] グループで、[ブックマーク] をクリックして [Lima Street] を選択します。
マップに、新しいフィーチャを追加したエリアが表示されます。 新しいフィーチャがマップに表示されるので、変更が一方向レプリケーションを使用して観光部門のデータベースと正しく同期されたことを確認します。
- プロジェクトを保存します。
このチュートリアルでは、交通部門が観光部門にデータを共有する手順を実行しました。 そのワークフローに最適なジオデータベース レプリケーションのタイプとして、一方向レプリカを特定しました。 次に、2 つのエンタープライズ ジオデータベース間でレプリカを作成しました。 最後に、元のデータを編集して変更を同期し、観光部門のデータベースに編集内容が反映されるようにしました。 この一方向レプリカによって、観光部門が最新の交通データにアクセスできるようになり、それを Web フィーチャ レイヤーとして公開し、観光部門のパブリック Web マップで使用できるようになります。
このチュートリアルでは、一方向レプリカを使用して、交通部門と観光部門間でデータを配布する方法を取り上げました。 このシリーズの他のチュートリアルでは、文化部門と小売部門間で双方向レプリカとチェックアウト/チェックイン レプリカを使用してデータを配布する方法を取り上げています。
他のチュートリアルについては、チュートリアル ギャラリーをご覧ください。