この章では、Oracle Stream Analyticsでの探査について説明します。
この章の構成は、次のとおりです。
探査は、ビジネス・ロジックをイベント・フローに適用可能にするOracle Stream Analytics Event Processingアプリケーションです。探査は、ソースからストリーミングされるデータの視覚的表現です。探査では、データは次の形式で視覚的に表されます。
ライブ出力ストリーム - ライブ出力ストリームは、ストリーミング・データの形状を表形式で表示します。
折れ線グラフ - 折れ線グラフは、時系列データを視覚化する第一の方法です。X軸は時間の動きを表すために使用され、データは、時間が進むにつれ自然にスクロールします。Y軸は、時間が進むにつれての従属変数(つまり注目している変数)の変化を示すために使用されます。
散布図 - 時間ディメンションが重要でない場合、データは、散布図に示されることでわかりやすくなる場合があります。この場合、ユーザーはX軸とY軸に異なるイベント・プロパティを割り当てることができます。ただし、各軸上の値は数値変数である必要があります。X軸が説明変数、Y軸がレスポンス変数を表すことを思い出してください。このため、レスポンスまたは計算済フィールドを示すプロパティは、Y軸に自動割当てするのにより適した候補です。
時系列の場合、言うまでもなく、新しい値はグラフの右側に現れ、古い値は左側に消えていきます。ただし、この挙動は散布図に変換されません(新しい点が任意の場所に出現できるため)。
探査では、次のことが可能です。
1つ以上のストリームと参照をイベントとデータのソースとして使用すること
複数のイベントとデータ・ソースを相関させること
イベントとデータのフィルタ
イベントとデータのグループ化
集計関数のウィンドウを時間/イベントに基づいて指定すること
サマリーで使用する集計関数を指定すること
受信イベント(ロジック適用前)と、結果として生じるイベント(ロジック適用後)を表およびグラフ形式で、レビューすること
ターゲットの追加
出力ストリームのデータに関数を定義または適用すること。「式ビルダー」を参照してください。
出力ストリームのライブ・データに対するOracleビジネス・ルールを定義すること。詳細は、「ビジネス・ルール」を参照してください。
すべての探査は、次の組合せのメタデータを持っています。
名前
タグ
説明
作成者
作成日時
更新者
更新日時
お気に入りか否か。
タグ、説明およびお気に入りであることは、Exploration Editorで明示的に指定されます。作成および更新情報は、自動的に持続されます。
探査に複数のデータ・ソースが関連付けられる場合、データ・ソース間で論理的な関係が確立される必要があります。この論理的な関係は、相関と呼ばれます。
Oracle Stream Analyticsでは、相関ルールを使用してデータ・ソースを結合できます。すべてのソースが相関している場合、さらにターゲットに向けて送信できる単一のイベント・ストリームが提供されます。相関させられていない様々なソースに由来する、互換性がある型のフィールドだけが、相関のオペランドとして使用できます。
ストリームと参照が相関していない場合、ソースを相関させるまで、探査は無効な状態のままです。相関させるまで、探査はサーバー上で更新されません。
出力のフィルタに使用できる条件は、フィルタと呼ばれます。出力にフィルタを適用すると、フィルタのすべてまたはいずれかに適合するイベントだけが表示されます。次の演算子を使用して左オペランドを右のオペランドと比較することによって、イベントをフィルタできます。
次と等しい
次と等しくない
次より低い
以下または同等
次より大きい
以上または同等
次を含む
次を含まない
NULL
NULL以外
左オペランドは次のいずれかです。
探査内の任意のソースのフィールド
「サマリー」領域で定義されているサマリー。
右オペランドは次のいずれかです。
左オペランドの型と互換性を持つ型の定数
左オペランドのソースからのフィールドまたはフィールドのサマリー。
条件の追加
条件を追加する手順は次のとおりです。
「フィルタ」フィールドをクリックし、データ・ソースの任意のフィールドを選択します。
「フィルタ演算子」をクリックし、適切な演算子を選択します。
入力フィールドに適切な値を入力します。
あらかじめ入力されているデータ型が正しくない場合、適切なデータ型を選択します。
条件IDがビジネス・ルールに追加されます。
フィルタへの要件に基づいて、「すべてに一致」または「いずれかに一致」を選択します。
グループの追加
ネストした問合せを追加するため、グループを追加できます。ANDおよびOR条件に一致するイベントが表示されます。
グループを追加する手順は、次のとおりです。
「フィルタ」フィールドをクリックし、データ・ソースの任意のフィールドを選択します。
「フィルタ演算子」をクリックし、適切な演算子を選択します。
入力フィールドに適切な値を入力します。
あらかじめ入力されているデータ型が正しくない場合、適切なデータ型を選択します。
ビジネス・ルールにグループIDが追加され、論理演算子ORを適用して条件を追加します。
フィルタへの要件に基づいて、「すべてに一致」または「いずれかに一致」を選択します。
フィールドに関数(「サマリー」)を集計して、任意の組合せのフィールドにより、グループ化を適用できます。唯一の例外は、フィールドが両方のサマリーを持ってグループに含まれることができないということです。サマリーとグループ化のいずれかまたは両方を定義する場合、他のすべての非集計および非グループ化フィールドが結果の形状から自動的に除外されます。
サマリーまたはグループ化を定義する場合、出力に含められるフィールドは、「サマリー」および「グループ化」領域のフィールドのみです。サマリーを定義する場合、結果表に自動的に表示され、フィルタ領域にはこの新しく作成されたサマリーを基準にフィルタするオプションが表示されます。サマリーを削除または変更する場合、それがフィルタや出力で使用されているときは、フィルタや出力に影響を及ぼすため、このアクションを確認する必要があります。
ビジネス・ルールは、アプリケーションに条件ロジックを構築します。
ビジネス・ルールを探査に追加できます。ただし、ビジネス・ルールの追加はオプションです。
注意
ランタイム環境としてSparkを選択した場合、ビジネス・ルールは使用できません。ビジネス・ルールを追加する手順は、次のとおりです。
Exploration Editorに移動します。
「ルールの追加」をクリックして、探査にビジネス・ルールを追加します。
「ルール名」に適切な名前を入力します。これは必須フィールドです。
「説明」にビジネス・ルールの適切な説明を入力します。これはオプションのフィールドです。
「完了」をクリックします。
「IF」ブロックをクリックし、「すべてに一致」または「いずれかに一致」を選択します。
すべてに一致 — ビジネス・ルールのすべての条件を照合します。
いずれかに一致 — ビジネス・ルールのいずれかの条件を照合します。
フィルタ・フィールドからフィールドを選択し、適切な演算子を選択します。使用可能な演算子は次のとおりです。
次と等しい
次と等しくない
次より低い
次のもの以下
次より大きい
次以上
NULL
NULL以外
数値フィルタの数値を入力します。増分アイコンまたは減分アイコンを使用して値を増加または減少させることができます。データ型は、選択したフィルタ・フィールドのタイプに基づいて、自動的にDouble
またはInteger
に決定されます。
テキスト・ベースのフィルタの文字列を入力します。データ型は、自動的にString
に決定されます。
日付ベースのフィルタの日付をカレンダおよび時計ウィジェットを使用して選択します。データ型は、自動的にTimestamp
に決定されます。
「THEN」ブロックの「アクションの追加」をクリックします。さらに、このアクションは「IF」ブロックに追加した詳細に基づいて、探査のデータを絞り込みます。
必要に応じて、このフィールドで式を使用することもできます。
指定したデータでビジネス・ルールが作成され、探査に適用されます。
既存のビジネス・ルールを編集または変更するには、「ルールの編集」アイコンをクリックします。
式ビルダーを使用して、アプリケーションで使用可能な事前定義済の関数と演算子を使用して式を定義できます。
式を作成する手順は、次のとおりです。
「式ビルダー」・アイコンをクリックします。
「式ビルダー」・ツールバーが開きます。
図5-6 「式ビルダー」・ツールバー
式で使用する関数を表示するには、CQL関数のリストアイコンをクリックします。
目的の関数のタイプを選択します。
関数入力ボックスに、選択した関数が表示されます。
図5-7 関数入力ボックス
括弧内に関数の入力パラメータの入力を開始します。
「適用」アイコンをクリックし、式を適用します。
「取消」をクリックし、操作を中断して式ビルダーを終了します。
適用された式はライブ出力ストリームにただちに有効になり、実施した変更を見ることができます。
この項では、探査を作成する方法を説明します。
探査を作成する手順:
「カタログ」に移動します。
「新規アイテムの作成」メニューの探査を選択します。
探査の作成ダイアログに情報を入力します。探査の作成画面を次に示します。
「名前」フィールドに探査の名前を入力します。これは必須フィールドです。
Descriptionフィールドに、ユーザーがこの探査について理解するのを助ける説明を入力します。これはオプションのフィールドです。
「タグ」フィールドに、探査に付けるタグを入力します。複数のタグを入力できます。これはオプションのフィールドです。
「ソース」フィールドで、探査のソースとしてストリームを選択します。これは、公開状態にあるもう一つの探査でもかまいません。これは必須フィールドです。複数のストリームを選択できます。
注意:
ソースが参照だけに基づく探査は作成できません。まずストリームから開始し、後から参照をソースとして追加する必要があります。
注意
ランタイムとしてSparkを使用している場合、探査に対して複数のストリームを選択できません。単一のストリームのみがサポートされています。「作成」をクリックして探査の作成を完了します。新しい探査が、Exploration Editor内に開きます。新しく作成した探査は「カタログ」にも表示されます。
相関 - 探査で複数のソースが使用される場合は、ソース間に相関を追加する必要があります。
サマリー - 探査データのサマリーを追加し、データを適宜グループ化することができます。これはオプションです。「サマリー」を参照してください。
フィルタ - フィルタを追加し、探査に追加したサマリーに基づいてデータをさらにフィルタすることができます。これはオプションです。「フィルタ」を参照してください。
ビジネス・ルール - 探査のデータにビジネス・ルールを追加できます。ビジネス・ルールは、アプリケーションに条件ロジックを構築します。これはオプションです。「ビジネス・ルール」を参照してください。
式 - ストリーミング探査データに式を追加できます。式を使用すると、既存のデータに対して計算を実行することによって、ストリームに新しいデータ・フィールドを移入できます。式の追加はオプションです。「式ビルダー」を参照してください。
ライブ出力ストリームの列にアクションを実行できます。
非表示 — 選択している列を非表示にします
削除 — 選択した列を削除します
名前の変更 — 選択した列の名前を変更します
関数 — 選択した列に式を追加します
リストア — 削除した列を復元します。このオプションは、列を削除した場合のみ表示されます。
任意の時点で操作を中断するには、「取消」をクリックします。
探査を作成すると、探査がExploration Editor内に開きます。探査のパラメータを編集するオプションを持っています。既存の探査は編集または更新できます。探査のデータ・ソースを追加または変更できます。
探査を編集する手順:
「カタログ」に移動します。
編集または更新する探査を特定します。名前文字列または探査アイコンをクリックすると、編集する探査が開きます。Exploration Editorを次に示します。
データ・ソースを追加または削除するには、「ソース」フィールドのどこかをクリックします。複数のデータ・ソースがある場合、ソースを相関させる必要があります。
重要
Sparkランタイムを使用している場合、複数のストリームを持つことはできません。注意
-ERROR: ../sxservices/webresources/v0.1/exploration/41 Empty exploration
のようなエラーが発生した場合は、探査に少なくとも1つのソースがあることを確認してください。探査からすべてのデータ・ソースを削除すると、このようなエラー・メッセージが表示されます。探査が複数のデータ・ソースを持っている場合、「相関」を定義します。
注意:
探査に対する変更は、ソースを相関させるまで適用されません。ソースを相関させずに変更を保存しようとすると、エラー・メッセージが表示されます。探査にサマリーを追加するには、「サマリー」領域の「サマリーの追加」をクリックします。
注意:
「グループ化」機能では計算フィールドを使用できません。出力にフィルタを追加するには、「フィルタ」領域の「フィルタの追加」をクリックします。フィルタは、追加したサマリーに基づいてストリーミング・データをさらにフィルタします。
探査にビジネス・ルールを追加するには、「ビジネス・ルール」領域の「ルールの追加」をクリックします。ビジネス・ルールは、アプリケーションに条件ロジックを構築します。「ビジネス・ルール」を参照してください。
ライブ出力ストリームにタイムスタンプを表示するには、「タイムスタンプ」をクリックします。ストリーミング・データを取得したタイムスタンプが、ライブ出力ストリームの各行に表示されます。これはトグル・ボタンで、ライブ・データでのタイムスタンプのオン/オフを切り替えることができます。
一時停止アイコンをクリックしてストリームしているライブ・データを一時停止し、「再開」アイコンをクリックしてストリームを再開できます。
以前非表示にした列を復元するには、列の復元をクリックします。
ライブ出力ストリームを別ウィンドウとしてデタッチするには、「連結解除」をクリックします。後で連結できます。
列のヘッダーをクリックして、列の名前を変更できます。また、ライブ出力ストリームのいずれかの列をクリックしてドラッグすると、列を並び替えられます。マウスを使用して列のサイズを変更できます。列を表示または非表示にできます。
ライブ出力ストリームに式または関数を追加し、ストリームしているデータに基づいて特定のデータを計算できます。「式エディタ」を使用して関数または式を追加します。式エディタをクリックし、式を入力フィールドに=を入力し、続けて必要な関数を入力します。完了アイコンをクリックし、式の追加を終了して追加された式または関数を保存します。任意の時点で操作を中断するには、「取消」アイコンをクリックします。詳細は、「式ビルダー」を参照してください。
「グラフ」領域で、出力ストリームに表示するグラフの数を構成します。
ストリームの処理で使用される、時間とイベントに基づくウィンドウを指定するには、画面の右側にあるウィンドウ・ドロワーのアイコンをクリックします。
「範囲」ドロップダウン・リストで値を選択して、数値を指定します。この値は、データのストリームに関する期間の範囲を指定します。範囲は「現在」、「ナノ秒」、「マイクロ秒」、「ミリ秒」、「秒」、「分」、「時間」、「イベント」または「バインドなし」などの単位で定義されます。
「現在」は範囲が1ナノ秒の狭さであることを示し、「バインドなし」はサーバーが起動して以来の範囲とみなされることを示します。範囲が「現在」でない場合は、もう一つのフィールド、「評価頻度」が表示されます。
「評価頻度」ドロップダウン・リストで値を選択して、数値を指定します。この値は、システムがどれくらい頻繁に結果イベントを作成するかを定義します。
注意:
「評価頻度」は、「範囲」より長くはできません。
探査の情報を表示するには、右上隅の鉛筆アイコンをクリックします。
探査の「名前」、「説明」または「タグ」を更新するには、「情報の編集」をクリックします。
情報を更新したら、「完了」をクリックします。
行った変更を元に戻すには、右上隅の「変更を元に戻す」アイコンをクリックします。行った変更を再適用するには、右上隅の変更の再実行アイコンをクリックします。元に戻ることができ、再実行できるのは、次の変更のみです。
サマリーの追加、編集、削除
グループ化
フィルタの追加、編集、削除
範囲の指定
ライブ出力ストリームのプロパティの名前の変更
式エディタでの変更または更新
注意:
公開アクションでは、元に戻す操作は使用できません。公開を元に戻すには、探査を非公開化する必要があります。
注意:
一度「元に戻す」をクリックすると、最後に行った変更だけが元に戻ります。
注意:
一度「やり直し」をクリックすると、最後に行った変更のみが再適用されます。
Exploration Editorについての説明を表示するには、右上隅のユーザー・アシスタントのアイコンをクリックします。このアイコンは、トグル・ボタンとして機能します。
探査のターゲットを構成するには、ターゲットの構成をクリックします。「ターゲットの構成」を参照してください。
注意:
ライブ出力ストリームに表示されるフィールドのみ、ターゲットに送信できます。
注意:
探査を編集する場合、変更が実装されるためには、再びそれを公開する必要があります。
詳細をダウンストリームに送信するには、すべての探査にターゲットが構成される必要があります。探査が公開されない限り、構成されたターゲットにイベントをダウンストリーム送信できません。
ターゲットを構成する手順:
探査を作成する場合、デフォルトではドラフト状態にあります。アプリケーションの他のユーザーはそのドラフト探査を利用できません。探査は、それが公開されると公開済状態へ移動します。
公開された探査が削除済または非公開化された場合、探査はドラフト状態に移行します。
ドラフト状態の探査には、次のような独特の特徴があります。
Exploration Editorを終了すると、ランタイムからアンデプロイされます。
ターゲットが存在していても、ターゲットにイベントを送信しません。イベントがターゲットに表示される前に探査を公開する必要があります。
探査をOracle Stream Analyticsのすべてのユーザーが利用できるようにするには、探査を公開する必要があります。公開された探査は:
別の探査のソースとして使用できます。
アプリケーションの他のユーザーから認識できます。
別のユーザーが非公開化するか、探査を削除するまで、実行状態にあります。
ターゲットに適用できます。
探査を公開する手順:
カタログにナビゲートします。
公開する探査を特定して、その名前またはアイコンをクリックします。
「アクション」メニューから「パブリッシュ」を選択します。
探査が公開され、確認メッセージが表示されます。探査が公開されると、次の図に示すようにカタログに表示されます。
コンシューマが誰も使用していない場合、次のシナリオで、探査を公開/再公開できます。
公開された探査を変更なしで再公開する場合
公開された探査の詳細を変更した後に公開する場合(公開された探査は、変更されると、ステータスがドラフトに移行します)。公開後、ドラフト・ステータスが公開ステータスに変更されます。
ターゲットが構成された探査を再公開する場合
2人以上のユーザーが変更後に探査を公開しようとすると、競合が発生します。競合を解決する際には、次の競合解決アクションが助けになります。
「上書き」をクリックして、行った変更を、公開されたバージョンに上書きします。
「破棄」をクリックすると、変更は破棄され、最新の公開済バージョンの探査に移動します。
複数ユーザーによる変更を保持する探査を異なる名前で公開するには、「クローン」をクリックします。
注意:
公開した探査を使用しているユーザーがいる場合は、依存性をクリアするまで、その探査を再公開することはできません。すでに公開されている探査を非公開化できます。
注意:
公開した探査を使用しているユーザーがいる場合は、依存性をすべてクリアするまで、その探査を非公開化することはできません。探査を非公開化する手順:
注意:
いずれかのユーザーによって使用されている公開済探査は非公開化できません。
Oracle Stream Analyticsを使用すると、探査をJARファイルとしてエクスポートし、ダウンロードして再利用できます。公開されていない探査をエクスポートしようとすると、エラー・メッセージが表示されます。
エクスポートされた探査をJDeveloperにインポートして、アプリケーションを開発することができます。ただし、Oracle Stream Analyticsにアプリケーションまたは探査をインポートすることはできません。
注意
ランタイム環境としてSparkを使用している場合、探査のエクスポートはできません。探査をエクスポートする手順:
カタログにナビゲートします。
エクスポートする公開済探査を特定して、それをクリックします。
「アクション」メニューから「エクスポート」を選択します。
探査のエクスポートのダイアログを次に示します。
「エクスポート・リスト」で探査の詳細をレビューします。「リソース」は、探査と、エクスポートされるその依存関係の名前です。「タイプ」は、リソース(探査/ソース)のタイプです。
必要な場合、「拡張オプション」で探査バンドルの詳細を編集/更新します。
「バンドルID」フィールドに値を入力します。これは、一意のOSGIバンドルであるOSGI Bundle-SymbolicName
パラメータで、エクスポートされたJARファイルの名前になります。
「バンドル名」フィールドに値を入力します。これは、探査がエクスポートされる際の名前です。
「エクスポート」をクリックして、探査のエクスポートを完了します。探査は、jarファイルとして保存されます。JARファイルはどこにでも保存できます。
任意の時点で操作を中断するには、「取消」をクリックします。
探査で、ユーザー資格証明(EDN、JMS、HTTP pubsub)が指定されているターゲットまたはソースが使用される場合、エクスポートされた探査は、暗号化パスワードのある資格証明を含みます。パスワードは、サーバー暗号化鍵で暗号化されます。通常、異なるサーバーは、異なる暗号化鍵を使用します。結果的に、サーバーに探査をデプロイする前に、暗号化パスワードを更新するか、プレーン・テキストのパスワードに変換する必要があります。そうしないと、暗号化エラーが表示されます。
探査をお気に入りにすることができます。探査をお気に入りにマークすると、カタログ上に多数の項目があっても、そのような探査を簡単に見つけて、移動できます。
探査をお気に入りとしてマークする手順:
探査が不要であることが確実になった場合、探査を削除できます。公開された探査を削除すると、ドラフト状態に移行します。ドラフト状態と公開済状態の探査がある場合、削除操作はドラフト探査を先に削除します。同じ探査について2回目に削除操作を起動すると、探査は削除されます。
探査を削除する手順:
探査は次のいずれかの状況では無効状態になります。
デプロイメントがVisualizerから削除された場合
ネットワークの問題により、EDNソースが起動できない場合
ファイルが存在しないため、CSVソースが起動できない場合
対応するEvent Processingアプリケーションが、Event Processingサーバー上でアンデプロイまたは一時停止された場合
前述の状況は、探査が無効状態になる理由の一部にすぎません。
無効状態は、オブジェクト(ソースまたは公開済探査)にデプロイメントがないことを示します。
探査をリストアできます。リストア操作は、Oracle Stream Analyticsで利用できる情報を使用して、無効状態のオブジェクトをデプロイしようと試みます。たとえば、ソースS1を使用する探査E1があり、双方とも無効状態にあるとします。探査上でリストア操作を起動すると、Oracle Stream Analyticsはストリームと探査を順番にデプロイしようと試みます。
探査をリストアする手順: