ブランチバージョニング
ArcGIS Pipeline Referencing (APR) はリリース時に従来のバージョニングジオデータベーストランザクションモデルに基づいていました。しかし、次世代のArcGISアプリケーションの一つとして、APRはArcGIS Enterprise 10.6.1およびArcGIS Pro 2.2でブランチバージョニングとの互換性を追加しました。以降のリリースでは、サービスベースの編集、Utility Network統合、競合防止などの新機能がブランチバージョニングを必要としています。パイプライン組織においては、ブランチバージョニングを用いたAPRが推奨される実装パターンです。
- ブランチバージョニングは、データの表示と編集にサービスベースのアーキテクチャを採用しています。これはフィーチャサービスを利用した長期的なデータベーストランザクションを可能にし、ArcGIS ServerのVersion Management serviceを活用しています。
- このジオデータベーストランザクションモデルでは、リレーショナルデータベースへの直接SQLアクセスはサポートされておらず推奨されません。
- データベースビューは従来のバージョニングやデータレベルの結合・統合により適しています。マルチバージョンビューがない場合、SQLによる更新・挿入・削除はブランチバージョニングされたフィーチャクラスには適用すべきではありません。これによりデータ破損やArcGISアプリケーション内で予期しない動作が発生する可能性があります。
- Create Database View ジオプロセシングツールはブランチバージョニングされたGDBを入力ワークスペースとして受け入れますが、このツール自体はブランチバージョン対応ではありません。
設計上の考慮事項
ユーザーはこの変化したサービスベースの環境に多くの利点を見出しています。しかし、レポート作成やデータベース統合インターフェイスなど基本的な業務プロセスは重要です。ソリューションアーキテクトやGISマネージャーはビジネスニーズを慎重に再評価し、新しい設計パターンを組み合わせて対応しています。詳細についてはUtility Network Journey: Branch Versioning and SQL(著者:@RobertKrisher)をご参照ください。
- REST API: ブランチバージョニングされたデータを照会するサポートされた方法はREST API経由です。例えばQuery (Feature Service/Layer)が適切かつ必要に応じて使用されます。RESTおよびArcGISクライアントには、ブランチバージョニングデータへのアクセス時にデータ整合性を確保するための特定メソッドが開発されています。
- Pythonスクリプティング: ArcGIS API for Pythonはブランチバージョン対応であり、スクリプトを使ってブランチバージョニングされたジオデータベースからレポート生成が可能です。これらのスクリプトは非稼働時間帯などにスケジュールジョブとして実行されることが多いです。
- 非バージョン公開ジオデータベース: 必要なデータセットはレポート作成やSQLビュー、統合などに使用できる非バージョン公開ジオデータベースへ複製可能です。ただし複製プロセスと二次ジオデータベースコピーの維持にはオーバーヘッドがあるため、レイヤー要件、複製頻度、差分変更、および全体的な費用対効果分析に基づいた慎重な設計が推奨されます。
- SQLビュー: ブランチバージョニングされたデータへの読み取り専用アクセスには追加のSQLロジックをビュー定義に使用できます。ドキュメントBranch Version SQL Viewsには以下のサンプルが示されています:
- マテリアライズドビューの作成とビューの更新
- レポーティングテーブルの作成とテーブルの更新
SQLビューオプションはレガシーデータベースレベル操作向けの二次的手段とみなされており、INSERT、UPDATE、およびDELETE機能は利用できません。サービスベースアーキテクチャにおいてはREST APIによるクエリが最善かつ推奨される方法です。
最後に一言(xkcdより)
