イベント結合プロセッサは、ジオイベント定義が異なる 2 つのイベント レコードから、共通するキーを使用してデータを結合するために使用します。 このプロセッサは、指定した各ジオイベント定義の属性フィールドを含む新しいジオイベント定義を作成します。 プロセッサが各ジオイベント定義のイベント レコードを受信すると、各イベント レコードから最新のデータをコピーし、マージされたイベントを新しいイベント レコードとして送信します。
例
イベント結合プロセッサの使用例を次に示します。
- ライブ気象データとライブ静止センサー データをリアルタイムで結合すると、センサーが配置されている環境の補助情報を提供できます。 これは、リアルタイムでセンサーを妨害する可能性のある洪水、風などの自然条件を監視するのに役立ちます。
- 2 つの異なるフィードから取得される 2 つの移動するアセット間をリアルタイムで結合した出力を使用して、追加のリアルタイム情報を取得することができます。 たとえば、1 つの新しいイベント レコードに含まれる、移動する各アセットの位置を使用して、アセット間の方位をリアルタイムで計算できます。 詳細については、「方位の計算プロセッサ」をご参照ください。
- インシデント ディテクター プロセッサから取得したイベント レコードは、元のソース入力とは異なるスキーマを持っています。 イベント結合プロセッサを使用すると、インシデント ディテクター プロセッサの処理済みイベント レコードを元のソース データと再結合して、両方のスキーマをリアルタイムに維持できます。
使用上の注意
イベント結合プロセッサを使用する際には、以下の点に注意してください。
- イベント結合プロセッサを構成するには、2 つのジオイベント定義を選択し、それぞれのスキーマから結合の実行に使用される値を持つフィールドを選択します。 プロセッサが各ジオイベント定義タイプのイベント レコードを受信すると、結合フィールドの一致する属性値 (またはキー) を使用して、新しいイベント レコードが作成されます。 新しいイベント レコードは、結合に使用された 2 つのジオイベント定義の結合スキーマを共有します。
- 結合の実行を待つ間、プロセッサは内部キャッシュを使用してイベント レコードを保持します。 プロセッサは、各ジオイベント定義タイプの一意の属性値ごとに 1 つのイベント レコードをキャッシュします。 プロセッサが前に観測された属性値を持つイベント レコードを受信した場合、古いイベント レコードが破棄されます。 このようにして、所定の属性値キーで受信した最新のイベント レコードのみが、2 つのイベント レコードの結合時に使用されます。
- フィールド エンリッチャー (フィーチャ サービス) プロセッサと同様に、イベント結合プロセッサのキャッシュ サイズは構成可能です。 受信およびキャッシュされたイベント レコードの数が、構成されたキャッシュ サイズを超える場合、新しいイベント レコードを格納するためにキャッシュ内の古いレコードは消去されます。
- プロセッサのキャッシュはメモリ内に保持されます。 イベント結合プロセッサを含むジオイベント サービスに対して変更が加えられた場合や、ArcGIS GeoEvent Server サービスが再起動した場合、キャッシュは再作成されます。 GeoEvent Manager でジオイベント サービスを停止および開始しても、キャッシュは再作成されません。
- イベント結合プロセッサを構成するとき、各ジオイベント定義からキャッシュされた最新のイベント レコードに対して、イベント結合の実行に使用した後の処理を指定する必要があります。 デフォルトでは、キャッシュされたイベント レコードは使用後に破棄され、プロセッサはその後の結合のために各タイプの新しいイベント レコードを受信するまで待機します。 ただし、キャッシュされたイベント レコードを結合後も保持し、いずれかのジオイベント定義タイプの新しいイベント レコードを受信したら新しい結合イベント レコードを生成するように、プロセッサを構成することもできます。
- ベスト プラクティスとして、イベント結合プロセッサの直後にフィールド マッパー プロセッサを使用して、スキーマの修正を行うようにしてください。 イベント結合プロセッサによって、出力ジオイベント定義のスキーマに必要な、次のような変更が加えられます。
- ソースのジオイベント定義名の前に、既存のフィールド名が付加されます。 たとえば、1 番目のジオイベント定義 A から取得された Altitude というフィールドは、出力ジオイベント定義では A_Altitude に名前が変更されます。 この処理は、結合に使用される各ソース ジオイベント定義で名前が重複する可能性があるフィールドを区別するために必要です。
- 既存のタグは、出力ジオイベント定義から削除されます。 [GEOMETRY] や [TRACK_ID] などの予約タグを、ジオイベント定義の複数のフィールドに適用することはできません。
- 各ソース ジオイベント定義のすべてのフィールドは、出力ジオイベント定義に含まれます。
- ベスト プラクティスとして、最大量の入力フィードで想定される一意のイベント レコード数より大きい値に [キャッシュ サイズ] パラメーターを設定してください。 イベント結合プロセッサは、イベントが最大数に達するとキャッシュを消去するため、キャッシュ サイズの値が低すぎる場合、結合に成功する前にレコードが消去される場合があります。 ただし、キャッシュ サイズの値を高く設定しすぎないように注意してください。イベント レコードはメモリに格納されるため、値を高く設定しすぎるとパフォーマンスに影響を与える場合があります。
パラメーター
イベント結合プロセッサのパラメーターを次に示します。
パラメーター | 説明 |
---|---|
Name |
GeoEvent Manager で参照用として使用されるプロセッサの記述名。 |
プロセッサ |
選択されたプロセッサを示します。 |
1 番目のジオイベント定義 | 1 番目のジオイベント定義の名前。 1 番目のジオイベント定義は、リアルタイム結合の 1 番目のイベント レコード セットのスキーマを識別するために使用されます。 1 番目のジオイベント定義に関連付けられたイベント レコードは、2 番目のジオイベント定義に関連付けられたイベント レコードに結合されます。 |
1 番目のジオイベント定義の結合フィールド | 2 番目のジオイベント定義から取得されるリアルタイム データとの結合を実行する際のキーとして値を使用する、1 番目のジオイベント定義から取得されるフィールドの名前。 各イベント レコードは、一致する値が [2 番目のジオイベント定義の結合フィールド] パラメーターの値に含まれるようになるまで、[1 番目のジオイベント定義の結合フィールド] パラメーターの値を使用してキャッシュされます。 有効な結合が実行されるまで、プロセッサは各キーの最新のイベント レコードのみをキャッシュします。 結合が実行される際、1 番目のジオイベント定義の結合フィールドの名前が 2 番目のジオイベント定義の結合フィールドと同じである必要はありません。 結合が成功するには、共通キーとして使用される各結合フィールドの値のみが同じであれば問題ありません。 |
2 番目のジオイベント定義 | 2 番目のジオイベント定義の名前。 2 番目のジオイベント定義は、リアルタイム結合の 2 番目のイベント レコード セットのスキーマを識別するために使用されます。 2 番目のジオイベント定義に関連付けられたイベント レコードは、1 番目のジオイベント定義に関連付けられたイベント レコードに結合されます。 |
2 番目のジオイベント定義の結合フィールド | 1 番目のジオイベント定義から取得されるリアルタイム データとの結合を実行する際のキーとして値を使用する、2 番目のジオイベント定義から取得されるフィールドの名前。 各イベント レコードは、一致する値が [1 番目のジオイベント定義の結合フィールド] パラメーターの値に含まれるようになるまで、[2 番目のジオイベント定義] パラメーターの値を使用してキャッシュされます。 有効な結合が実行されるまで、イベント結合プロセッサは各キーの最新のイベント レコードのみをキャッシュします。 結合が実行される際、2 番目のジオイベント定義の結合フィールドの名前が 1 番目のジオイベント定義の結合フィールドと同じである必要はありません。 結合が成功するには、共通キーとして使用される各結合フィールドの値のみが同じであれば問題ありません。 |
新しいジオイベント定義名 | プロセッサによって作成される、新しいジオイベント定義に割り当てられた名前。 新しいジオイベント定義では、1 番目および 2 番目のジオイベント定義のスキーマが結合されます。 注意:新しいジオイベント定義では、既存のフィールドの順序とデータ タイプは維持されますが、フィールド名は変更されます。 なお、各ソース ジオイベント定義から取得された既存のタグは、新しいジオイベント定義には引き継がれません。 詳細については、「使用上の注意」をご参照ください。 |
キャッシュ サイズ | キャッシュ内に保持するイベント レコードの最大数を指定します。 キャッシュされるイベント レコードの最大数は、各ジオイベント定義によって異なります。 たとえば、[キャッシュ サイズ] パラメーターが「2000」に設定されている場合、キャッシュには最初のジオイベント定義に対応する 2,000 件のイベント レコードと、2 番目のジオイベント定義に対応する 2,000 件のイベント レコードが格納されます。 イベント レコードは、1 番目および 2 番目のジオイベント定義の結合フィールドの値を使用してキャッシュされます。 デフォルトは [1000] です。 注意:キャッシュ サイズを超えると、キャッシュが消去されます。 |
結合後の削除 | 結合が成功した後、対応するイベント レコードを消去するかどうかを指定します。 デフォルトは [はい] です。
このパラメーターを [はい] または [いいえ] にすることで、イベント結合プロセッサのコア動作に影響を与える可能性があります。 [はい] に設定すると、プロセッサは一致するキー値を共有する最新のイベント レコードのみを結合します。 [いいえ] に設定すると、プロセッサはまったく異なる動作をします。 一貫して、最新のリアルタイム イベント レコードと、キャッシュされた古いイベント レコードの組み合わせを使用したイベント結合が行われるようになります。 |
検討事項および制限事項
イベント結合プロセッサを使用する際には、以下の点に注意してください。
- 同じジオイベント定義名を共有するイベント レコードを結合することはできません。 プロセッサは 1 番目および 2 番目のジオイベント定義の名前を使用して、イベント レコード セットごとに個別のキャッシュを構築します。 データが 2 つの異なるソース フィードから取得され、同じスキーマとジオイベント定義を共有している場合は、イベント レコードをプロセッサに渡す前に、ソース フィードの 1 つに異なる名前で重複したジオイベント定義を作成することを検討してください。
- イベント結合では、固定のジオイベント定義のみがサポートされています。 管理されたジオイベント定義はサポートされていません。