6.2 パターンを使用したデータの変換および分析
イベント・ストリームのビジュアルな表現は、選択するキー・フィールドに基づいて、様々なパターン・タイプを持ちます。パターンを使用すると、一般的なビジネス・シナリオに基づいてイベント・ストリームを簡単に探索できます。
使用可能なパターンにアクセスするには:
-
ホームページで、「パターン」をクリックします。
使用可能なすべてのパターンを表示するには:
-
「表示」パネルの下の「すべて表示」をクリックします。
特定のカテゴリのパターンを表示するには:
- 「表示」パネルでカテゴリ名をクリックします。選択したカテゴリのすべてのパターンが表示されます。
-
カテゴリ パターン エンリッチメント
外れ値
包含
欠落イベント
空間
フィルタ
状態
金融
形状ディテクタ
トレンド
機械学習
統計
変換
6.2.1 パターン・ステージの追加
パターンは、ビジネス・ロジックが組み込まれたOracle GoldenGate Stream Analyticsアプリケーションのテンプレートです。パイプライン内にパターン・ステージを作成できます。パターンはスタンドアロンのアーティファクトではなく、パイプライン内に埋め込む必要があります。
様々なタイプのパターンの詳細は、「パターンを使用したデータの変換および分析」を参照してください。
パターン・ステージを追加するには:6.2.2 欠落イベントの検出
「欠落イベントの検出」パターンを使用して、欠落イベントを検出します。たとえば、フィードに5秒ごとに測定値を送信する複数のセンサーがある場合、このパターンは測定値の送信を停止したセンサーを検出します。これは、センサーが破損しているか、切断されていることも示します。
このパターンを使用するには、次のパラメータに適切な値を指定します:
-
パーティション基準: パーティション基準とするフィールドを選択します。
たとえば、ストリームに複数のセンサーから出力されるイベントが含まれるとします。すべてのセンサーが同じデータを独自に送信します。あるセンサーの測定値をストリームの前のイベントではなく、同じセンサーの前の測定値と比較しようとしています。この値が別のセンターの値である可能性が高くなっています。センサーIDのような、センサーを一意に特定するフィールドを選択します。このフィールドはオプションです。たとえば、ストリームに1つのセンサーからの測定値のみが含まれる場合は、データをパーティション化する必要はありません。
-
ウィンドウ: 欠落イベントが検出される期間を入力します。最後のイベントの後、指定された時間間隔内にセンサーからのイベントがない場合、アラートがトリガーされます。
送信形状
送信形状と受信形状は同じです。ハートビートの欠落がない場合、イベントは出力されません。ハートビートの欠落がある場合、ハートビート間隔の計算に使用された前のイベントが出力されます。
6.2.3 分位値の計算
「分位」パターンを使用して分位関数の値を計算します。指定されたウィンドウ範囲内のすべてのデータのパーセンタイル値を返します。たとえば、データセットの25パーセンタイルとは、データ・ポイントの25%が25パーセンタイルから返される値を下回る値です。
このパターンを使用するには、次のパラメータに適切な値を指定します:
-
パーティション基準: パーティション基準とするフィールドを選択します。
-
監視可能なパラメータ: 分位を計算するパラメータとするフィールドを選択します。
-
ファイ分位: パーセンタイル値を選択して、選択したイベント・ストリームの分位を計算します。値には、1から99のみ指定できます。
-
ウィンドウ: 検討対象のデータ量を特定する範囲を選択します。
-
スライド: 新しく更新された出力をダウンストリームおよびブラウザにプッシュする頻度を選択します。
送信形状と受信形状は同じです。
6.2.4 2つの数値パターン間の相関の識別
「相関パターン」パターンを使用して、2つの数値パラメータ間の相関を識別します。出力は、2つのパラメータが正の相関(値1)にあるか、負の相関(-1)にあるか、または相関なし(値0)かを示します。
このパターンを使用するには、次のパラメータに適切な値を指定します:
-
パーティション基準: オブジェクトを一意に識別するフィールドを選択します(「センサーID」など)。
-
監視可能なパラメータ1: 相関対象の1つ目のフィールドを選択します。
-
監視可能なパラメータ2: 相関対象の2つ目のフィールドを選択します。
-
ウィンドウ: パラメータ1とパラメータ2との間の相関を特定する際にデータを保持する時間範囲を選択します。スライド値が指定されていない場合、デフォルトのスライド値が使用されます。スライド値がウィンドウ範囲と同じ場合、相関は時間ウィンドウの終わりに出力されます。スライド値がウィンドウ範囲より小さい場合は、より頻繁に出力されます。
-
スライド: データをリフレッシュする頻度を設定します。
送信形状と受信形状は同じです。
6.2.5 重複イベントの検出
「重複の検出」パターンでは、指定した基準に基づいて、指定した時間ウィンドウ内のストリームの重複イベントを検出します。イベントは、部分的または完全に一致していれば、重複するとみなされます。
たとえば、集計がオフセットされている疑いがある場合、ストリームで重複イベントを確認できます。
このパターンを使用するには、次のパラメータに適切な値を指定します:
-
重複基準: 比較するフィールドを選択します。構成されたすべてのフィールドの値が一致する場合、受信イベントは重複とみなされ、送信イベントが発生します。
-
ウィンドウ: 重複を検索する期間を選択します。
たとえば、ウィンドウを10秒に設定すると、最初のイベントの9秒後に到着した重複イベントは送信イベントをトリガーしますが、最初のイベントの11秒後に到着した重複イベントはトリガーしません。
送信形状
送信形状はフィールドNumber_of_Duplicates
が付加されている点を除いて受信形状と同じです。追加フィールドには発見された重複イベント数が設定されます。その他すべてのフィールドには最後の重複イベントの値が設定されます。
6.2.6 重複イベントの除去
「重複の除去」パターンを使用して、指定した時間ウィンドウ内のストリーム内の重複イベントを検索し、最初のイベント以外を削除します。重複イベントとは、1つ以上のフィールド値が別のイベント内の同じフィールドの値と同じであるイベントのことです。重複値かどうかを分析するフィールドを指定できます。このパターンは、1つのフィールドのみまたはイベント全部を比較するように構成できます。
たとえば、ストリームに集計(件数など)をオフセットする可能性のある重複が含まれていることがわかっている場合に使用します。
このパターンを使用するには、次のパラメータに適切な値を指定します:
-
重複基準: 比較するフィールドを選択します。構成されたすべてのフィールドの値が一致する場合、2番目、3番目および後続のイベントは削除されます。
-
ウィンドウ: 重複を破棄する期間を選択します。
たとえば、「ウィンドウ」に10秒を設定すると、最初のイベントから9秒経過後に重複イベントが発生した場合は破棄されますが、11秒経過後に発生した場合はそのまま受け入れられます。
送信形状と受信形状は同じです。
6.2.7 イベント値の変化の検出
「変化ディテクタ」パターンを使用してイベント・フィールドの値の変化を検索し、指定した範囲ウィンドウ内で変化が発生したら、その変化をレポートします。たとえば、field1
フィールドの値がvalue1
であるイベントが到着し、指定された範囲ウィンドウ内の後続の受信イベントのいずれかにvalue1
とは異なる値が含まれている場合、アラートがトリガーされます。変更を検出する複数のフィールドを指定できます。
たとえば、特定の期間一定であるはずのセンサー信号が変化した場合、問題を示している可能性があります。
このパターン・ステージのデフォルト構成では、選択したフィールドのいずれかが変更されると、アラートが生成されます。
このパターンを使用するには、次のパラメータに適切な値を指定します:
-
パーティション基準: パーティション基準を選択します。
たとえば、ストリームに複数のセンサーによって発出されたイベントが含まれるとします。すべてのセンサーが同じデータを独自に送信します。あるセンサーの測定値をストリームの前のイベントではなく、同じセンサーの前の測定値と比較しようとしています。この値が別のセンターの値である可能性が高くなっています。センサーIDのような、センサーを一意に特定するフィールドを選択します。このフィールドはオプションです。たとえば、ストリームに1つのセンサーからの測定値のみが含まれる場合は、データをパーティション化する必要はありません。
-
ウィンドウ範囲: 指定したフィールドの値に変化があったかどうかの比較を行う期間を選択します。
たとえば、ウィンドウ範囲を10秒に設定すると、観察フィールドが変更されたイベントが最初のイベントから10秒以内に発生するとアラートがトリガーされます。最初のイベントが発生するとクロックが開始されます。
-
変化基準: 比較するフィールドのリストを選択します。フィールドが変更されていない場合、アラートは生成されません。
-
グループ変化アラート: デフォルトのグループ変化サポートの場合、このオプションを選択します。
OFF
の場合は、少なくとも1フィールドの変更でアラートが発生します。ON
の場合は、すべてのフィールドの変更でアラートが発生します。
送信形状
送信形状は受信形状を基準にしていますが、最初のイベントの値と変更イベントの値を保持できるように、パーティション基準パラメータ以外のすべてのフィールドが2つ存在します。
例:
受信イベントには次のフィールドがあります。
-
sensor_id
-
temperature
-
pressure
-
location
通常は、sensor_idを使用してデータをパーティション化し、温度の変化を確認します。この場合はsensor_idをパーティション基準パラメータで、temperatureを変更基準パラメータで選択します。ユースケースに適合する範囲ウィンドウを使用します。このシナリオでは、次の送信形状を使用できます。
-
sensor_id
-
temperature
-
orig_temperature
-
pressure
-
orig_pressure
-
location
-
orig_location
orig_で始まるフィールドは最初のイベントの値を保持します。このシナリオでは、temperature
とorig_temperature
の値が異なりますが、pressureとorig_pressure
、location
とorig_location
の値は一致している可能性があります。
6.2.8 データ・フィールド値の変化の検出
「変動」パターンを使用して、イベント・データ・フィールド値が、特定の時間ウィンドウ内で特定の上方向または下方向への変化を示したことを検出します。たとえば、このパターンを使用して、油圧値の多様な変化が許容範囲内に保たれていることを特定します。
このパターンを使用するには、次のパラメータに適切な値を指定します:
-
パーティション基準: パーティション基準として使用されるフィールドを選択します。
-
トラッキング値: イベント・データを追跡し、ライブ出力ストリームにパターンを作成するフィールド値を選択します。
-
ウィンドウ: データをリフレッシュする頻度となるローリング期間を選択します。
-
偏差しきい値%: パターンに含める偏差のパーセンテージを選択します。これは、パイプラインが一致するパターンを検索する間隔です。
送信形状と受信形状は同じです。
6.2.9 イベントの順序のモニター
「Bが後に続くA」パターンを使用して、特定の順序で発生するイベントを検索し、指定されたイベントの順序が発生したときにイベントを出力します。
フロー内で特定の順序でイベントが発生しているか監視する必要がある場合にこれを使用します。たとえば、受注ステータスBOOKED
の次に(ステータスPAID
がなく)受注ステータスSHIPPED
が続いた場合に、アラートを発生させる必要があります。
このパターンを使用するには、次のパラメータに適切な値を指定します:
-
パーティション基準: パーティション基準として使用されるフィールドを選択します。前述の受注の例では、
order_id
になります。 -
状態A: フィールド: 2つのイベントの比較に値が使用される最初の状態フィールドを選択します。例では
order_status
です。 -
状態A: 値: 最初のフィールドの状態の値を選択します。例では
BOOKED
です。 -
状態B: フィールド: 2つのイベントの比較に値が使用される後続の状態フィールドを選択します。例ではこれも
order_status
です。 -
状態B: 値: 後続のフィールドの状態の値を選択します。例では
SHIPPED
です。 -
期間: 状態の変化を検索する期間を選択します。
送信形状
送信形状は受信形状を基準にしています。新しくabInterval
フィールドが追加され、状態間の間隔がナノ秒単位で設定されます。また、パーティション基準フィールド以外のすべてのフィールドがコピーされ、状態がAおよびBの際の両方の値を保持します。たとえば、受信形状が次のような場合を想定します。
-
order_id
-
order_status
-
order_revenue
送信形状は次のようになります。
-
order_id
-
abInterval
-
order_status
(ストリームのパーティション化の基準となる値) -
aState_order_status
(状態Aのorder_statusの値、例では'BOOKED') -
order_revenue
(状態Bのorder_revenueの値) -
aState_order_revenue
(状態Aのorder_revenueの値)
6.2.10 最大値イベントの出力
「上位N」パターンを使用して、指定した時間ウィンドウ内に到着したイベントのコレクションから、値が最も大きいN個のイベントを出力します。ここでのイベントは、デフォルトの到着順序ではなく、指定した順序でソートされます。
たとえば、圧力センサー信号の上位N個の値を取得する場合は、これを使用します。
このパターンを使用するには、次のパラメータに適切な値を指定します:
-
ウィンドウ範囲: イベントが収集され、順序付け基準に従って並べ替えられるローリング期間を選択します。
-
ウィンドウ・スライド: 新しく更新された出力をダウンストリームおよびブラウザにプッシュする頻度を選択します。
-
順序付け基準: 収集したイベントの並替えに使用するフィールドのリストを選択します。
-
イベント数: 出力する上位イベントの数を選択します。
送信形状と受信形状は同じです。
6.2.11 最小値イベントの出力
「下位N」パターンを使用して、指定した時間ウィンドウ内に到着したイベントのコレクションから、値が最も小さいN個のイベントを出力します。ここでのイベントは、指定した方法でソートされ、デフォルトの到着順序ではソートされません。
たとえば、圧力センサー信号の下位N個の値を取得する場合は、これを使用します。
このパターンを使用するには、次のパラメータに適切な値を指定します:
-
ウィンドウ範囲: イベントが収集され、順序付け基準に従って並べ替えられるローリング期間を選択します。
-
ウィンドウ・スライド: 新しく更新された出力をダウンストリームおよびブラウザにプッシュする頻度を選択します。
-
順序付け基準: 収集したイベントの並替えに使用するフィールドのリストを選択します。
-
イベント数: 出力する下位イベントの数を選択します。
送信形状と受信形状は同じです。
6.2.12 常に増加する数値のモニター
「上昇トレンド」パターンを使用して、一定期間中に常に増加する数値を検出します。
いずれかの数値が継続的に上昇している状況を検出する必要がある場合にこのパターンを使用します。たとえば、センサーの1つから継続的な圧力上昇を検出します。
このパターンを使用するには、次のパラメータに適切な値を指定します:
-
パーティション基準: パーティション基準として使用されるフィールドを選択します。
たとえば、ストリームに複数のセンサーから出力されるイベントが含まれるとします。すべてのセンサーが同じデータを独自に送信します。あるセンサーの測定値をストリームの前のイベントではなく、同じセンサーの前の測定値と比較しようとしています。この値が別のセンターの値である可能性が高くなっています。センサーIDのような、センサーを一意に特定するフィールドを選択します。このフィールドはオプションです。たとえば、ストリームに1つのセンサーからの測定値のみが含まれる場合は、データをパーティション化する必要はありません。
-
期間: 指定したフィールドの値が上昇トレンドかどうかを分析する範囲となる期間を選択します。
-
トラッキング値: 上昇トレンドかどうかを分析するフィールドを選択します。
送信形状
送信形状は受信形状をベースにしており、2つの新しいフィールドが追加されています。たとえば、受信イベントに次のフィールドが含まれているとします。
-
sensor_id
-
temperature
-
pressure
-
location
通常はsensor_id
をデータのパーティション化に使用してtemperatureの上昇トレンドを確認することが多いと思います。この場合はsensor_id
をパーティション基準パラメータで、temperatureをトラッキング値パラメータで選択します。ユースケースに適合する期間を使用します。このシナリオでは、次の送信形状を使用できます。
-
sensor_id
-
startValue
(これはトレンドを開始するtemperatureの値) -
endValue
(これはトレンドを終了するtemperatureの値) -
temperature
(最終イベントの値) -
pressure
(最終イベントの値) -
location
(最終イベントの値)
6.2.13 常に減少する数値のモニター
「下降トレンド」パターンを使用して、一定期間中に常に減少する数値を検出します。
たとえば、センサーの1つから継続的な圧力下降を検出します。
このパターンを使用するには、次のパラメータに適切な値を指定します:
-
パーティション基準: パーティション基準として使用されるフィールドを選択します。
たとえば、ストリームに複数のセンサーから出力されるイベントが含まれるとします。すべてのセンサーが同じデータを独自に送信します。あるセンサーの測定値をストリームの前のイベントではなく、同じセンサーの前の測定値と比較しようとしています。この値が別のセンターの値である可能性が高くなっています。センサーIDのような、センサーを一意に特定するフィールドを選択します。このフィールドはオプションです。たとえば、ストリームに1つのセンサーからの測定値のみが含まれる場合は、データをパーティション化する必要はありません。
-
期間: 指定したフィールドの値が下降トレンドかどうかを分析する期間を選択します。
-
トラッキング値: 下降トレンドかどうかを分析するフィールドを選択します。
送信形状
送信形状は受信形状をベースにしており、2つの新しいフィールドが追加されています。例を見てみましょう。受信イベントには次のフィールドがあります。
-
sensor_id
-
temperature
-
pressure
-
location
通常はsensor_id
をデータのパーティション化に使用してtemperatureの下降トレンドを確認することが多いと思います。この場合はsensor_id
をパーティション基準パラメータで、temperatureをトラッキング値パラメータで選択します。ユースケースに適合する期間を使用します。このシナリオでは、次の送信形状を使用できます。
-
sensor_id
-
startValue
(これはトレンドを開始するtemperatureの値) -
endValue
(これはトレンドを終了するtemperatureの値) -
temperature
(最終イベントの値) -
pressure
(最終イベントの値) -
location
(最終イベントの値)
パターンは、入力/選択したデータに基づいて、視覚的に表されます。
6.2.14 ある順序における最初の欠落イベントの特定
Aが先行しないBパターンでは、特定のイベント組合せでイベントがないことを検出し、2番目のイベントが先行しない最初のイベントを出力します。
フロー内で特定のイベントの前に別のイベントが発生していないことを監視する必要がある場合にこれを使用します。たとえば、受注ステータスBOOKED
の前、特定の期間内に受注ステータスPAID
が先行していない場合には、アラートを発生させる必要があります。
このパターンを使用するには、次のパラメータに適切な値を指定します:
-
パーティション基準: (オプション)ストリームのパーティション化の基準となるフィールド。前述の受注の例では、
order_id
になります。 -
状態A: フィールド: 初期状態のフィールドであり、値が2つのイベントの比較で使用されます。例では
order_status
です。 -
状態A: 値: 初期フィールドの状態の値。例では
BOOKED
です。 -
状態B: フィールド: 後続状態のフィールドであり、値が2つのイベントの比較で使用されます。例ではこれも
order_status
です。 -
状態B: 値: 後続のフィールドの状態の値。例では
PAID
です。 -
期間: 状態の変更を検索する期間。
送信形状
送信形状と受信形状は同じです。2番目(状態B)のイベントが指定した時間枠内に発生しない場合は、最初(状態A)のイベントが出力対象になります。
6.2.15 ある順序における2番目の欠落イベントの特定
「Bが後に続かないA」パターンでは、特定のイベント組合せにおいて2番目のイベントがないことを検出し、指定した期間内に必要な2番目のイベントが到着しない場合に、最初のイベントを出力します。
フロー内で特定のイベントが前のイベントに続いていないことを監視する必要がある場合にこれを使用します。たとえば、受注ステータスBOOKED
の後、特定の期間内に受注ステータスPAID
が続いていない場合、アラートを発生させる必要があります。
このパターンを使用するには、次のパラメータに適切な値を指定します:
-
パーティション基準: (オプション)ストリームのパーティション化の基準となるフィールド。前述の受注の例では、
order_id
になります。 -
状態A: フィールド: 初期状態のフィールドであり、値が2つのイベントの比較で使用されます。例では
order_status
です。 -
状態A: 値: 初期フィールドの状態の値。例では
BOOKED
です。 -
状態B: フィールド: 後続状態のフィールドであり、値が2つのイベントの比較で使用されます。例ではこれも
order_status
です。 -
状態B: 値: 後続のフィールドの状態の値。例では
SHIPPED
です。 -
期間: 状態の変更を検索する期間。
送信形状
送信形状と受信形状は同じです。2番目(状態B)のイベントが指定した時間枠内に発生しない場合は、最初(状態A)のイベントが出力対象になります。
6.2.16 ダブル・ボトム・チャートを使用したデータの分析
「W」パターンを使用して金融取引市場のテクニカル分析を行います。このパターンは、ダブル・ボトム・チャート・パターンとも呼ばれます。
このパターンを使用して、指定された時刻ウィンドウ内のいつ、イベント・データ・フィールド値が上昇および下降してWを描くかを検出します。たとえば、市場データ・フィードの株価の動きをモニタリングして買/売/ホールドの評価を決定する場合に、このパターンを使用します。
このパターンを使用するには、次のパラメータに適切な値を指定します:
-
パーティション基準: パーティション基準として使用されるフィールドを選択します。たとえばティッカ・シンボルです。
-
ウィンドウ: 指定したフィールドの値がW形状かどうかを分析する期間を選択します。
-
トラッキング値: W形状かどうかを分析するフィールドを選択します。
送信形状
送信形状は受信形状をベースにしており、5つの新しいフィールドが追加されています。新しいフィールドは次のとおりです。
-
firstW
-
firstValleyW
-
headW
-
secondValleyW
-
lastW
新しいフィールドはフィードで発見されたW形状のトラッキング値の終端の点に対応します。元のフィールドはWパターンの最終イベントに対応します。
6.2.17 ダブル・トップ・チャートを使用したデータの分析
「逆W」パターンを使用して金融取引市場のテクニカル分析を行い、金融データをグラフィカル形式で表示します。このパターンは、ダブル・トップ・チャート・パターンとも呼ばれます。
このパターンを使用するには、次のパラメータに適切な値を指定します:
-
パーティション基準: パーティション基準として使用されるフィールドを選択します。たとえばティッカ・シンボルです。
-
ウィンドウ: 指定したフィールドの値が逆W形状かどうかを分析する期間を選択します。
-
トラッキング値: 逆W形状かどうかを分析するフィールドを選択します。
送信形状
送信形状は受信形状をベースにしており、5つの新しいフィールドが追加されています。新しいフィールドは次のとおりです。
-
firstW
-
firstPeakW
-
headInverseW
-
secondpeakW
-
lastW
新しいフィールドはフィードで発見された逆W形状のトラッキング値の終端の点に対応します。元のフィールドは逆Wパターンの最終イベントに対応します。
6.2.18 現在のイベントと以前のイベントの相関付け
「現在および以前のイベント」パターンを使用して、現在のイベントと以前のイベントを自動的に相関付けます。
このパターンを使用するには、次のパラメータに適切な値を指定します:
- パーティション基準: パーティション基準に使用されるフィールドを選択します。
入力スキーマまたはペイロード形状[DiskID, Usage]
パーティション化されていない入力のこのパターンからの出力スキーマ/ペイロードは、[DiskID, Usage, PREV_DiskId, PREV_Usage]
です。
DiskIDによってパーティション化された入力の場合、パターンの出力スキーマは[DiskID, Usage, PREV_Usage]
です。
次の例で値を示します:
パーティション化されていない入力の場合:
入力 - [Disk1, 40gb], [Disk2, 60gb], [Disk1, 45gb]
出力 - [Disk2, 60gb, Disk1, 40gb], [Disk1, 45gb, Disk2, 60gb]
ディスクIDでパーティション化された入力の場合:
入力 - [Disk1, 40gb], [Disk2, 60gb], [Disk1, 45gb]
出力 - [Disk1, 45gb, 40gb]
。Disk2の別のイベントが到着するまで、Disk2の出力はありません。
6.2.19 ダウンストリーム・ノードへのイベント配信の遅延
「遅延イベント」パターンを使用して、パイプライン内のダウンストリーム・ノードへのイベントの配信を指定した秒数遅延させます。実際的なユース・ケースは、キャンペーン・イベントやプロモーションの選別です。
このパターンを使用するには、次のパラメータに適切な値を指定します:
-
遅延(秒): イベントの処理を遅延する期間を選択します。
6.2.20 ダウンストリーム・ノードへのコンテンツの出力
「行ウィンドウのスナップショット」パターンを使用して、ウィンドウが保持できるイベントの指定された最大数に基づいて、新しいイベントの到着時にウィンドウの内容全体をダウンストリーム・ノードに出力します。
- MLモデルをリアルタイムで再構築
- 時系列予測アルゴリズムで最後のX値を継続的に使用して、将来値を予測
このパターンを使用するには、次のパラメータに適切な値を指定します:
- ウィンドウに保持される行の最大数
- ウィンドウをパーティション化するためのキー・フィールド
- ウィンドウ内のイベントが期限切れになるまでの時間(秒)
[PARTITION BY StockSymbol, ROWS 500, RANGE 1 MINUTE]は、新規イベントの到着時にウィンドウの内容全体をダンプします。ウィンドウに保持されるイベントの最大数は500です。イベントは1分後に失効し、新しいイベントが可能になります。
パーティション化キーにより、キーの値ごとに個別のウィンドウが作成されます。たとえば、500個のOracle見積りイベント用と500個のMicrosoft見積りイベント用の個別ウィンドウなどです。
6.2.21 ダウンストリーム・ノードへの有効期限の切れていないコンテンツの出力
「時間ウィンドウのスナップショット」パターンを使用して、各イベントに指定された時間ウィンドウに基づいて、新しいイベントの到着時にウィンドウの内容全体をダウンストリーム・ノードに出力します。
このパターンを使用するには、次のパラメータに適切な値を指定します:
- ウィンドウ範囲(秒数)またはイベントが期限切れになるまでの期間(秒数)
- ウィンドウのスナップショット出力の頻度(秒数)
ノート:
ウィンドウは、新規イベントの到着時またはイベントの失効時に内容を自動的にダンプします。6.2.22 同一の形状を持つ2つのストリームのマージ
「和集合」パターンを使用して、同一の形状を持つ2つのストリームをマージします。
たとえば、2つの異なるストリームにデータを送信する2つの類似したセンサーがあり、それらのストリームを1つのパイプラインで同時に処理するとします。
このパターンを使用するには、次のパラメータに適切な値を指定します:
-
2つ目のイベント・ストリーム: プライマリ・ストリームにマージするストリームを選択します。形状が同じストリームを選択してください。
送信形状と受信形状は同じです。
6.2.23 フローとストリームおよび参照の結合
左の外部結合セマンティクスを使用してストリームまたは参照を結合するには、「左の外部結合」パターンを使用します。
このパターンの結果には、結合条件で右側の表に一致するデータが検出されていなくても、常に左側の表のデータが含まれます。
このパターンを使用するには、次のパラメータに適切な値を指定します:
-
エンリッチ参照/ストリーム: フローに結合するストリームまたは参照を選択します。
-
相関基準: ストリーム/参照を結合する基準となるフィールドを選択します。
-
プライマリ・ストリームのウィンドウ範囲: プライマリ・フローのイベントのコレクションをエンリッチ・ストリーム/参照と結合するローリング時間ウィンドウを選択します。
-
プライマリ・ストリームのウィンドウ・スライド: ダウンストリームおよびUIにデータをプッシュする頻度を選択します。
-
エンリッチ・ストリームのウィンドウ範囲: エンリッチ・ストリームのイベントのコレクションをプライマリ・フローと結合するローリング時間ウィンドウを選択します。参照が使用される場合は無効です。
-
エンリッチ・ストリームのウィンドウ・スライド: ダウンストリームおよびUIにデータをプッシュする頻度を選択します。参照が使用される場合は無効です。
送信形状は2つの受信形状の合計になります。
6.2.24 JSONへのイベントの変換
「ToJson」パターンを使用して、パイプラインのステージからのイベントをJSONテキストに変換します。
このパターンを使用して、複数のイベントを単一のJSON文書に変換し、OSAパイプライン・ターゲットを通じてダウンストリーム・システムに送信します。たとえば、toJsonパターン・ステージの後にデータベース・ターゲットを構成して、(単一または複数のイベントの) jsonペイロードをデータベース表に書き込むことができます
このパターンを使用するには、次のパラメータに適切な値を指定します:
- バッチ処理の有効化: 複数のイベントを単一のJSONドキュメントの配列として変換し、JSONテキストとして出力するには、このオプションを選択します。デフォルトでは、バッチ期間にパーティションのすべてのイベントを使用し、JSONドキュメントの配列に変換します。
- バッチ・サイズ: バッチに含めるイベント数を選択します。
サイズを0より大きい値(たとえばn)に構成すると、最大n個のイベントが単一のJSONドキュメントのJSON配列に変換され、JSONテキストとして出力されます。
サイズをデフォルトの0に設定すると、バッチ期間にパーティションのすべてのイベントが単一のJSONドキュメントの配列に変換され、JSONテキストとして出力されます。
- Jsonファイルのアップロード: フィールド・マッピングのJSONパスの推測に使用するサンプルJSONファイルをアップロードできます。
- フィールド・マッピング:
- JSONパス: アップロードされたJSONファイル内のすべてのパスをリストします。
- フィールド: 前のステージのすべてのフィールドをリストします。JSONパスをドロップダウン・リストのいずれかのフィールドにマップできます。
6.2.25 ステージの単一イベントの複数イベントへの変換
ステージの単一イベントを複数イベントに変換するには、分割パターンを使用して、値フィールドを分割します。たとえば、ソースのjson要素またはjsonオブジェクトの配列をフラット化して個別に処理し、複数のターゲットにプッシュすることも可能です。
このパターンの出力は、前のステージのそれぞれの単一イベントに対応した1つ以上のイベントになります。出力イベントは、ソース・イベントのクローンです。選択したフィールドの属性は、選択したタイプに基づいて配列に分割されます。配列の各値は、選択した属性の新しい値を持つ出力イベントに対応します。
このパターンを使用するには、次のパラメータに適切な値を指定します:
- 分割: 前のイベントのいずれかのフィールドを選択して分割します。
- タイプ: ドロップダウン・リストから、分割フィールドの値タイプを選択します。
- セパレータ: 区切りテキスト・タイプのテキスト・セパレータを設定します。デフォルトのセパレータはカンマです。
6.2.26 2つの連続イベントの単一イベントへのマージ
連続マージ・パターンを使用して、キー属性に基づいて複数の連続イベントを単一のイベントにマージします。
このパターンの出力は、前のステージの複数のマージ済イベントに対応する単一のイベントです。選択したフィールドの属性は、選択したタイプに基づいて配列にマージされます。配列の各値は、選択した属性の新しい値を持つ出力イベントに対応します。
このパターンを使用するには、次のパラメータに適切な値を指定します:
- キー・フィールド: 前のステージから1つ以上の属性を選択します。
- マージ済フィールド名: マージ済の出力フィールドの名前を入力します。
6.2.27 OMLモデルの適用によるイベントのスコアリングの取得(プレビュー機能)
OMLモデルを使用して収集されたイベントにスコアリングを適用するには、Oracle Machine Learningサービス・パターンを使用します。
このパターンを使用するには、次のパラメータに適切な値を指定します:
- OMLサーバーURL: リージョン内の機械学習モデルのAutonomous Data Warehouseが存在するOMLサービス・エンドポイントを入力します。
- テナント: OMLモデルをホストするテナントIDを入力します。
- OMLサービス名: OMLサービス名を指定します。
- ユーザー名: OMLサービスまたはADWデータベースのOMLユーザーのユーザー名。
- パスワード: OMLサービスまたはADWデータベースのOMLユーザーのパスワード。
- OMLモデル: 現在のステージに適用するOMLモデルを選択します。
- 入力フィールド: OMLモデルにマップする入力パラメータ・フィールドを選択します。
6.2.28 連続するイベントの検出
指定した期間にわたって、選択した属性の値が変わっていない連続したイベント(範囲/セグメント)を検出するには、セグメント・ディテクタ・パターンを使用します。
- 車両の速度が一定している範囲
- 電気器具の温度が安定している/変わらない範囲
- イベント・ストリーム: イベント・ストリームは、パターンが適用されるストリーム(前のステージ)です。
- 時間ウィンドウ: 時間ウィンドウでは、このパターンがセグメントを検出する期間を指定します。
- 一致基準: セグメントを検出する属性(基準)を入力します。
- パーティション基準: 出力をパーティション化する属性(基準)を入力します。
- グループ変更時にアラート: 監視可能パラメータが変更されたら必ず通知する場合に選択します。
セグメント・ディテクタ・パターンは、検出されたセグメント(範囲)の最初と最後のイベントの属性値を出力します。最初のイベントの各属性は、orig_という接頭辞が付いた形式で出力されますが、最後のイベント名の属性は前のステージのときと変わりません。
6.2.29 ピボット列の作成
選択したピボット値と指定したキーに基づいて、受信イベントのすべての属性または選択した属性を新しい列にピボットする場合は、ピボット・パターンを使用します。
- イベント・ストリーム: イベント・ストリームは、パターンが適用されるストリーム(前のステージ)です。
- 時間ウィンドウ: 時間ウィンドウでは、ピボット・キーのピボット値が記録される期間を指定します。
- ピボット値: ピボットする属性を選択します。
- ピボット・キー: 「ピボット値」で選択した属性の値を選択します(この値は、出力で新しい属性として表示されます)。
- パーティション基準: 出力をパーティション化する属性(基準)を入力します。
- ピボットされた列を保持: 選択すると、ピボットされた列(ピボット値)が出力に含まれます
- すべてのイベントの保持: 選択すると、前のステージのすべてのイベントが出力されます。