Skip To Content

フィーチャの更新

フィーチャの更新出力コネクタは、処理済みイベント レコードから取得した属性を使用し、フィーチャ サービスのフィーチャ レイヤーを介してフィーチャ レコードを更新するために使用されます。 この出力では、イベント レコードの関連ジオイベント定義に 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 ServerArcGIS Enterprise ホスティング サーバー、または ArcGIS Online 組織が使用しているホスティング サーバーへの接続を登録することができます。 この出力コネクタが使用するサービス フォルダー、フィーチャ サービス、フィーチャ レイヤーを選択するには、サーバー接続を ArcGIS GeoEvent Server に登録する必要があります。
  • サービス レイヤーを参照するには、[レイヤーの参照] オプションを使用するか、[サービス レイヤー URL] または [レイヤー タイプへの参照] パラメーターで URL を指定します。 どちらのオプションを使用する場合でも、登録済みデータ ストアへの接続を先に確立する必要があります。
  • [フィーチャ サービスの公開] オプションは新しい出力を設定するときに使用できる機能で、GeoEvent Manager からフィーチャ サービスを直接公開することができます。 これを使用するには既存のジオイベント定義が必要です。この定義のスキーマは、フィーチャ サービスのフィーチャ レイヤーで使用したいフィールドを反映しています。 エンタープライズ ジオデータベースによって課される制約事項 (予約語、属性フィールドの大文字化など) は、新規フィーチャ サービスを公開する際に、使用するジオイベント定義に反映する必要があります。 公開するフィーチャ サービスは、フィーチャ レコードを含まない、空のフィーチャ サービスです。GeoEvent Manager を使用し、処理中のリアルタイム イベント レコードのデータを使ってフィーチャ レコードの追加や更新を行います。 新しいフィーチャ サービスの公開先サーバーは ArcGIS Enterprise ホスティング サーバーか、管理されたジオデータベースを含むスタンドアロン ArcGIS Server のどちらかである必要があります。 GeoEvent Manager を使用して、新しいホスト フィーチャ サービスを ArcGIS Online 組織に公開することはできません。
  • ジオデータベースのフィーチャ レコードの追加や更新を行うよう出力を設定する際は、[フラット JSON の生成] パラメーターのデフォルト値を変更してはなりません。 このパラメーターを無効にすると、出力はフィーチャ サービスに送信される属性値の階層構造を保持します。フィーチャ サービスはこれを拒否し、フィーチャ レコードは更新されません。
  • [古いフィーチャを削除] パラメーターは、出力においてフィーチャ サービスのフィーチャ レイヤーを対象に定期的にクエリを実行し、指定時間 (分単位) を経過したフィーチャを確認して、特定されたフィーチャ レコードを削除する場合に有効にします。 あるいは、ジオデータベースから信頼性の高いデータを削除するのではなく、クライアント側フィルターを使用し、Web マップの表示から古いフィーチャ レコードの削除や非表示を行うこともご検討ください。 [古いフィーチャを削除] パラメーターが有効になっている場合、Last UpdatedLast Edited など定期的に更新される日付/時間フィールドを指定します。 Date Created などの履歴フィールドや固定時間フィールドを使用する場合、必ずしも削除対象とは限らないフィーチャ レコードを誤って特定し、削除してしまうこともあります。

パラメーター

フィーチャの更新出力コネクタのパラメーターを次に示します。

パラメーター説明

名前

GeoEvent Manager で参照用として使用される出力コネクタの記述名。

登録済みのサーバー接続

ArcGIS GeoEvent Server にデータ ストアとして登録された ArcGIS ServerArcGIS Enterprise、または ArcGIS Online 接続。 登録済みのサーバー接続は、マップ サービス、フィーチャ サービス、フィーチャ レイヤーとそれらに含まれるレイヤー プロパティに関する情報をキャッシュします。

レイヤー タイプへの参照

レイヤーを参照するときのオプションを定義します。

  • [レイヤーの参照] - 登録されているデータ ストアのフォルダーを参照することでサービス レイヤーを参照します。
  • [サービス レイヤー URL] - 共有されているサービス レイヤーの URL を指定することでサービス レイヤーを参照します。

フォルダー

(条件)

ArcGIS Server サービス フォルダー、ArcGIS Enterprise ポータル、または ArcGIS Online コンテンツ アイテム フォルダー。

このパラメーターは、[レイヤー タイプへの参照] パラメーターが [レイヤーの参照] に設定されている場合に表示され、[サービス レイヤー URL] に設定されている場合は非表示になります。

サービス名

(条件)

新しいフィーチャ レコードを追加する、または既存のフィーチャ レコードを更新するフィーチャ サービス名。フィーチャ レコードの追加や更新には、同一の一意のトラック ID を共有する、処理済みイベント データの値が使用されます。

このパラメーターは、[レイヤー タイプへの参照] パラメーターが [レイヤーの参照] に設定されている場合に表示され、[サービス レイヤー URL] に設定されている場合は非表示になります。

レイヤー

(条件)

新しいフィーチャ レコードを追加する、または既存のフィーチャ レコードを更新するフィーチャ サービス内のフィーチャ レイヤー名。フィーチャ レコードの追加や更新には、同一の一意のトラック ID を共有する、処理済みイベント データの値が使用されます。

このパラメーターは、[レイヤー タイプへの参照] パラメーターが [レイヤーの参照] に設定されている場合に表示され、[サービス レイヤー URL] に設定されている場合は非表示になります。

サービス レイヤー 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 は PJSON と呼ばれることもあり、通常は、テキスト エディターでコンテンツを確認するシステム ファイルに書き込む場合にのみ適しています。 デフォルトは [いいえ] です。

  • [はい] – フィーチャ JSON はフォーマット (整形) されます。
  • [いいえ] – フィーチャ JSON はフォーマットされません。

古いフィーチャを削除

出力コネクタが、フィーチャ サービスのフィーチャ レイヤーを対象に定期的にクエリを実行し、指定時間 (分単位) を経過したフィーチャを確認して、特定されたフィーチャ レコードを削除するかどうかを指定します。 デフォルトは [いいえ] です。

  • [はい] – 一定時間の経過後、古いフィーチャはフィーチャ サービスから定期的に削除されます。
  • [いいえ] – 古いフィーチャは定期的に削除されません。 フィーチャ レコードはフィーチャ サービスに蓄積されます。

フィーチャの最大期間 (分)

(条件)

フィーチャ レコードが古いものとして判断されるまでの最大期間 (分単位) を指定します。 デフォルトは [1440] 分です。つまり、出力で古いフィーチャを削除するように構成されている場合、24 時間以上経過したフィーチャ レコードはフィーチャ サービスから削除されます。

注意:
出力が処理済みのフィーチャ レコードを受信しなくても、古いフィーチャ レコードは削除されます。 古いレコードの識別と削除を行う定期的なクエリが、新規フィーチャ レコードの追加や作成と並行して実行されます。

このパラメーターは、[古いフィーチャを削除][はい] に設定されている場合に表示され、[いいえ] に設定されている場合は非表示になります。

古いフィーチャを削除する頻度 (秒)

(条件)

古いフィーチャ レコードの検索を実行する頻度 (秒) を指定します。 デフォルトは [20] 秒です。つまり、日付/時間の値により、古くなったと判断されるフィーチャ レコードを毎分 3 回検索して確認します。

このパラメーターは、[古いフィーチャを削除][はい] に設定されている場合に表示され、[いいえ] に設定されている場合は非表示になります。

フィーチャクラス内の時間フィールド

(条件)

日付/時間の値を使用し、各フィーチャ レコードの期間を判断するために使用されるフィーチャ レイヤー属性フィールド。 実際には古くなっていないフィーチャ レコードが誤って削除されないよう、選択する属性フィールドの値は頻繁に更新する必要があります。

このパラメーターは、[古いフィーチャを削除][はい] に設定されている場合に表示され、[いいえ] に設定されている場合は非表示になります。

トランザクションあたりの最大フィーチャ

フィーチャ レコードを更新するために、1 件のフィーチャ サービス リクエストに含められる最大レコード数。 最大レコード数として指定されている以上のレコードが出力キャッシュに含まれる場合、出力キャッシュが空になるまで複数のリクエストが作成されます。 デフォルトは [500] です。

各イベント レコードのサイズや複雑さと、毎秒処理されるイベント レコード数のバランスをとることをお勧めします。 イベント レコードが非常に大きく、多くの属性フィールドを持つ、あるいはジオメトリ オブジェクトが大きく複雑である場合は、フィーチャ サービスの処理能力を超えたリクエストを送信しないよう、この値を小さくします。 ただし、毎秒処理されるイベント レコードの速度と量によっては、この値が低すぎると、トランザクション リクエストが膨大な数に及ぶことがあります。

Update のみ

イベント レコードに TRACK_ID タグが付いたフィールドがないか、タグ付けされたフィールドの値が既存のフィーチャ レコードに一致しない場合に、出力コネクタがフィーチャ レコードを作成するかどうかを指定します。 デフォルトは [いいえ] です。

  • [はい] - [一意のフィーチャ識別子フィールド] 値が、処理済みイベント レコードの TRACK_ID タグ付きフィールドから取得した値と完全に一致するフィーチャ レコードが必要です。 一致するフィーチャ レコードは更新されますが、新しいフィーチャ レコードは作成されません。 一致するフィーチャ レコードのないイベント レコードは破棄されます。
  • [いいえ] - 処理済みイベント レコードに一致するフィーチャ レコードは更新されます。 一致するフィーチャ レコードが識別されない場合は、新しいフィーチャ レコードが作成されます。
注意:

[更新のみ][いいえ] に設定されている場合、フィーチャ サービスの [作成] および [更新] 操作の両方を有効にする必要があります。[更新のみ][はい] に設定されている場合、新しいフィーチャ レコードは作成されないので、フィーチャ サービスの更新操作だけを有効にします。


このトピックの内容
  1. 使用上の注意
  2. パラメーター