3 パターンの使用
パターンは、パイプライン内のステージの1つです。パターンを使用する場合、興味深い結果を得るには、いくつかのキー・フィールドを指定する必要があります。パイプライン内にパターン・ステージを作成できます。パターンはスタンドアロンのアーティファクトではなく、パイプライン内に埋め込む必要があります。
Oracle Stream Analyticsのパターンについて
このトピックは、Oracleユーザー管理サービスにのみ適用されます。
ホームページの「パターン」をクリックすると、使用可能なすべてのパターンが表示されます。左側のフィルタを使用して、異なるカテゴリのパターンを表示します。ユーザー・アシスタントのアイコンをクリックすることにより、パターンの詳細な説明が表示され、詳しい情報を知ることができます。追加情報を非表示にするには、再度クリックします。
パターンは、共通のビジネス・シナリオに基づくライブ出力ストリームの形式に結果を表示します。
注意:
特定のパターンのフィールドにデータを入力する際、入力するデータがフィールドのデータ型に一致していることを確認してください。入力されたデータとデータ型が一致しない場合、パターンはデプロイされず、エラーがスローされます。「表示」下の左側のパネルの「すべて表示」リンクを使用して、カテゴリに基づいてパターンを包含または除外できます。「すべて表示」をクリックすると、隣にチェックマークが表示され、すべてのパターンがページに表示されます。
いくつかの選択したパターンのみを表示するには、「すべて表示」の選択を解除し、個別にパターンを選択します。選択したパターンのみがカタログに表示されます。
次の表に、パターンのカテゴリを示します。
カテゴリ | パターン |
---|---|
エンリッチメント |
リバース・ジオコード: 近い 左の外部結合 |
外れ値 |
変動 |
包含 |
論理和 左の外部結合 |
不足イベント |
Bが後に続かないA 不足イベントの検出 |
空間 |
近接性: ジオ・フェンスを含むストリーム ジオ・フェンス 空間: 速度 相互作用: 単一のストリーム リバース・ジオコード: 近い ジオコード 空間: ポイントからポリゴン 相互作用: 2つのストリーム 近接性: 2つのストリーム 方向 リバース・ジオコード: 近場 近接性: 単一のストリーム ジオ・フィルタ |
フィルタ |
重複排除 変動 |
状態 |
Bが後に続かないA 逆W 不足イベントの検出 W Bが後に続くA Aが先行しないB |
会計 |
逆W W |
トレンド |
Bが後に続かないA 上位N 変更ディテクタ 上昇トレンド 不足イベントの検出 下降トレンド Bが後に続くA 重複の検出 下位N |
形状ディテクタ |
逆W W |
統計 |
相関 分位 |
空間: 速度パターンについて
このパターンを使用して、移動オブジェクトの選択済ウィンドウ範囲における出力平均速度を取得します。
たとえば、車の平均速度を分析する場合に使用します。
図create_spatial_speed_pattern.pngの説明
次のパラメータに適切な値を入力します。
-
緯度: 場所の緯度。適切な値を選択します。
-
経度: 場所の経度。適切な値を選択します。
-
オブジェクト・キー: オブジェクト・キーの適切な値を選択します。
-
座標系: デフォルト値は8307であり、この値のみがサポートされています。
-
ウィンドウ範囲: イベントの速度を計算する時間範囲。たとえば、
window range=5 seconds
、object keyがphone no.
の場合、直前の5秒間に受信された同じphone no.
のすべてのイベントが、そのイベントの平均速度計算に使用されます。
送信形状には受信フィールドに加えて「速度」が追加フィールドとして含まれます。これは数値フィールドですが、「速度」はメートル/秒
で測定されます。
ジオコード・パターンについて
データを分析する場合、状況によっては基準とする移動オブジェクトの地理的コードの取得が必要になります。
このパターンを使用して、住所の地理座標(緯度と経度など)を取得します。
システム設定でプロキシ詳細を設定しておいてください。
次のパラメータに適切な値を入力します。
-
名前 — 場所名として使用できる適切な値を選択します。これは必須パラメータです。
-
番地 — 番地として使用できる適切な値を選択します。これは必須パラメータです。
-
市区町村 — 市区町村名として使用できる適切な値を選択します。これは必須パラメータです。
-
地域 — 地域として使用できる適切な値を選択します。これは必須パラメータです。
-
国 — 国として適切な値を選択します。これは必須パラメータです。
-
郵便番号 — 郵便番号として適切な値を選択します。これは必須パラメータです。
送信形状には受信フィールドに加えて「緯度」および「経度」が追加フィールドとして含まれます。
相互作用: 単一のストリーム・パターンについて
このパターンを使用して、あるオブジェクトと同じストリーム内の他の各オブジェクトとの相互作用を取得します。
たとえば、一群の帆船がお互い近づきすぎていないかを確認できます。
図interaction_single_stream_pattern.pngの説明
次のパラメータに適切な値を入力します。
-
ジオメトリ:
SDO_GEOMETRY
データ型のフィールド。これらのフィールドには、SDO_GEOMETRY
データ型のフィールドのみを選択する必要があります。 -
オブジェクト・キー: ジオ・フェンス上のオブジェクトを一意に識別するために使用されるフィールドであり、サポートされている場所でのデータのパーティション化に使用されます。
-
座標系: デフォルト値は8307であり、この値のみがサポートされています。
送信形状には受信形状のフィールドにisInteract
とdistance
の2つのフィールドが追加されます。isInteract
がtrue
になるのは、2つの形状の間に相互作用がある場合、つまり2つのオブジェクトの一部が重複する場合です。2つのオブジェクトのdistance
は0
になります。重複がない場合、isInteract
はfalse
になり、distance
には2つのオブジェクトの距離が正の数値で示されます。
相互作用: 2つのストリーム・パターンについて
2つの形状は、形状の一部が重なっていれば、互いに相互作用すると言えます。2つの形状が相互作用する場合、両者の間の距離はゼロです。
このパターンを使用して、あるストリーム内のオブジェクトと別のストリーム内のオブジェクトとの相互作用を取得します。
図interaction_two_stream.pngの説明
次のパラメータに適切な値を入力します。
-
ジオメトリ: ジオメトリの適切な値を選択します。この値は必須です。
-
オブジェクト・キー: オブジェクト・キーの適切な値を選択します。この値は必須です。
-
イベント・ストリーム2: 第2イベント・ストリームを選択します。この値は必須です。
-
ジオメトリ: 第2ストリーム内のジオメトリの適切な値を選択します。この値は必須です。
-
オブジェクト・キー: 第2ストリーム内のオブジェクト・キーの適切な値を選択します。この値は必須です。
-
座標系: デフォルト値は8307であり、この値のみがサポートされています。
送信形状には受信形状のフィールドにisInteract
とdistance
の2つのフィールドが追加されます。isInteract
がtrue
になるのは、2つの形状の間に相互作用がある場合、つまり2つのオブジェクトの一部が重複する場合です。2つのオブジェクトのdistance
は0
になります。重複がない場合、isInteract
はfalse
になり、distance
には2つのオブジェクトの距離が正の数値で示されます。
空間: ポイントからポリゴン・パターンについて
このパターンを使用して、オブジェクトの地理上の座標、固定長および幅に基づいてオブジェクト形状を取得します。
たとえば、船団の長さと幅がわかっている場合、その位置座標を使用して船の形状を取得できます。座標は、船の移動に伴って変化します。
次のパラメータに適切な値を入力します。
-
緯度: 緯度として適切な値を選択します。これは必須パラメータです。
-
経度: 経度として適切な値を選択します。これは必須パラメータです。
-
オブジェクト・キー: オブジェクト・キーの適切な値を選択します。これは必須パラメータです。
-
長さ: ポリゴンの参照長さとして使用する適切なフィールドを選択します。
-
幅: ポリゴンの参照幅として使用する適切なフィールドを選択します。
-
座標系: デフォルト値は8307であり、この値のみがサポートされています。
-
バッファ: ジオメトリのバッファで使用する正の値を入力してください。
送信形状には、座標(latitude
、longitude
)およびディメンション(length
、width
)ベースで導出されたイベントの形状(SDO_Geometry
型のRectangle/Polygon
)が含まれます。
近接性: 単一ストリーム・パターンについて
このパターンを使用して、1つのストリーム内の異なるオブジェクト間の近接性を取得します。
たとえば、飛行機の編隊が飛んでおり、距離バッファが1000mだとします。2機の飛行機が1000m以内に接近した場合に、アラートを発生させることができます。
図proximity_single_stream.pngの説明
次のパラメータに適切な値を入力します。
-
緯度: 緯度として適切な値を選択します。これは必須パラメータです。
-
経度: 経度として適切な値を選択します。これは必須パラメータです。
-
オブジェクト・キー: オブジェクト・キーの適切な値を選択します。これは必須パラメータです。
-
座標系: デフォルト値は8307であり、この値のみがサポートされています。
-
距離バッファ: 距離バッファの近接値を入力します。これは、2つの点が一致しない場合でも同一の点とみなされる最大距離です。距離の適切な単位を選択します。値は10,000km未満である必要があります。
送信形状には距離が独立した列として表示されます。これは入力形状に加えて考慮対象となる2つのオブジェクトの距離です。
近接性: 2つのストリーム・パターンについて
このパターンを使用して、2つのストリームのオブジェクト間の近接性を取得します。
このパターン・ステージでは、距離バッファがフィルタとして働きます。たとえば、運転手と乗客のストリームがある場合、「1 kmの距離範囲内」というフィルタ基準を使用して、各乗客と運転手との近接性を取得できます。
次のパラメータに適切な値を入力します。
-
緯度: 緯度として適切な値を選択します。これは必須パラメータです。
-
経度: 経度として適切な値を選択します。これは必須パラメータです。
-
オブジェクト・キー: オブジェクト・キーの適切な値を選択します。この値は必須です。
-
イベント・ストリーム2: 第2イベント・ストリームを選択します。この値は必須です。
-
緯度: 第2ストリームの緯度として適切な値を選択します。これは必須パラメータです。
-
経度: 第2ストリームの経度として適切な値を選択します。これは必須パラメータです。
-
オブジェクト・キー: 第2ストリーム内のオブジェクト・キーの適切な値を選択します。これは必須パラメータです。
-
座標系: デフォルト値は8307であり、この値のみがサポートされています。
-
距離バッファ: 距離バッファの近接値を入力します。このフィールドは2つのオブジェクトのフィルタ基準としての役割を持ち、この距離内に存在しない(距離が選択した距離バッファよりも離れている)オブジェクトは結果セットから除外されます。値は10,000km未満である必要があります。
注意:
このパターンを持つパイプラインがキャッシュに対応したデータベースを参照する場合、パターンはライブ出力ストリームに出力を表示しません。送信形状には距離が独立した列として表示されます。これは入力形状に加えて考慮対象となる2つのオブジェクトの距離です。
近接性: ジオ・フェンスを含むストリーム・パターンについて
このパターンを使用して、あるオブジェクトと仮想境界(ジオ・フェンス)との近接性を取得します。
たとえば、カリフォルニアの都市にいくつかの店舗がある場合、顧客がそのいずれかの店舗から1000mの近接範囲に入ったらすぐに販促メッセージを送信できます。
図proximity_stream_geofence.pngの説明
次のパラメータに適切な値を入力します。
-
ジオ・フェンス: 分析するジオ・フェンスを選択します。
-
緯度: 緯度として適切な値を選択します。これは必須パラメータです。
-
経度: 経度として適切な値を選択します。これは必須パラメータです。
-
オブジェクト・キー: オブジェクト・キーの適切な値を選択します。これは必須パラメータです。
-
座標系: デフォルト値は8307であり、この値のみがサポートされています。
-
距離バッファ: 距離バッファの近接値を入力します。このフィールドはイベントのフィルタ基準としての役割を持ち、この距離内に存在しない(距離が選択した距離バッファよりも離れている)イベントは結果セットから除外されます。値は10,000km未満である必要があります。
送信形状には「距離」が独立した列として表示されます。これは入力形状に加えて考慮対象となるオブジェクトとジオ・フェンスの距離です。
「方向」パターンについて
このパターンを使用して、移動オブジェクトの方向を取得します。
たとえば、移動トラックの方向を評価できます。
次のパラメータに適切な値を入力します。
-
緯度: 緯度として適切な値を選択します。これは必須パラメータです。
-
経度: 経度として適切な値を選択します。これは必須パラメータです。
-
オブジェクト・キー: オブジェクト・キーの適切な値を選択します。これは必須パラメータです。
-
座標系: デフォルト値は8307であり、この値のみがサポートされています。
注意:
フィールドにはすでに受信ストリームで使用されている名前は使用しないでください。送信形状には受信形状に加えて「方向」が列として含まれます。型はString
です。
ジオ・フェンス・パターンについて
このパターンを使用して、ジオ・フェンスと呼ばれる仮想境界とオブジェクトの関係をトラッキングします。
関係は、ジオ・フェンスに入る
、出る
、留まる
、近い
のいずれかです。たとえば、オブジェクトがジオ・フェンスに入ったときにアラートをトリガーできます。また、地理的位置データを含むストリームを分析することもできます。これは、イベントがジオ・フェンス内のポリゴンにどのように関係しているかを判別するのに役立ちます。
地理的位置は次のいずれかです。
-
ジオ・フェンスに近い
-
ジオ・フェンスを出る
-
指定の時間ジオ・フェンス内に留まる
-
ジオ・フェンスに入る
次のパラメータに適切な値を入力します。
-
ジオ・フェンス
-
緯度
-
経度
-
オブジェクト・キー
-
トラッキング・イベント
-
近接
-
入る
-
出る
-
滞在
-
-
座標系
-
距離バッファ — このパラメータは近接オプションをトラッキング・イベントで選択した場合のみ有効になります。このフィールドはフィルタ結果のバッファとしての役割を持ちます。ジオ・フェンスから指定された距離内に存在するイベントまたはオブジェクトのみが、ステータス
近接
でイベント・テーブルに表示されます。値は10,000km未満である必要があります。 -
滞在期間 — このパラメータは滞在をトラッキング・イベントで選択した場合にのみ有効になります。滞在期間を指定でき、この期間がジオ・フェンス内のオブジェクトのフィルタとして機能します。オブジェクトが指定された期間よりも長く滞在する場合のみ対象となり、そうでない場合イベントは対象外となります。
送信形状には受信形状に加えて「ステータス」および場所名の2つの列が追加表示されます。「ステータス」の値はジオ・フェンスでのオブジェクトの動作によって、入る
、出る
、滞在
、または近接
のいずれかになります。場所名はステータスが評価されるジオ・フェンスの名前です。
ジオ・フィルタ・パターンについて
仮想境界内のオブジェクトをトラッキングする場合にこのパターンを使用します。
たとえば、ユーザーが異なる地理的位置間を移動する場合、指定したジオ・フェンス内にユーザーがいるときにユーザーに販促メッセージを送信できます。
次のパラメータに適切な値を入力します。
-
ジオ・フェンス — 分析対象の既存のジオ・フェンスのいずれかを選択します。これは必須フィールドです。
-
緯度 — 緯度として適切な値を選択します。これは必須パラメータです。
-
経度 — 経度として適切な値を選択します。これは必須パラメータです。
-
オブジェクト・キー — オブジェクト・キーとして適切な値を選択します。このフィールドはパーティション化基準として機能し、オブジェクトの一意識別にも使用されます。これは必須パラメータです。
-
座標系 — デフォルト値は8307であり、この値のみがサポートされています。
送信形状には、受信形状に加えて「ステータス」および場所名の2つの列が追加表示されます。オブジェクトがジオ・フェンス内にある場合、「ステータス」は「内部」
になり(そうでない場合イベントは対象外)、場所名はステータスが評価対象のジオ・フェンス名です。
リバース・ジオコード: 近いパターンについて
これを使用して、指定した地理上の座標に最も近い場所を取得します。
システム設定でプロキシ詳細を設定しておいてください。
次のパラメータに適切な値を入力します。
-
緯度 — 緯度として適切な値を選択します。これは必須パラメータです。
-
経度 — 経度として適切な値を選択します。これは必須パラメータです。
-
オブジェクト・キー — オブジェクト・キーとして適切な値を選択します。これは必須パラメータです。
-
座標系 — デフォルト値は8307であり、この値のみがサポートされています。
送信形状には受信形状に加えて場所名列が追加表示されます。この列が指定した経度および緯度に最も近い場所になります。
リバース・ジオコード: 近い場所パターンについて
このパターンを使用して、市、国、通りなどの詳細な情報によって、指定した緯度および経度に近い場所を取得します。
システム設定でプロキシ詳細を設定しておいてください。
図reverse_code_near_by_place.pngの説明
次のパラメータに適切な値を入力します。
-
緯度 — 緯度として適切な値を選択します。これは必須パラメータです。
-
経度 — 経度として適切な値を選択します。これは必須パラメータです。
-
オブジェクト・キー — オブジェクト・キーとして適切な値を選択します。これは必須パラメータです。
-
座標系 — デフォルト値は8307であり、この値のみがサポートされています。
送信形状には、座標(latitude
、longitude
)に関連する場所の追加列 - houseNumber
、street
、city
、region
、country
、およびpostal code
が表示されます。
相関パターンについて
2つの数値パラメータ間の相関を特定する必要がある場合にこのパターンを使用します。
次のパラメータに適切な値を入力します。
-
パーティション基準: パーティション化の基準となるフィールド。
-
監視可能なパラメータ1: 相関の特定に使用される最初の値。
-
監視可能なパラメータ2: 相関の特定に使用される2番目の値。
-
ウィンドウ: 相関が特定される期間となるローリング期間です。
-
スライド: データをリフレッシュする頻度。
送信形状と受信形状は同じです。
「分位」パターンについて
分位関数の値を計算する必要がある場合は、このパターンを使用します。
次のパラメータに適切な値を入力します。
-
パーティション基準: パーティション化の基準となるフィールド。
-
監視可能なパラメータ: 分位計算のために参照可能なパラメータ。
-
ファイ分位: この値は、選択されたイベント・ストリームの分位の計算に使用されます。
-
ウィンドウ: イベントが収集され分位が計算されるローリング期間。
-
スライド: 新しく更新された出力をダウンストリームおよびブラウザにプッシュする頻度。
送信形状と受信形状は同じです。
「標準偏差」パターンについて
このパターンを使用して、選択された値と期待値との標準偏差を計算します。
次のパラメータに適切な値を入力します。
-
パーティション基準: パーティション化の基準となるフィールド。
-
監視可能なパラメータ: 標準偏差の特定に使用される値。
-
ウィンドウ: 標準偏差が特定されるローリング期間。
-
スライド: データをリフレッシュする頻度。
送信形状と受信形状は同じです。
「中央値」パターンについて
このパターンを使用して、特定のパラメータに関するイベント・ストリームの中央値を計算します。
次のパラメータに適切な値を入力します。
-
パーティション基準: パーティション化の基準となるフィールド。
-
監視可能なパラメータ: 中央値計算のために参照可能なパラメータ。
-
ウィンドウ: イベントが収集され中央値が計算されるローリング期間。
-
スライド: 新しく更新された出力をダウンストリームおよびブラウザにプッシュする頻度。
送信形状と受信形状は同じです。
「重複の検出」パターンについて
「重複の検出」パターンでは、指定した基準に基づいて、指定した時間ウィンドウ内のストリームの重複イベントを検出します。イベントは、部分的または完全に一致していれば、重複するとみなされます。
このパターンを使用して、ストリームに含まれる重複イベントの数を把握します。たとえば、集計が相殺されている疑いがある場合、ストリームに重複がないか確認する必要があります。
次のパラメータに適切な値を入力します。
-
重複基準: 値をイベント間で比較して同一のものを探すフィールドのリスト。構成されたすべてのフィールドの値が一致する場合、受信イベントは重複とみなされ、送信イベントが発生します。
-
ウィンドウ: 重複が検索される期間。たとえば、「ウィンドウ」に10秒を設定すると、最初のイベントから9秒経過後に重複イベントが発生した場合は送信イベントがトリガーされますが、11秒経過後に発生した場合はトリガーされません。
送信形状
送信形状はフィールドNumber_of_Duplicates
が付加されている点を除いて受信形状と同じです。追加フィールドには発見された重複イベント数が設定されます。その他すべてのフィールドには最後の重複イベントの値が設定されます。
「変更ディテクタ」パターンについて
変更ディテクタのパターンを使用すると、イベント・フィールドの値の変更を検出し、指定した範囲ウィンドウ内で変更が発生したら、その変更をレポートできます。たとえば、フィールドfield1
の値がvalue1
であるイベントが到着したとします。指定した範囲ウィンドウ内で次のいずれかの受信イベントにvalue1
ではない値が含まれている場合、アラートがトリガーされます。変更を検出する複数のフィールドを指定できます。
通常は安定している値に変更がないか監視する必要がある場合にこれを使用します。たとえば、特定の期間一定であるはずのセンサー信号が変化した場合、問題を示している可能性があります。
このパターン・ステージのデフォルト構成では、選択したフィールドのいずれかが変更されると、アラートが生成されます。
図change_detector_pattern.pngの説明
次のパラメータに適切な値を入力します。
-
パーティション基準: ストリームのパーティション化の基準となるフィールド。たとえば、ストリームに複数のセンサーから出力されるイベントが含まれるとします。すべてのセンサーが同じデータを独自に送信します。あるセンサーの測定値をストリームの前のイベントではなく、同じセンサーの前の測定値と比較しようとしています。この値が別のセンターの値である可能性が高くなっています。センサーIDのような、センサーを一意に特定するフィールドを選択します。このフィールドはオプションです。たとえば、ストリームに1つのセンサーからの測定値のみが含まれる場合は、データをパーティション化する必要はありません。
-
ウィンドウ範囲: 指定したフィールドの値が変更されているかどうかの比較を行う期間。たとえば、ウィンドウ範囲を10秒に設定すると、観察フィールドが変更されたイベントが最初のイベントから10秒以内に発生するとアラートがトリガーされます。最初のイベントが発生するとクロックが開始されます。
-
変更基準: 値をイベント間で比較して変更箇所を探すフィールドのリスト。フィールドが変更されていない場合、アラートは生成されません。
-
グループ変更アラート: このパラメータはグループ変更のデフォルトをサポートします。
OFF
の場合は、少なくとも1フィールドの変更でアラートが発生します。ON
の場合は、すべてのフィールドの変更でアラートが発生します。
送信形状
送信形状は受信形状を基準にしていますが、最初のイベントの値と変更イベントの値を保持できるように、パーティション基準パラメータ以外のすべてのフィールドが2つ存在します。例を見てみましょう。受信イベントには次のフィールドがあります。
-
sensor_id
-
temperature
-
pressure
-
location
通常はsensor_idをデータのパーティション化に使用してtemperatureの変更を確認することが多いと思います。この場合はsensor_idをパーティション基準パラメータで、temperatureを変更基準パラメータで選択します。ユースケースに適合する範囲ウィンドウを使用します。このシナリオでは、次の送信形状を使用できます。
-
sensor_id
-
temperature
-
orig_temperature
-
pressure
-
orig_pressure
-
location
-
orig_location
orig_で始まるフィールドは最初のイベントの値を保持します。このシナリオでは、temperature
とorig_temperature
の値が異なりますが、pressureとorig_pressure
、location
とorig_location
の値は一致している可能性があります。
「W」パターンについて
「W」パターンは、ダブル・ボトム・チャート・パターンとも呼ばれ、金融取引市場の技術的分析で使用されます。
このパターンを使用して、指定された時刻ウィンドウ内のいつ、イベント・データ・フィールド値が上昇および下降してWを描くかを検出します。たとえば、市場データ・フィードの株価の動きをモニタリングして買/売/ホールドの評価を決定する場合に、このパターンを使用します。
次のパラメータに適切な値を入力します。
-
パーティション基準: ストリームのパーティション化の基準となるフィールド。たとえばティッカ・シンボルです。
-
ウィンドウ: 指定したフィールドの値がW形状を描くかどうかを分析する期間。
-
トラッキング値: 値がW形状を描くかどうかを分析するフィールド。
送信形状
送信形状は受信形状をベースにしており、5つの新しいフィールドが追加されています。新しいフィールドは次のとおりです。
-
firstW
-
firstValleyW
-
headW
-
secondValleyW
-
lastW
新しいフィールドはフィードで発見されたW形状のトラッキング値の終端の点に対応します。元のフィールドはWパターンの最終イベントに対応します。
「Bが後に続くA」パターンについて
「Bが後に続くA」パターンでは、特定のイベントを順番に検索し、指定したイベント・シーケンスが発生したときにイベントを出力します。
フロー内で特定の順序でイベントが発生しているか監視する必要がある場合にこれを使用します。たとえば、受注ステータスBOOKED
の次に(ステータスPAID
がなく)受注ステータスSHIPPED
が続いた場合に、アラートを発生させる必要があります。
図a_followed_by_b_pattern.pngの説明
次のパラメータに適切な値を入力します。
-
パーティション基準: (オプション)ストリームのパーティション化の基準となるフィールド。前述の受注の例では、
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の値)
「上位N」パターンについて
「上位N」パターンでは、指定した時間ウィンドウ内で到着したイベントの集合から、最も値が大きいN件のイベントを、デフォルトの到着順序ではなく指定した順序でソートして出力します。
これを使用して、指定した時間ウィンドウ内のストリームに含まれるフィールドの最大値を取得します。たとえば、圧力センサー信号の上位N個の値を取得する場合は、これを使用します。
次のパラメータに適切な値を入力します。
-
ウィンドウ範囲: イベントが収集され順序付け基準に従って並べ替えられるローリング期間。
-
ウィンドウ・スライド: 新しく更新された出力をダウンストリームおよびブラウザにプッシュする頻度。
-
順序付け基準: 収集したイベントの並替えに使用されるフィールドのリスト。
-
イベント数: 出力する上位イベント数。
送信形状と受信形状は同じです。
「下位N」パターンについて
「下位N」パターンでは、指定した時間ウィンドウ内で到着したイベントの集合から、最も値が小さいN件のイベントを、デフォルトの到着順序ではなく指定した順序でソートして出力します。
これを使用して、指定した時間ウィンドウ内のストリームに含まれるフィールドの最小値を取得します。たとえば、圧力センサー信号の下位N個の値を取得する場合は、これを使用します。
次のパラメータに適切な値を入力します。
-
ウィンドウ範囲: イベントが収集され順序付け基準に従って並べ替えられるローリング期間。
-
ウィンドウ・スライド: 新しく更新された出力をダウンストリームおよびブラウザにプッシュする頻度。
-
順序付け基準: 収集したイベントの並替えに使用されるフィールドのリスト。
-
イベント数: 出力する下位イベント数。
送信形状と受信形状は同じです。
「上昇トレンド」パターンについて
「上昇トレンド」パターンでは、一定期間中、継続的に数値が上昇している状況を検出します。
いずれかの数値が継続的に上昇している状況を検出する必要がある場合にこのパターンを使用します。たとえば、センサーの1つから継続的な圧力上昇を検出します。
次のパラメータに適切な値を入力します。
-
パーティション基準: ストリームのパーティション化の基準となるフィールド。たとえば、ストリームに複数のセンサーから出力されるイベントが含まれるとします。すべてのセンサーが同じデータを独自に送信します。あるセンサーの測定値をストリームの前のイベントではなく、同じセンサーの前の測定値と比較しようとしています。この値が別のセンターの値である可能性が高くなっています。センサーIDのような、センサーを一意に特定するフィールドを選択します。このフィールドはオプションです。たとえば、ストリームに1つのセンサーからの測定値のみが含まれる場合は、データをパーティション化する必要はありません。
-
期間: 指定したフィールドの値が上昇トレンドかどうかを分析する範囲となる期間。
-
トラッキング値: 値が上昇トレンドかどうかを分析するフィールド。
送信形状
送信形状は受信形状をベースにしており、2つの新しいフィールドが追加されています。たとえば、受信イベントに次のフィールドが含まれているとします。
-
sensor_id
-
temperature
-
pressure
-
location
通常はsensor_id
をデータのパーティション化に使用してtemperatureの上昇トレンドを確認することが多いと思います。この場合はsensor_id
をパーティション基準パラメータで、temperatureをトラッキング値パラメータで選択します。ユースケースに適合する期間を使用します。このシナリオでは、次の送信形状を使用できます。
-
sensor_id
-
startValue
(これはトレンドを開始するtemperatureの値) -
endValue
(これはトレンドを終了するtemperatureの値) -
temperature
(最終イベントの値) -
pressure
(最終イベントの値) -
location
(最終イベントの値)
「Bが後に続かないA」パターンについて
「Bが後に続かないA」パターンでは、特定のイベント組合せにおいて2番目のイベントがないことを検出し、指定した期間内に必要な2番目のイベントが到着しない場合に、最初のイベントを出力します。
フロー内で特定のイベントが前のイベントに続いていないことを監視する必要がある場合にこれを使用します。たとえば、受注ステータスBOOKED
の後、特定の期間内に受注ステータスPAID
が続いていない場合、アラートを発生させる必要があります。
図a_not_followed_by_b_pattern.pngの説明
次のパラメータに適切な値を入力します。
-
パーティション基準: (オプション)ストリームのパーティション化の基準となるフィールド。前述の受注の例では、
order_id
になります。 -
状態A: フィールド: 初期状態のフィールドであり、値が2つのイベントの比較で使用されます。例では
order_status
です。 -
状態A: 値: 初期フィールドの状態の値。例では
BOOKED
です。 -
状態B: フィールド: 後続状態のフィールドであり、値が2つのイベントの比較で使用されます。例ではこれも
order_status
です。 -
状態B: 値: 後続のフィールドの状態の値。例では
SHIPPED
です。 -
期間: 状態の変更を検索する期間。
送信形状
送信形状と受信形状は同じです。2番目(状態B)のイベントが指定した時間枠内に発生しない場合は、最初(状態A)のイベントが出力対象になります。
Aが先行しないBパターンについて
Aが先行しないBパターンでは、特定のイベント組合せでイベントがないことを検出し、2番目のイベントが先行しない最初のイベントを出力します。
フロー内で特定のイベントの前に別のイベントが発生していないことを監視する必要がある場合にこれを使用します。たとえば、受注ステータスBOOKED
の前、特定の期間内に受注ステータスPAID
が先行していない場合には、アラートを発生させる必要があります。
図b_not_preceded_by_a_pattern.pngの説明
次のパラメータに適切な値を入力します。
-
パーティション基準: (オプション)ストリームのパーティション化の基準となるフィールド。前述の受注の例では、
order_id
になります。 -
状態A: フィールド: 初期状態のフィールドであり、値が2つのイベントの比較で使用されます。例では
order_status
です。 -
状態A: 値: 初期フィールドの状態の値。例では
BOOKED
です。 -
状態B: フィールド: 後続状態のフィールドであり、値が2つのイベントの比較で使用されます。例ではこれも
order_status
です。 -
状態B: 値: 後続のフィールドの状態の値。例では
PAID
です。 -
期間: 状態の変更を検索する期間。
送信形状
送信形状と受信形状は同じです。2番目(状態B)のイベントが指定した時間枠内に発生しない場合は、最初(状態A)のイベントが出力対象になります。
「下降トレンド」パターンについて
「下降トレンド」パターンでは、一定期間中、継続的に数値が下降している状況を検出します。
このパターンは、いずれかの数値が継続的に下降している状況を検出する必要がある場合に使用します。たとえば、センサーの1つから継続的な圧力下降を検出します。
次のパラメータに適切な値を入力します。
-
パーティション基準: ストリームのパーティション化の基準となるフィールド。たとえば、ストリームに複数のセンサーから出力されるイベントが含まれるとします。すべてのセンサーが同じデータを独自に送信します。あるセンサーの測定値をストリームの前のイベントではなく、同じセンサーの前の測定値と比較しようとしています。この値が別のセンターの値である可能性が高くなっています。センサーIDのような、センサーを一意に特定するフィールドを選択します。このフィールドはオプションです。たとえば、ストリームに1つのセンサーからの測定値のみが含まれる場合は、データをパーティション化する必要はありません。
-
期間: 指定したフィールドの値が下降トレンドかどうかを分析する期間。
-
トラッキング値: 値が下降トレンドかどうかを分析するフィールド。
送信形状
送信形状は受信形状をベースにしており、2つの新しいフィールドが追加されています。例を見てみましょう。受信イベントには次のフィールドがあります。
-
sensor_id
-
temperature
-
pressure
-
location
通常はsensor_id
をデータのパーティション化に使用してtemperatureの下降トレンドを確認することが多いと思います。この場合はsensor_id
をパーティション基準パラメータで、temperatureをトラッキング値パラメータで選択します。ユースケースに適合する期間を使用します。このシナリオでは、次の送信形状を使用できます。
-
sensor_id
-
startValue
(これはトレンドを開始するtemperatureの値) -
endValue
(これはトレンドを終了するtemperatureの値) -
temperature
(最終イベントの値) -
pressure
(最終イベントの値) -
location
(最終イベントの値)
パターンは、入力/選択したデータに基づいて、視覚的に表されます。
「論理和」パターンについて
「論理和」パターンは、同じ形状を持つ2つのストリームを1つにマージします。
同一の形状を持つ2つのストリームを1つにマージする必要がある場合、たとえば、2つの類似したセンサーが2つの異なるストリームにデータを送信しており、これらのストリームを1つのパイプライン内で同時に処理する場合に、このパターンを使用します。
次のパラメータに適切な値を入力します。
-
第2イベント・ストリーム: プライマリ・ストリームにマージするストリーム。形状が同じストリームを選択してください。
送信形状と受信形状は同じです。
「変動」パターンについて
このパターンを使用して、イベント・データ・フィールド値が、特定の時間ウィンドウの範囲内で、いつ特定の上方向または下方向への変更を示すかを検出します。たとえば、このパターンを使用して、油圧値の多様な変化が許容範囲内に保たれていることを特定します。
次のパラメータに適切な値を入力します。
-
パーティション基準: パーティション化の基準となるフィールド。
-
トラッキング値: この値は、イベント・データの追跡およびライブ出力ストリームでのパターン作成に使用されます。
-
ウィンドウ: データをリフレッシュする頻度となるローリング期間。
-
偏差しきい値%: パターンに含める偏差のパーセンテージを示す値。これは、パイプラインが一致するパターンを検索する間隔です。
送信形状と受信形状は同じです。
「逆W」パターンについて
「逆W」パターンは、ダブル・トップ・チャート・パターンとも呼ばれ、金融取引市場の技術的分析で使用されます。
金融データをグラフィカルに表示する場合にこのパターンを使用します。
次のパラメータに適切な値を入力します。
-
パーティション基準: ストリームのパーティション化の基準となるフィールド。たとえばティッカ・シンボルです。
-
ウィンドウ: 指定したフィールドの値が逆W形状を描くかどうかを分析する期間。
-
トラッキング値: 値が逆W形状を描くかどうかを分析するフィールド。
送信形状
送信形状は受信形状をベースにしており、5つの新しいフィールドが追加されています。新しいフィールドは次のとおりです。
-
firstW
-
firstPeakW
-
headInverseW
-
secondpeakW
-
lastW
新しいフィールドはフィードで発見された逆W形状のトラッキング値の終端の点に対応します。元のフィールドは逆Wパターンの最終イベントに対応します。
「重複の除去」パターンについて
「重複の除去」パターンでは、指定した時間ウィンドウ内のストリームに含まれる重複イベントを検索し、最初のイベント以外を削除します。重複イベントとは、1つ以上のフィールド値が別のイベント内の同じフィールドの値と同じであるイベントのことです。どのフィールドの重複値を分析するかは、ユーザーが指定します。このパターンは、1つのフィールドのみまたはイベント全部を比較するように構成できます。
これを使用してストリーム内のノイズを除去します。ストリームに集計(件数など)を相殺する可能性のある重複が含まれることがわかっている場合は、「重複の除去」パターンを使用してデータをクレンジングしてください。
次のパラメータに適切な値を入力します。
-
重複基準: 値をイベント間で比較して同一のものを探すフィールドのリスト。構成されたすべてのフィールドの値が一致する場合、2番目、3番目および後続のイベントは削除されます。
-
ウィンドウ: 重複が破棄される期間。たとえば、「ウィンドウ」に10秒を設定すると、最初のイベントから9秒経過後に重複イベントが発生した場合は破棄されますが、11秒経過後に発生した場合はそのまま受け入れられます。
送信形状と受信形状は同じです。
「不足イベントの検出」パターンについて
「不足イベントの検出」パターンでは、予期されたイベントが欠落しているという単純な状況を検出します。
フィード内の欠落イベントを検出する必要がある場合はこのパターンを使用します。たとえば、複数のセンサーが5分おきに信号を送信するフィードがあるとします。このパターンを使用して、信号の送信を停止したセンサーが検出された場合、センサーが壊れているか、センサーへの接続がないことを示している可能性があります。
図detect_missing_heartbeat_pattern.pngの説明
次のパラメータに適切な値を入力します。
-
パーティション基準: ストリームのパーティション化の基準となるフィールド。たとえば、ストリームに複数のセンサーから出力されるイベントが含まれるとします。すべてのセンサーが同じデータを独自に送信します。あるセンサーの測定値をストリームの前のイベントではなく、同じセンサーの前の測定値と比較しようとしています。この値が別のセンターの値である可能性が高くなっています。センサーIDのような、センサーを一意に特定するフィールドを選択します。このフィールドはオプションです。たとえば、ストリームに1つのセンサーからの測定値のみが含まれる場合は、データをパーティション化する必要はありません。
-
ハートビート間隔: 欠落イベントが検出される期間。最終イベント以降、ハートビート間隔内にセンサーからのイベントが発生しない場合は、アラートがトリガーされます。
送信形状
送信形状と受信形状は同じです。ハートビートの欠落がない場合、イベントは出力されません。ハートビートの欠落がある場合、ハートビート間隔の計算に使用された前のイベントが出力されます。
「左の外部結合」パターンについて
「左の外部結合」パターンでは、左の外部結合セマンティクスを使用して、フローを別のストリームや参照と結合します。
左の外部結合セマンティクスを使用してストリームや参照に結合するには、このパターンを使用します。このパターンの結果には、結合条件で右側の表に一致するデータが検出されていなくても、常に左側の表のデータが含まれます。
図create_left_outer_join_pattern.pngの説明
次のパラメータに適切な値を入力します。
-
エンリッチ参照/ストリーム:フローに結合するストリームまたは参照。
-
相関基準: ストリーム/参照を結合する基準となるフィールド。
-
プライマリ・ストリームのウィンドウ範囲: プライマリ・フローのイベントのコレクションをエンリッチ・ストリーム/参照と結合するために使用するローリング時間ウィンドウ。
-
プライマリ・ストリームのウィンドウ・スライド: データがダウンストリームとUIにプッシュされる頻度。
-
エンリッチ・ストリームのウィンドウ範囲: エンリッチ・ストリームのイベントのコレクションをプライマリ・フローと結合するために使用するローリング時間ウィンドウ。参照が使用される場合は無効です。
-
エンリッチ・ストリームのウィンドウ・スライド: データがダウンストリームとUIにプッシュされる頻度。参照が使用される場合は無効です。
送信形状は2つの受信形状の合計になります。