フィーチャの更新出力コネクタは、処理済みイベント レコードから取得した属性を使用し、フィーチャ サービスのフィーチャ レイヤーを介してフィーチャ レコードを更新するために使用されます。 この出力では、イベント レコードの関連ジオイベント定義に TRACK_ID タグが付いた属性フィールドが必要です。正しいフィーチャ レコードを正常に識別し、更新するためには、このタグ付きフィールドから取得した値が、既存のフィーチャ レコードで指定された一意のフィーチャ識別子フィールドの値と完全に一致する必要があります。 イベント レコードに TRACK_ID とタグ付けされているフィールドがないか、タグ付けされたフィールドの値と既存のフィーチャ レコードを一致させられない場合は、新しいフィーチャ レコードがデフォルトで作成されます。 フィーチャ レコードを作成するデフォルトの処理を無効にするには、[更新のみ] パラメーターを [はい] に設定します。 この出力コネクタは、フィーチャ レイヤーのクエリを使用し、フィーチャ サービスを通じてフィーチャ レコードを更新します。 フィーチャ サービスは ArcGIS Server サイトに公開したもの、ArcGIS Enterprise ポータルでホストされているもの、または ArcGIS Online 組織でホストしているものを使用できます。
使用上の注意
フィーチャの更新出力コネクタを使用する際には、以下の点に注意してください。
- この出力コネクタを使用し、フィーチャ サービスのフィーチャ レコードを更新します。
- フィーチャ サービスで [作成] と [更新] 操作の両方が有効になっている必要があります。
- この出力コネクタは、JSON アウトバウンド アダプターとフィーチャ サービス アウトバウンド トランスポートを組み合わせます。
- この出力コネクタにルーティングされたイベント レコードは、アダプターによってフィーチャ JSON として再書式設定されます。
- このトランスポートは、書式設定された JSON を REST リクエストに組み込み、これをフィーチャ サービスに送信します。
- この出力コネクタのトラブルシューティング方法については、Esri Community のブログ記事「Debugging the Add a Feature / Update a Feature Output Connectors」をご参照ください。
- この出力コネクタでは、処理済みイベント レコードと既存のフィーチャ レコードとの間に 1 対 1 の関係が存在することを想定しています。 複数のフィーチャ レコードが存在し、その一意のフィーチャ識別子フィールドの値が処理済みイベント レコードの TRACK_ID タグが付いたフィールドの値と一致する場合は、フィーチャ レコードが一貫して更新されなかったり、不正に更新されたりする可能性があります。
- [ArcGIS Server の登録] は新しい出力の設定時に使用できるオプションであり、スタンドアロンの ArcGIS Server、ArcGIS Enterprise ホスティング サーバー、または ArcGIS Online 組織が使用しているホスティング サーバーへの接続を登録することができます。 この出力コネクタが使用するサービス フォルダー、フィーチャ サービス、フィーチャ レイヤーを選択するには、サーバー接続を ArcGIS GeoEvent Server に登録する必要があります。
- サービス レイヤーを参照するには、[レイヤーの参照] オプションを使用するか、[サービス レイヤー URL] または [レイヤー タイプへの参照] パラメーターで URL を指定します。 どちらのオプションを使用する場合でも、登録済みデータ ストアへの接続を先に確立する必要があります。
- [フィーチャ サービスの公開] オプションは新しい出力を設定するときに使用できる機能で、GeoEvent Manager からフィーチャ サービスを直接公開することができます。 これを使用するには既存のジオイベント定義が必要です。この定義のスキーマは、フィーチャ サービスのフィーチャ レイヤーで使用したいフィールドを反映しています。 エンタープライズ ジオデータベースによって課される制約事項 (予約語、属性フィールドの大文字化など) は、新規フィーチャ サービスを公開する際に、使用するジオイベント定義に反映する必要があります。 公開するフィーチャ サービスは、フィーチャ レコードを含まない、空のフィーチャ サービスです。GeoEvent Manager を使用し、処理中のリアルタイム イベント レコードのデータを使ってフィーチャ レコードの追加や更新を行います。 新しいフィーチャ サービスの公開先サーバーは ArcGIS Enterprise ホスティング サーバーか、管理されたジオデータベースを含むスタンドアロン ArcGIS Server のどちらかである必要があります。 GeoEvent Manager を使用して、新しいホスト フィーチャ サービスを ArcGIS Online 組織に公開することはできません。
- ジオデータベースのフィーチャ レコードの追加や更新を行うよう出力を設定する際は、[フラット JSON の生成] パラメーターのデフォルト値を変更してはなりません。 このパラメーターを無効にすると、出力はフィーチャ サービスに送信される属性値の階層構造を保持します。フィーチャ サービスはこれを拒否し、フィーチャ レコードは更新されません。
- [古いフィーチャを削除] パラメーターは、出力においてフィーチャ サービスのフィーチャ レイヤーを対象に定期的にクエリを実行し、指定時間 (分単位) を経過したフィーチャを確認して、特定されたフィーチャ レコードを削除する場合に有効にします。 あるいは、ジオデータベースから信頼性の高いデータを削除するのではなく、クライアント側フィルターを使用し、Web マップの表示から古いフィーチャ レコードの削除や非表示を行うこともご検討ください。 [古いフィーチャを削除] パラメーターが有効になっている場合、Last Updated や Last Edited など定期的に更新される日付/時間フィールドを指定します。 Date Created などの履歴フィールドや固定時間フィールドを使用する場合、必ずしも削除対象とは限らないフィーチャ レコードを誤って特定し、削除してしまうこともあります。
パラメーター
フィーチャの更新出力コネクタのパラメーターを次に示します。
パラメーター | 説明 |
---|---|
名前 | GeoEvent Manager で参照用として使用される出力コネクターの記述名。 |
登録済みのサーバー接続 | ArcGIS Server にデータ ストアとして登録された ArcGIS Enterprise、ArcGIS Online、または ArcGIS GeoEvent Server 接続。 登録済みのサーバー接続は、マップ サービス、フィーチャ サービス、フィーチャ レイヤーとそれらに含まれるレイヤー プロパティに関する情報をキャッシュします。 |
レイヤー タイプへの参照 | サービス レイヤーを参照する方法を指定します。
|
フォルダー (条件) | ArcGIS Server サービス フォルダー、ArcGIS Enterprise ポータル、または ArcGIS Online コンテンツ アイテム フォルダー。 このパラメーターは、[レイヤー タイプへの参照] が [レイヤーの参照] に設定されている場合に表示され、[サービス レイヤー URL] に設定されている場合は非表示になります。 |
サービス名 (条件) | 新しいフィーチャ レコードを追加する、または既存のフィーチャ レコードを更新するフィーチャ サービス名。フィーチャ レコードの追加や更新には、同一の一意のトラック ID を共有する、処理済みイベント データの値が使用されます。 このパラメーターは、[レイヤー タイプへの参照] パラメーターが [レイヤーの参照] に設定されている場合に表示され、[サービス レイヤー URL] に設定されている場合は非表示になります。 |
レイヤー (条件) |
新しいフィーチャ レコードを追加する、または既存のフィーチャ レコードを更新するフィーチャ サービス内のフィーチャ レイヤー名。フィーチャ レコードの追加や更新には、同一の一意のトラック ID を共有する、処理済みイベント データの値が使用されます。 このパラメーターは、[レイヤー タイプへの参照] パラメーターが [レイヤーの参照] に設定されている場合に表示され、[サービス レイヤー URL] に設定されている場合は非表示になります。 |
サービス レイヤー URL (条件) | サービス レイヤーへの URL。 このパラメーターは、[レイヤー タイプへの参照] が [サービス レイヤー URL] に設定されている場合に表示され、[レイヤーの参照] に設定されている場合は非表示になります。 |
一意のフィーチャ識別子フィールド | フィーチャ サービスのフィーチャ レイヤーで、センサーやトラッキング可能なアセットを一意に識別するフィールド。 更新するフィーチャ レコードを特定する場合、この出力コネクターは、[一意のフィーチャ識別子フィールド] の値が、TRACK_ID タグが付けられた処理済みイベント レコードのフィールドから取得された値と完全に一致するフィーチャ レコードを検索します。 イベント レコードに TRACK_ID タグが付いたフィールドがないか、タグ付きのフィールドの値が既存のフィーチャ レコードの [一意のフィーチャ識別子フィールド] 値に存在しない場合、デフォルトでは、新しいフィーチャ レコードが作成され、特定のトラック ID が付いた後続のイベント レコードを出力コネクターが受信した時点で、作成されたフィーチャが更新されます。 この出力コネクターでは、処理済みイベント レコードと既存のフィーチャ レコードとの間に 1 対 1 の関係が存在することを想定しています。 複数のフィーチャ レコードが存在し、その [一意のフィーチャ識別子フィールド] 値が処理済みイベント レコードでタグ付けされた TRACK_ID フィールドの値と一致する場合は、フィーチャ レコードが一貫して更新されないか、不正に更新される可能性があります。 |
更新間隔 (秒) | 出力が、処理済みイベント レコードのキャッシュを空にし、指定したフィーチャ サービスに新しいフィーチャ レコードの作成をリクエストする間隔 (秒)。 このパラメーターのデフォルトは [1] 秒です。つまり、処理済みイベント レコードのデータは毎秒キャッシュされ、空になります。これにより新しいフィーチャ レコードが作成され、イベント データが保存されます。 更新間隔を増やしてデータベース サーバーに対するトランザクション リクエストの回数を制限すると、イベント データが出力のキャッシュに保持される期間を延長することができます。 |
フラット JSON の生成 | 処理済みイベント レコードの階層を、出力のアダプターでどのように処理するかを指定します。 ArcGIS Server フィーチャ サービスは、配列やグループ、またはネストされた値で構成されたデータ値をサポートしません。 デフォルトでは、このようなデータ構造を 1 つの文字列値にキャストします。その属性名はグループ要素または配列要素名から取得します。これによって、フラットな JSON 文字列値を効果的に生成します。
注意:フィーチャの追加出力コネクターでは、階層の値を単純な文字列にキャストすることができますが、イベント レコードを出力にルーティングする前に、フィールド マッパー プロセッサを使用してイベント レコードの構造を明示的にフラット化することをおすすめします。 タイプが string、double、date、geometry など、分離した不連続の属性フィールドに対して明示的に値をマッピングすることで、データの整合性と、フィーチャ サービスが属性フィールド値に課す制限事項への準拠が可能になります。 |
フォーマット済 JSON | フィーチャ JSON 文字列を、空白インデントと改行のフォーマットで整形するかどうかを指定します。 この JSON は、テキスト エディターでコンテンツを確認するシステム ファイルに書き込む場合にのみ適しています。 デフォルトは [いいえ] です。
|
古いフィーチャを削除 | 出力コネクターが、フィーチャ サービスのフィーチャ レイヤーを対象に定期的にクエリーを実行し、指定時間 (分単位) を経過したフィーチャを確認して、特定されたフィーチャ レコードを削除するかどうかを指定します。 デフォルトは [いいえ] です。
|
フィーチャの最大期間 (分) (条件) | フィーチャ レコードが古いものとして判断されるまでの最大期間 (分単位) を指定します。 デフォルトは [1440] 分です。つまり、出力で古いフィーチャを削除するように構成されている場合、24 時間以上経過したフィーチャ レコードはフィーチャ サービスから削除されます。 注意:出力が処理済みのフィーチャ レコードを受信しなくても、古いフィーチャ レコードは削除されます。 古いレコードの識別と削除を行う定期的なクエリが、新規フィーチャ レコードの追加や作成と並行して実行されます。このパラメーターは、[古いフィーチャを削除] が [はい] に設定されている場合に表示され、[いいえ] に設定されている場合は非表示になります。 |
古いフィーチャを削除する頻度 (秒) (条件) | 古いフィーチャ レコードの検索を実行する頻度 (秒)。 デフォルトは [20] 秒です。つまり、日付/時間の値により、古くなったと判断されるフィーチャ レコードを毎分 3 回検索して確認します。 このパラメーターは、[古いフィーチャを削除] が [はい] に設定されている場合に表示され、[いいえ] に設定されている場合は非表示になります。 |
フィーチャクラス内の時間フィールド (条件) | 日付および時間の値を使用し、各フィーチャ レコードの期間を判断するために使用されるフィーチャ レイヤー属性フィールド。 実際には古くなっていないフィーチャ レコードが誤って削除されないよう、値が頻繁に更新される属性フィールドを使用する必要があります。 このパラメーターは、[古いフィーチャを削除] が [はい] に設定されている場合に表示され、[いいえ] に設定されている場合は非表示になります。 |
トランザクションあたりの最大フィーチャ | フィーチャ レコードを更新するために、1 件のフィーチャ サービス リクエストに含められる最大レコード数。 最大レコード数として指定されている以上のレコードが出力キャッシュに含まれる場合、出力キャッシュが空になるまで複数のリクエストが作成されます。 デフォルトは [500] です。 各イベント レコードのサイズや複雑さと、毎秒処理されるイベント レコード数のバランスをとることをおすすめします。 イベント レコードが非常に大きく、多くの属性フィールドを持つ、あるいはジオメトリー オブジェクトが大きく複雑である場合は、フィーチャ サービスの処理能力を超えたリクエストを送信しないよう、この値を小さくします。 ただし、毎秒処理されるイベント レコードの速度と量によっては、この値が低すぎると、トランザクション リクエストが膨大な数に及ぶことがあります。 |
Update のみ | イベント レコードに TRACK_ID とタグ付けされたフィールドがない、またはタグ付けされたフィールドの値が既存のフィーチャ レコードに一致しない場合に、出力コネクターがフィーチャ レコードを作成するかどうかを指定します。 デフォルトは [いいえ] です。
注意:[更新のみ] が [いいえ] に設定されている場合、フィーチャ サービスの create および update 操作の両方を有効にする必要があります。[更新のみ] が [はい] に設定されている場合、新しいフィーチャ レコードは作成されないので、フィーチャ サービスは update 操作だけを有効にする必要があります。 |