ArcGIS Pro のデータ履歴管理では、エンタープライズ ジオデータベースの全データまたはデータのサブセットに対するフィーチャレベルの変更記録が保存されます。ジオデータベースの履歴管理は、履歴参照用にデータ変更を記録、管理、解析するためのメカニズムです。
過去のイベントについての質問への回答や経時的変化の追跡など、次のようなさまざまな理由で履歴管理を使用できます。
- 時間に制約のある履歴変更の検索に役立つ、長期間にわたる編集内容の保存。
- 例: 排水ネットワークなどのフィーチャが、都市の持続的成長に合わせて時間とともにどのように変化したか ?
- 法的な理由で編集履歴の記録を保持しなければならない、コンプライアンス遵守の目的。
- 例: 隣接する区画のゾーニングが、いつ農地から商業地に変更されたか ?
- サービスベースのオフライン編集ワークフローに対応します。
履歴管理が有効かどうかの判断
次の手順を行い、データセット プロパティにアクセスすることで、データセットの履歴管理が有効になっているかどうかを判断します。
- ArcGIS Pro を起動します。
- [カタログ] ウィンドウの [データベース] フォルダーで、ジオデータベース接続をクリックして内容を展開します。
- フィーチャクラスまたはテーブルを右クリックし、[プロパティ] を選択します。
履歴管理が有効な場合、[ソース] タブの [履歴管理] プロパティに日時が UTC (協定世界時) で表示され、[アーカイブ名] プロパティが設定されています。
注意:
履歴管理が有効になっていない場合、バージョン対応データまたはバージョン非対応データの履歴管理を有効化するには、[カタログ] ウィンドウで該当するデータセットを右クリックして [履歴管理の有効化] をクリックします。
編集内容の履歴管理
バージョン非対応のデータに対して履歴管理を有効化する場合、ジオデータベースはそのデータセットのベース テーブルに直接 3 つの属性フィールドを作成します。
注意:
ベース テーブルは、フィーチャクラスの核となるテーブルです。ベース テーブルには、すべての非空間属性が格納されます。SQL ジオメトリ タイプを使用している場合、空間属性も格納されます。データベース管理システムのユーザー インターフェイスを介してフィーチャクラスを確認すると、対応するベース テーブルが存在することが確認できます。ベース テーブルの新しい属性フィールドは次のとおりです。
- GDB_FROM_DATE - フィーチャが作成された正確な日時。
- GDB_TO_DATE - フィーチャが廃止された正確な日時。この GDB_TO_DATE フィールドの属性は、9999-12-31 の値にいつでも設定できます。この値は、オブジェクトの現在の状態です。
- GDB_ARCHIVE_OID - 複数の履歴管理レコードの状態を追跡するためのグローバル識別子。
ArcGIS Pro でバージョン非対応データを編集する場合は、各編集トランザクション (挿入、更新、または削除) が自動的にジオデータベースにコミットされるため、編集内容を保存する必要はありません。データセットへの編集がコミットされると、ジオデータベースは自動的にそれら 3 つの属性フィールドを更新し、経時的変化を記録した履歴レコードを保持します。
以下に、履歴管理が有効な場合、編集による修正内容がベース テーブルでどのように処理されるかについて、例を示します。
- 挿入 - ArcGIS Pro では、新しいフィーチャが Park_Amenities フィーチャクラスに追加されます。GDB_FROM_DATE フィールドは、フィーチャが作成された日時 (UTC) を記録しています。GDB_TO_DATE フィールドは、オブジェクトの現在の状態を意味する 9999-12-31 23:59:59.0000 を記録しています。
- 更新 - ArcGIS Pro で属性エディターを使用し、AmenityType フィールドを更新し、値を NULL から Restroom に変更します。この更新を実行した結果、ベース テーブルが次のように変更されます。
- 同じ OBJECTID 1 に新しい行が挿入され、GDB_FROM_DATE フィールドには履歴管理操作と同じタイム スタンプ、 GDB_TO_DATE フィールドには 12/31/9999、AmenityType フィールドには NULL から Restroom への更新が記録されます。
- 削除 - ArcGIS Pro で、Restroom 環境設備フィーチャを選択し、削除します。編集セッションでフィーチャが削除されると、ベース テーブルにその記録が保持され、ベース テーブルの関連行が更新されます。GDB_TO_DATE 属性の値には、フィーチャが廃止された履歴管理操作のタイム スタンプと同じ値が設定されます。
アーカイブ履歴の管理
ジオデータベースの履歴管理により、有効なクラスの編集トランザクションが保存されます。バージョン非対応の履歴管理の場合、履歴管理レコードは、現在のすべてのレコードと同じテーブルに格納されます。時間の経過とともに、特に大規模な編集が行われる環境では、バージョン非対応の履歴管理データセットは、すべての編集内容を蓄積した履歴として、サイズが大きくなる可能性があります。
一部またはすべての履歴レコードが不要または関連がない場合は、それらのレコードを削除することができます。あるいは、履歴レコードを削除することで、次のようなデータベース管理タスクを改善することができます。
- データ トランザクションの処理
- ファイル システム ストレージ
- テーブルおよびインデックス管理
- バックアップおよび復元操作
履歴レコードを削除する際のオプションとして、履歴管理の無効化がありますが、ベース テーブルの一部を保持するためのオプションはありません。履歴管理はサービスベースのオフライン編集ワークフローを必要とするので、履歴管理の無効化は必ずしも有効な解決策とはなりません。さらに、1 つのトランザクションで履歴管理を無効化し、そのテーブルが非常に大きい場合、データベース トランザクション ログは、適切なサイズで、エラー回避のために監視される必要があります。
別のオプションとして、[アーカイブ履歴の切り取り (Trim Archive History)] ジオプロセシング ツールの使用があります。このツールを使用すると、履歴管理を無効にして同期ワークフローを中断することなく、バージョン非対応の履歴管理データセットから、廃止された行を削除できます。
このツールの使用方法についての詳細は、「アーカイブ履歴の切り取り (Trim Archive History)」をご参照ください。