2 Oracle Stream Analyticsのアーティファクトの概要
Stream Analyticsには、接続、参照、ストリーム、ターゲットなどの様々なアーティファクトがあります。これらのアーティファクトを使用して、パイプラインを作成します。
様々なタイプの接続の理解
接続は非常に基本的なアーティファクトであり、カタログ内に作成する必要がある最初のエンティティです。また、外部システムへの接続に必要なメタデータ(URLや資格証明など)の集合体です。接続は、ソース(ストリーム、参照またはジオ・フェンス)およびターゲットの作成の基礎になります。
同じ接続を再利用して、複数のソースまたはターゲット(あるいはその両方)を作成できます。つまり、再利用して、同じシステム内の異なるリソース(同じKafkaクラスタ内の異なるKafkaトピックや、同じOracleデータベース内の異なるデータベース表など)にアクセスできます。
Kafka接続
Kafka接続のパラメータは、ZookeeperサーバーURLの1つのみです。カタログ・オブジェクトの標準プロパティ(名前、説明、タグ)はありません。
Zookeper URLのフォーマットは、host:portです。ユーザーがポートを指定しない場合、デフォルトのZookeeperポート(2181)が使用されます。このリリースでは、Kafkaに対する認証はサポートされていません。
Oracleデータベース接続
Oracleデータベースに接続するには、次のパラメータを指定する必要があります。
-
サービス名/SID
-
ホスト名
-
ポート
-
ユーザー名
-
パスワード
Oracle Coherence接続
Oracle Stream Analyticsでは、Oracle Coherenceキャッシュを検索データへの参照として使用することで、処理中のストリームをエンリッチできます。
JMS接続
Oracle Stream Analyticsでは、JMSをストリーム・データのソースとして使用できます。
ストリームの理解
ストリームは、動的データのソースです。データは流動するものであり、静的であったり凍結したりしてはいません。たとえば、個別の企業の株価は、データが毎秒またはそれより頻繁に到来するため、ストリームとみなすことができます。データのストリームの例として他に、各車両の移動に伴って絶えず変化する、車両(トラックなど)の位置(地理的位置)があります。各車両は定期的に(例: 毎秒)中央システムに自身の位置をレポートし、中央システムは位置メッセージをストリームとして受信します。
ストリームは、様々なネットワーク・プロトコルやメッセージング・システム、および多くの種類のメッセージ・フォーマットを使用して送信できます。
Kafkaストリームを作成するには、まずKafka接続を作成してから、ストリーム作成ウィザードウィザードでその接続を選択する必要があります。接続の他に、データのストリームを表すKafkaトピックを指定する必要があります。
参照の理解
参照は、イベント・データに関するコンテキスト情報を提供する静的データのソースです。データベース表への参照やCoherenceキャッシュへの参照など、様々なタイプの参照があります。
参照は、ストリームから到着するデータをエンリッチするために使用されます。前の例に戻ると、受注ストリームには受注イベントが含まれ、各イベントには製品IDと顧客IDが含まれます。2つのデータベース表があり、それぞれに製品情報と顧客情報が含まれているとします。製品表と顧客表に対して1つずつ、2つの参照を作成すると、Oracle Stream Analyticsではこれらの参照を使用して、着信ストリームをこれらの表の情報(製品名、製造元、顧客名、住所など)でエンリッチできます。
参照によりデータベース表からデータが取得された場合、キャッシュ・メカニズムを適用できます。(Coherenceキャッシュを直接使用できます。)キャッシュを有効にすることで(参照の構成オプション)、パイプラインとデータベース表の間にキャッシュ・レイヤーを追加できます。これにより、静的データのアクセスのパフォーマンスは向上しますが、他方でパイプラインによるメモリー消費量が増加するというデメリットもあります。データがキャッシュにロードされると、参照ではそのキャッシュからのみデータがフェッチされます。失効ポリシーが「なし」に設定されている場合、参照表に対する更新は有効になりません。
ジオ・フェンスの理解
ジオ・フェンスとは、実際の地理的領域内の仮想境界のことです。この仮想境界を使用して、ジオ・フェンスに対するオブジェクト位置を見つけることができます。
たとえば、次のようなオブジェクト位置が考えられます。
-
ジオ・フェンスに近い
-
ジオ・フェンスを出る
-
ジオ・フェンス内の滞留時間に基づく
-
ジオ・フェンスに入る
-
ジオ・フェンス内に存在する
パイプラインの理解
パイプラインとは、パイプライン・ロジックを定義する、一連のデータ処理ステージのことです。ステージは、問合せ、パターン、ルール、問合せグループ、カスタム、スコアリングのいずれかのタイプになります。
パイプラインは、唯一のデフォルト・ステージであるストリーム・ステージから始まります。デフォルトのステージは削除できません。ステージには、問合せ、パターン、ルールなど、任意のタイプの子を1つ以上含めることができます。つまり、パイプラインは線形である必要はありません。ユースケースのロジックに応じて、複数のブランチを含めることができます。オプションで、ブランチを1つ以上のターゲットで終わらせることができます。ターゲットに他のステージを追加することはできません。
パイプライン内のステージは、いつでも編集できます。ダウンストリーム・ステージに影響を与える変更は、自動的に伝播されます。
ドラフト・パイプライン
ドラフト状態のパイプラインの特性は次のとおりです。
-
所有者のみに表示されます
-
編集可能です
-
パイプライン・エディタが開いているときのみ動作します。パイプライン・エディタを終了するか、ブラウザを閉じると、ドラフト・パイプラインはSparkクラスタから削除されます。
-
ターゲットが構成されていても、イベントをダウンストリーム・ターゲットに送信しません。
新しく作成したパイプラインは、ドラフト状態です。この状態で、ストリームを探索し、ビジネス・ロジックを実装できます。実装をすべて一度に行う必要はありません。パイプラインが編集セッションを越えて実行されることはありません。
公開済パイプライン
公開済状態のパイプラインの特性は次のとおりです。
-
すべてのユーザーに表示されます
-
編集不可です
-
パイプラインを終了した後も、引き続きSparkクラスタ内で実行されます
-
イベントをダウンストリーム・ターゲットに送信します
実装を完了し、その実装に問題がなければ、ターゲットを追加し、パイプラインを公開できます。公開済パイプラインは、Sparkクラスタ上で引き続き実行されます。
公開済パイプラインを編集する場合は、まずそのパイプラインを非公開にする必要があります。
ダッシュボードの理解
ダッシュボードは、共通のテーマに基づいた相互に関連するビジュアライゼーションの集合体です。たとえば、Salesダッシュボードには、様々な販売関連活動に関連する監視(四半期売上高、見込み客など)が表示されます。ダッシュボードを使用すると、相互に関連したすべての重要な分析が1ページに表示され、これにより有意義な洞察を引き出し、意思決定プロセスの参考にできます。
ダッシュボードは、カタログの第1級のメンバーです。適切な権限を持つユーザーであれば、コードを1行も記述せず、様々なパイプライン・ステージの結果をアセンブルするだけで、ダッシュボードを構築できます。ダッシュボードには、ライブ・データが表示されます。
Oracle Stream Analyticsは、複数のデータ・パイプライン・ステージで構成され、各ステージの結果がその次のステージへの入力となります。各ステージの終了時に、関連するインライン・ビジュアライゼーションによって、アクティブなステージの結果を視覚化できます。Oracle Stream Analyticsでは、様々なアプリケーション・ステージの結果を1箇所にまとめて視覚化できます。
ダッシュボードをキューブと結合すると、ユーザーは、Oracle Stream Analyticsの分析の項で実行したデータ探索アクティビティに基づいてビジュアライゼーションを作成できます。これらのビジュアライゼーションをダッシュボードに組み込むことができます。ダッシュボード機能により、ユーザーは、操作と分析の両方のビジュアライゼーションを組み合せて、基礎となる営業活動の全体像を示すショーケースのようなマッシュアップを作成できます。
キューブの理解
キューブとは、複数のディメンションにわたるビジネス問題に関連するデータをすばやく分析するのに役立つデータ構造です。Oracle Stream Analyticsのキューブは、分散型のインメモリーOLAPデータ・ストアであるDruidによって提供されます。
Oracle Stream Analyticsのパイプラインを使用すると、ユーザーは、ストリーム・データに対するリアルタイムなデータ処理を実行できます。これに対し、キューブは、ユーザーが履歴データに対する対話型分析を実行できるメカニズムです。このために、パイプラインによって処理済のデータがKafkaストリームに出力され、そこからキューブにフィードされます。キューブを使用すると、ユーザーは一変量、二変量および多変量のデータ分析を実行できます。キューブにより、ユーザーは、30個のビジュアライゼーションからなる豊富なセットを使用して、履歴データに対するデータ探索を実行できます。単純な表、線、棒から、サンキー図、箱ひげ図、マップなどの高度なビジュアライゼーションまで、様々なビジュアライゼーションがあります。ユーザーは、これらのキューブ探索の結果を保存し、Oracle Stream Analysticsビジュアライゼーションに埋め込まれたダッシュボードでそれを使用可能にできます。このようにダッシュボードとキューブのコラボレーションにより、ビジネス・ユーザーの操作上の分析と戦略上の分析の両方に対応します。キューブで使用可能なビジュアライゼーションには、探索的データ分析の結果の値を強化するためのルック・アンド・フィール関連プロパティの豊富なセットも含まれています。
Stream Analyticsのパターンの理解
イベント・ストリームの視覚表現は、選択するキー・フィールドに基づいて、様々なパターン・タイプを持ちます。
パターンは、共通のビジネス・シナリオに基づくライブ出力ストリームの形式に結果を表示します。
次の表に、パターンのカテゴリを示します。
カテゴリ | パターン |
---|---|
エンリッチメント |
リバース・ジオコード: 近い 左の外部結合 |
外れ値 |
変動 |
組込み |
論理和 左の外部結合 |
不足イベント |
Bが後に続かないA 不足イベントの検出 |
空間 |
近接性: ジオ・フェンスを含むストリーム ジオ・フェンス 空間: 速度 相互作用: 単一のストリーム リバース・ジオコード: 近い ジオコード 空間: ポイントからポリゴン 相互作用: 2つのストリーム 近接性: 2つのストリーム 方向 リバース・ジオコード: 近場 近接性: 単一のストリーム ジオ・フィルタ |
フィルタ |
重複の除去 変動 |
状態 |
Bが後に続かないA 逆W 不足イベントの検出 W Bが後に続くA |
会計 |
逆W W |
トレンド |
Bが後に続かないA 上位N 変更ディテクタ 上昇トレンド 不足イベントの検出 下降トレンド Bが後に続くA 重複の検出 下位N |
形状ディテクタ |
逆W W |
統計 |
相関 分位 |
「ジオコード」パターンとは
データを分析する際、移動オブジェクトの緯度と経度を、通りの住所、郵便番号、住所などに基づいて取得する必要がある場合があります。
このパターンを使用すると、住所の地理上の座標(緯度と経度など)を取得できます。
相互作用: 2つのストリーム・パターンとは
2つの形状は、形状の一部が重なっていれば、互いに相互作用すると言えます。2つの形状が相互作用する場合、両者の間の距離はゼロです。
このパターンを使用すると、あるストリーム内のオブジェクトと別のストリーム内のオブジェクトとの相互作用を取得できます。
空間: ポイントからポリゴン・パターンとは
このパターンを使用すると、オブジェクトの地理上の座標、固定長および幅に基づいてオブジェクト形状を取得できます。
たとえば、船の長さと幅がわかっている場合、その位置座標を使用して船の形状またはジオ・フェンスを取得できます。座標は、船の移動に伴って変化します。
近接性: 単一のストリーム・パターンとは
このパターンを使用すると、1つのストリーム内の異なるオブジェクト間の近接性を取得できます。
たとえば、飛行中の飛行機の単一ストリームがあり、距離バッファを1000mとして指定した場合、表内の出力には、その飛行機との距離が1000m未満の飛行機が表示されます。
近接性: 2つのストリーム・パターンとは
このパターンを使用すると、2つのストリームのオブジェクト間の近接性を取得できます。
このパターン・ステージでは、距離バッファがフィルタとして働きます。たとえば、運転手と乗客のストリームがある場合、「1 kmの距離範囲内」というフィルタ基準を使用して、各乗客と運転手との近接性を取得できます。
近接性: ジオ・フェンスを含むストリーム・パターンとは
このパターンを使用すると、あるオブジェクトと仮想境界(ジオ・フェンス)との近接性を取得できます。
たとえば、カリフォルニアの都市にいくつかの店舗がある場合、顧客がそのいずれかの店舗から1000mの近接範囲に入ったらすぐに販促メッセージを送信できます。
「ジオ・フェンス」パターンとは
このパターンは、あるオブジェクトと(ジオ・フェンスと呼ばれる)仮想境界との関係をトラッキングする場合に使用できます。
関係は、ジオ・フェンスに入る
、出る
、留まる
、近い
のいずれかです。たとえば、オブジェクトがジオ・フェンスに入ったときにアラートをトリガーできます。また、地理的位置データを含むストリームを分析することもできます。これは、イベントがジオ・フェンス内のポリゴンにどのように関係しているかを判別するのに役立ちます。
地理的位置は次のいずれかです。
-
ジオ・フェンスに近い
-
ジオ・フェンスを出る
-
指定の時間ジオ・フェンス内に留まる
-
ジオ・フェンスに入る
ジオ・フェンス・フィルタ: 内部パターンとは
このパターンを使用すると、1つ以上のジオ・フェンス内部のオブジェクトをトラッキングできます。
たとえば、ユーザーが異なる地理的位置間を移動する場合、指定したジオ・フェンス内にユーザーがいるときにユーザーに販促メッセージを送信できます。
「分位」パターンとは
分位関数の値を計算する必要がある場合は、このパターンを使用する必要があります。たとえば、学生のスコアの第3分位を要求し、80の値が返された場合、学生の75%のスコアが80を下回っているということです。
「重複の検出」パターンとは
「重複の検出」パターンでは、指定した基準に基づいて、指定した時間ウィンドウ内のストリームの重複イベントを検出します。イベントは、部分的または完全に一致していれば、重複するとみなされます。
このパターンを使用すると、ストリームに含まれる重複イベントの数を把握できます。たとえば、集計が相殺されている疑いがある場合、ストリームに重複がないか確認する必要があります。
「変更ディテクタ」パターンとは
「変更ディテクタ」パターンを使用すると、イベント・フィールドの値の変更を検出し、指定した範囲ウィンドウ内で変更が発生したら、その変更をレポートできます。たとえば、フィールドfield1
の値がvalue1
であるイベントが到着したとします。指定した範囲ウィンドウ内で次のいずれかの着信イベントにvalue1
ではない値が含まれている場合、アラートがトリガーされます。変更を検出する複数のフィールドを指定できます。
通常は安定している値に変更がないか監視する必要がある場合は、これを使用できます。たとえば、特定の期間一定であるはずのセンサー信号が変化した場合、問題を示している可能性があります。
このパターン・ステージのデフォルト構成では、選択したフィールドのいずれかが変更されると、アラートが生成されます。
「W」パターンとは
「W」パターンは、ダブル・ボトム・チャート・パターンとも呼ばれ、金融取引市場の技術的分析で使用されます。
このパターンを使用すると、指定された時間ウィンドウ内でいつ、イベント・データ・フィールド値が上昇および下降してWを描くかを検出できます。たとえば、市場データ・フィードの株価の動きをモニタリングして買/売/ホールドの評価を決定する場合に、このパターンを使用します。
「Bが後に続くA」パターンとは
「Bが後に続くA」パターンでは、特定のイベントを順番に検索し、指定したイベント・シーケンスが発生したときにイベントを出力します。
フロー内で特定の順序でイベントが発生しているか監視する必要がある場合は、これを使用できます。たとえば、受注ステータスBOOKED
の次に(ステータスPAID
がなく)受注ステータスSHIPPED
が続いた場合に、アラートを発生させる必要があります。
「上位N」パターンとは
「上位N」パターンでは、指定した時間ウィンドウ内で到着したイベントの集合から、最も値が大きいN件のイベントを、デフォルトの到着順序ではなく指定した順序でソートして出力します。
これを使用すると、指定した時間ウィンドウ内のストリームに含まれるフィールドの最大値を取得できます。たとえば、圧力センサー信号の上位N個の値を取得する場合は、これを使用します。
「下位N」パターンとは
「下位N」パターンでは、指定した時間ウィンドウ内で到着したイベントの集合から、最も値が小さいN件のイベントを、デフォルトの到着順序ではなく指定した順序でソートして出力します。
これを使用すると、指定した時間ウィンドウ内のストリームに含まれるフィールドの最小値を取得できます。たとえば、圧力センサー信号の下位N個の値を取得する場合は、これを使用します。
「上昇トレンド」パターンとは
「上昇トレンド」パターンでは、一定期間中、継続的に数値が上昇している状況を検出します。
このパターンは、いずれかの数値が継続的に上昇している状況を検出する必要がある場合に使用できます。たとえば、センサーの1つから継続的な圧力上昇を検出します。
「Bが後に続かないA」パターンとは
「Bが後に続かないA」パターンでは、特定のイベント組合せにおいて2番目のイベントがないことを検出し、指定した期間内に必要な2番目のイベントが到着しない場合に、最初のイベントを出力します。
フロー内で特定のイベントが前のイベントに続いていないことを監視する必要がある場合は、これを使用できます。たとえば、受注ステータスBOOKED
の後、特定の期間内に受注ステータスPAID
が続いていない場合、アラートを発生させる必要があります。
「下降トレンド」パターンとは
「下降トレンド」パターンでは、一定期間中、継続的に数値が下降している状況を検出します。
このパターンは、いずれかの数値が継続的に下降している状況を検出する必要がある場合に使用できます。たとえば、センサーの1つから継続的な圧力下降を検出します。
「論理和」パターンとは
「論理和」パターンは、同じ形状を持つ2つのストリームを1つにマージします。
同一の形状を持つ2つのストリームを1つにマージする必要がある場合、たとえば、2つの類似したセンサーが2つの異なるストリームにデータを送信しており、これらのストリームを1つのパイプライン内で同時に処理する場合などは、このパターンを使用できます。
「変動」パターンとは
このパターンを使用すると、特定の時間ウィンドウ内でいつ、イベント・データ・フィールド値が特定の上方向または下方向への変更を示すかを検出できます。たとえば、このパターンを使用して、油圧値の多様な変化が許容範囲内に保たれていることを特定します。
「逆W」パターンとは
「逆W」パターンは、ダブル・トップ・チャート・パターンとも呼ばれ、金融取引市場の技術的分析で使用されます。
金融データをグラフィカルに表示する場合は、このパターンを使用できます。
「重複の除去」パターンとは
「重複の除去」パターンでは、指定した時間ウィンドウ内のストリームに含まれる重複イベントを検索し、最初のイベント以外を削除します。重複イベントとは、1つ以上のフィールド値が別のイベント内の同じフィールドの値と同じであるイベントのことです。どのフィールドの重複値を分析するかは、ユーザーが指定します。このパターンは、1つのフィールドのみまたはイベント全部を比較するように構成できます。
これを使用すると、ストリーム内のノイズを除去できます。ストリームに集計(件数など)を相殺する可能性のある重複が含まれることがわかっている場合は、「重複の除去」パターンを使用してデータをクレンジングしてください。
形状の理解
形状とは、データのフォーマットのことです。Oracle Stream Analyticsでは、ストリームまたはターゲット内の各メッセージ(ストリーム処理の用語ではイベント)のフォーマットは同じである必要があり、このフォーマットは、ストリームまたはターゲットの作成時に指定する必要があります。ストリーミングにおける形状は、静的データのデータベース表構造に例えることができます。各形状は複数のフィールドで構成され、それぞれのフィールドに名前とデータ型があります。ストリーム作成ウィザードで、フィールドを後から別名で参照できるように、フィールドにユーザー指定の別名を割り当てることができます。
たとえば、ストリームに受注関連のデータが含まれているとします。この場合、形状には、string型の受注ID、integer型の顧客ID、integer型の製品ID、integer型の数量、およびNumber型の単価のフィールドを含めることができます。
ターゲットの理解
ターゲットは、ストリーム処理の結果が送られる宛先の外部システムを表します。ストリームと同じように、ターゲットは外部の世界とのリンクになります。ストリームはパイプラインへの入力であるのに対し、ターゲットは出力です。また、1つのパイプラインで、複数のストリームを消費および処理できます。
ターゲットを含めない構成にすることもできますが、パイプラインの作成目的はストリーム・データを処理し、出力を外部システム(ターゲット)に転送することであるため、このような構成は意味をなしません。
予測モデルの理解
予測モデルは、結果を予測するためにストリーム・データに適用するアルゴリズムです。Oracle Stream Analyticsにおける予測モデルとは、システムにアップロードして格納するモデル定義ファイルのことです。
Oracle Stream Analyticsでは、PMMLバージョン3.0、3.1、3.2、4.0、4.1、4.2および4.3がサポートされています。パイプライン内で、スコアリング・ステージで予測モデルを使用して、確率スコアリングを実行します。
カスタムJARの理解
カスタムJARは、Oracle Stream Analyticsカタログ・アーティファクトの1つです。Javaで実装されたカスタム・イベント処理アルゴリズムを含むJARファイルです。
Oracle Stream Analytics Webツールを使用してイベント処理ロジックを構築できない場合は、自分でカスタム・イベント処理ロジックを作成する必要があります。特定の業界における複雑なユースケースでは、これが必要になることもあります。一般に、複雑なユースケースには、パターンで対応できます。1つのカスタムJARには、1つ以上のカスタム・ステージ・タイプまたは1つ以上のカスタム関数(あるいはその両方)が含まれます。カスタム・ステージでカスタム・ステージ・タイプを使用したり、計算されたフィールド式でカスタム関数を使用できます。カスタムJARの構築方法の詳細は、Oracle Stream Analytics開発者ガイドを参照してください。
エクスポートおよびインポートとは
エクスポートおよびインポート機能を使用すると、数回のクリックにより、異なるOracle Stream Analyticsシステム間(開発システムと本番システムなど)でパイプラインとその内容を移行できます。また、選択したアーティファクトのみを移行するオプションもあります。
パイプラインをエクスポートおよびインポートするには、管理者権限が必要です。エクスポートの結果、エクスポートされるカタログ・オブジェクトのメタデータおよびそのすべての依存関係を含むZIPファイルが生成されます。インポートできるのは、このエクスポート/インポート機能を使用してエクスポートしたZIPファイルのみです。それ以外のタイプのファイルは、正常にインポートできません。
注意:
-
以前のバージョンのOracle Stream Analyticsを使用して開発したパイプラインはインポートできません。
-
再インポート時に、既存のメタデータは、新しくインポートされたメタデータで上書きされます。
-
公開済のパイプラインのアーティファクトは上書きできません。まず、パイプラインを非公開にしてから再試行する必要があります。