3 パイプラインのコンポーネントの概要
Oracle Stream Analyticsパイプラインは、パイプラインを定義する多数のコンポーネントで構成されます。
次の各トピックで、これらのコンポーネントについて説明します。
問合せステージの理解
問合せステージは、データ・ストリームに対するSQLに似た問合せを構成するために使用され、結合、フィルタ、サマリー、GROUP BY、時間ウィンドウなどの追加ソースで構成されます。
たとえば、次の問合せは、取引金額が1ドルを超える毎時売上合計を計算し、1秒ごとに結果を出力します。
Select sum (TransactionAmount) As HourlySales
From SalesStream [Range 1 Hour Slide 1 Second]
Where TransactionAmount > 1
前述のような問合せや、もっと複雑な問合せは、すべて問合せステージで構成でき、その際にはコーディングもContinuous Query Language (CQL)の詳しい知識も必要ありません。CQL言語はSQLと似ていますが、時間的分析およびパターン一致のための追加のコンストラクトが含まれています。
1つの問合せステージには、次のサブ・セクションがあります。
-
フィルタ
-
相関
-
サマリー/グループ化基準
-
範囲
-
評価頻度
フィルタとは
問合せステージまたは問合せグループ・ステージのフィルタ・セクションでは、データ・ストリーム内のイベントをフィルタ処理できます。
フィルタ条件を満たすイベントのみが、ダウンストリーム・ステージに渡されます。たとえば、データ・ストリームにSensorId
およびTemperature
が含まれる場合、フィルタ条件をTemperature > 70
に設定することにより、Temperature
が70度以下のイベントをフィルタ処理できます。
相関とは
相関は、データ・ストリーム内の着信イベントを、データベース表の静的データや他のストリームからのデータでエンリッチする場合に使用されます。
たとえば、データ・ストリーム内のイベントにSensorId
およびSensor Temperature
のみが含まれる場合、表からのデータでイベントをエンリッチすることにより、SensorMake
、SensorLocation
、SensorThreshold
などを取得できます。
イベントを他のソースと相関付ける場合、共通キーに基づいて結合条件を設定する必要があります。前述の例では、ストリーム内のSensorId
を使用して、データベース表のSensorKey
と相関付けることができます。次の問合せは、温度が事前定義済のしきい値を超えているすべてのセンサーのセンサー詳細を生成する、前述のデータ・エンリッチメント・シナリオを示しています。
Select T.SensorId, T.Temperature, D.SensorName, D.SensorLocation
From TemperatureStream[Now] T, SensorDetailsTable D
Where T.SensorId = D.SensorKey And T.Temperature > D.SensorThreshold
前述のような問合せや、もっと複雑な問合せは、問合せステージのソース・セクションおよびフィルタ・セクションを構成することによって自動的に生成できます。
サマリーとは
データ・ストリームは連続するイベント・シーケンスですが、任意の時間範囲(無制限範囲を含む)のデータを要約できます。
たとえば、問合せステージで次のような問合せを構成することにより、開始時刻からの各センサーの最大温度を継続的に計算できます。
Select SesnsorId, max(Temperature)
From TemperatureStream
Group By SensorId
グループ化基準とは
グループ化基準は、同じ列値を持つすべての行のデータを収集します。グループ化基準は、各グループに関する情報を得るために、サマリー(集計関数)と組み合せて使用します。
次の例は、終了時間の各センサーの平均温度(最後の1時間の数値を使用)を計算するための問合せを生成する構成を示しています。
Select SesnsorId, avg(Temperature)
From TemperatureStream [Range 1 Hour Slide 1 Hour]
Group By SensorId
例
複数のグループ化基準を追加した場合、データは複数の列に基づいてグループ化されます。たとえば、地理的位置ごとの売上数を示すストリームがあるとします。グループ化基準の前に次のような列があります。
COUNTRY CITY REVENUE
US SF 500
US NY 1000
INDIA BOMBAY 800
INDIA BOMBAY 1500
INDIA BOMBAY 700
.........
国(グループ化基準)別の収益合計(サマリー)が計算されて、次の結果が生成されます。
COUNTRY SUM_OF_REVENUE
US 1500
INDIA 3000
別のグループ化基準としてCITYを追加して、国に加えて市ごとにもグループ化して集計します。
COUNTRY CITY SUM_OF_REVENUE
US NY 1000
US SF 500
INDIA BOMBAY 1500
INDIA BANGALORE 1500
範囲とは
範囲とは、データ・ストリームに適用されるウィンドウです。データ・ストリームは無制限のイベント・シーケンスであるため、集計の計算時にはウィンドウを適用する必要があることがよくあります。
範囲の例として、イベントの最後の1時間
、イベントの最後の5分
、最後の10件のイベント
などがあります。範囲を適用すると、データがメモリーに保持されるため、ウィンドウ範囲の使用は慎重に行ってください。たとえば、毎秒2000件のイベントの割合でデータが到着している場合、各イベントが1KBであれば、毎秒のデータは2MBになります。このデータ・ストリームに1時間のウィンドウを適用すると、2MBの3600倍である7.2GBのメモリーを消費します。
範囲でサポートされている時間単位は次のとおりです。
-
now
-
nanoseconds
-
microseconds
-
milliseconds
-
seconds
-
minutes
-
hours
-
events
ルールの理解
ルールとは、着信ストリームに適用される条件のセットであり、また条件が真であったときにストリームに対して実行される処理のセットです。各イベントは、互いに無関係に分析されます。
たとえば、圧力センサーからのストリームに次のようなフィールドが含まれるとします。
-
sensor_id
-
pressure
-
status
圧力に基づいてステータス値を割り当てる場合は、次のルールを定義できます。
-
圧力が50以下の場合は、ステータスを緑色に設定する
-
圧力が50から100までの場合は、ステータスを黄色に設定する
-
圧力が100を超えた場合は、ステータスを赤色に設定する。
ルール・ステージの理解
ルール・ステージは、条件付き(IF - THEN
)ロジックがストリーム内のイベントに適用される、パイプライン内のステージの1つです。特定の条件についてチェックし、チェックの結果に基づいて値をフィールドに割り当てることができます。
複数のルールをステージに追加でき、これらのルールは、追加した順序でパイプラインに適用されます。ルールとは、着信ストリームに適用される条件のセットであり、また条件が真であったときにストリームに対して実行される処理のセットです。各イベントは、互いに無関係に分析されます。
パターン・ステージの理解
パターンは、パイプライン内のステージの1つです。パターンを使用する場合、興味深い結果を得るには、いくつかのキー・フィールドを指定する必要があります。パイプライン内にパターン・ステージを作成できます。パターンは、スタンドアロンのアーティファクトではありません。パイプラインに埋め込む必要があります。
カスタム・ステージの理解
カスタム・ステージは、パイプライン内のストリーム・データにカスタム・ステージ・タイプを適用できるステージ・タイプです。その動作は、データが入って出ていく他のステージ・タイプと同様です。ストリームにロジックが適用される前にいくつかのパラメータを構成するように要求される点で、パターン・ステージと似ています。
スコアリング・ステージの理解
スコアリング・ステージは、ストリーム・データに機械学習モデルを適用して予測分析を実行できるステージ・タイプです。スコアリング・ステージは、ストリーム・データに対して機械学習モデル・デプロイメントを行うデータ・サイエンティストにOracle Stream Analyticsが提供するインフラストラクチャです。
問合せグループの理解
問合せグループ・ステージを使用すると、複数のグループ化基準および複数のウィンドウに基づいて集計を実行できます。これはグループの集合であり、それぞれのグループに、独自のウィンドウと、そのグループ内のデータ処理にのみ適用されるフィルタがあります。
1つの問合せグループには、次の2種類のステージがあります。
-
ストリーム
-
表
ライブ出力表の理解
ライブ出力表は、構築したパイプラインからのメイン・フィードバック・メカニズムです。ライブ出力表には、着信ストリームに処理ロジックが適用された後、パイプラインから出たイベントが表示されます。
ライブ出力表は、パイプラインのステージごとに表示され、その特定のステージの出力が含まれます。ソース・ステージでは、イベントがストリームに到着すると、ライブ出力表に表示されます。ターゲット・ステージでは、イベントがターゲットに流れ込むと、ライブ出力ステージに表示されます。
また、ライブ出力表は、イベント形状を操作するための強力なツールです。ライブ出力表を使用すると、次のことが可能です。
-
式ビルダーで関数の拡張ライブラリを使用して新しいフィールドをイベントに追加し、新しいフィールドを削除できます
-
イベント・フィールドの順序を変更できます
-
イベント・フィールドの名前を変更できます
-
ステージの出力から既存のフィールドを削除できます
-
各イベントにタイムスタンプ・フィールドを追加します
-
ビューのフィールドを(出力には残すが)非表示にできます
-
ブラウザでイベント表示を一時停止してから再開できます(ダウンストリーム・ステージまたはターゲットには影響しません)
表との相互作用は、一般的なスプレッドシート・パイプラインを使用したユーザーすべてに対して直感的に理解できるものである必要があります。
式ビルダー
式ビルダーには、既存のフィールドに基づいて出力に新しいフィールドを追加する機能があります。豊富な関数ライブラリを使用して、イベント・データを操作できます。簡単な例として、名前と名字で名前全体を構成できる、文字列の連結があります。

図string_concat.pngの説明
注意:
イベント形状操作機能は、問合せステージで表に対して使用可能です。式ビルダーには、構文強調表示およびコード補完の機能があります。また、式ビルダーでは、関数シグネチャ、入力パラメータおよび戻り値を確認することもできます。

図concat_details.pngの説明
ビジュアライゼーションの理解
ビジュアライゼーションは、データ(情報)をグラフィック形式または表形式にマッピングすることで、特定の分析上の質問に対する答えを引き出すために使用できます。
データ、そのプロパティおよび関係を、点、線、形状および色で構成された解釈しやすいビジュアル・オブジェクトに変換します。意味のある多次元の質問の結果を効果的に表現します。また、これにより、ビジュアル分析を使用して、表示されたデータ(情報)から影響の大きいパターンを発見できます。
ビジュアライゼーション
ビジュアライゼーションは、2つのカテゴリに分けられます。
-
軸ベース
軸ベースのビジュアライゼーションには、データの系列とグループが表示されます。系列とグループは、データのグリッドの行と列にたとえることができます。通常、ビジュアライゼーションでグリッドの行は系列として表示され、グリッドの列はグループとして表示されます。
軸ベースのビジュアライゼーションを使用すると、地域の売上合計や一定期間の売上合計のように、2つのグラフ軸xおよびyに沿ってデータをビジュアル化できます。X軸の値は、地域のような性質で分類でき、また時系列値を基準にすることができます。これに対し、Y軸は、合計(売上)のような測定値を表します。これらのチャートは、ある期間の一連の値の傾向を視覚化し、それらの値を系列間で比較する場合に役立ちます。
-
空間
空間ビジュアライゼーションは、イベントの分析で特に地理が重要となる場合に使用されます。これは、1つのジオ・フェンス上に重なったビジネス・データを表します。
棒タイプのビジュアライゼーションとは
棒ビジュアライゼーションは、広く使用されているビジュアライゼーション・タイプの1つであり、データを一連の縦棒として表します。これは、x軸沿いに様々なカテゴリが分散しているときにy軸沿いに表示された値を比較する際に適しています。棒ビジュアライゼーションでは、縦の列がメトリック(測定値)を表します。横軸には、複数の(連続しない)カテゴリが表示されます。
横棒では、軸の位置が切り替わります。縦軸には、複数の(連続しない)カテゴリが表示されます。横の列がメトリック(測定値)を表します。これは、カテゴリ名が長いテキスト値で、表示するために追加の領域が必要な場合に適しています。
線タイプのビジュアライゼーションとは
線ビジュアライゼーションは、データを線、一連のデータ・ポイント、または線で結ばれたデータ・ポイントとして表します。線ビジュアライゼーションには、グループ内のメンバーごとに最低2つの点に対するデータが必要です。X軸が日時フィールドなどの単一の連続するディメンションで、データの線が交差する可能性が高い場合に使用します。X軸には、日時でないカテゴリを含めることもできます。Y軸は、メトリック(測定値)を表します。データ・セットが連続する性質を持つ場合は、線ビジュアライゼーションを使用することをお薦めします。これは、一定期間内のデータのトレンド・ベース・プロットを行う場合に最適です。線ビジュアライゼーションでは、値の連続性またはフロー(トレンド)が強調されますが、個々の値比較を実行することもできます。また、線ビジュアライゼーションを使用して、複数の系列を比較することもできます。
軸を切り替えて(y軸にカテゴリ、x軸にメトリックを表示して)水平方向にすることもできます。
面タイプのビジュアライゼーションとは
面ビジュアライゼーションは、データを塗りつぶされた面として表します。面ビジュアライゼーションでは、1つの軸上に最低2つのグループのデータが必要です。X軸が日時フィールドなどの単一の連続するディメンションで、データの線が交差する可能性が低い場合に使用します。Y軸は、メトリック(測定値)を表します。X軸には、日時でないカテゴリを含めることもできます。このビジュアライゼーションは、主に一定期間内の累積値変化を表示する場合に適しています。
軸を切り替えて(y軸にカテゴリ、x軸にメトリックを表示して)水平方向にすることもできます。
積上げ棒タイプのビジュアライゼーションとは
積上げビジュアライゼーションでは、値のセットが異なる列に並んで積み上げられるのではなく、単一のセグメント化された列に積み上げられて表示されます。これは、構成を示すために使用されます。各データ・セットの棒が前のデータ・セットに追加されます。積層のサイズがデータの累積合計を表します。
空間タイプのビジュアライゼーションとは
ジオ空間ビジュアライゼーションを使用すると、ジオ・フェンス上のオブジェクトの位置を表示でき、ユーザーは、イベントが発生している領域に移動します。ユーザーはビジュアライゼーションを構成して、緯度、経度、識別子などを指定できます。特定の条件に基づいて異なる色で矢印などの各種ピンを指定することにより、ビジュアライゼーションをカスタマイズすることも可能です。
円グラフとは
円グラフとは、円形のグラフィックを、数値の割合を示すスライスに分割したものです。各スライスの円弧の長さは、それが表す数量に比例します。
円グラフを使用すると、全体を構成する各部分を比較できます。
バブル・チャートとは
バブル・チャートには、3つのデータ・ディメンションが表示されます。各エンティティが、複数のバージョン(ほとんどは3つ)の関連データとともに、ディスクとしてプロットされます。このディスクには、ディスクのxy位置によるvi値の2つと、そのサイズによる3つ目の値が表示されます。
トポロジ・ビューアの理解
トポロジは、接続されたエンティティおよびアーティファクト間の依存関係を表すグラフィカルな表現および図です。
式ビルダーの関数の理解
このトピックは、Oracleユーザー管理サービスにのみ適用されます。
トピック:
ベッセル関数とは
整数の数学的な円柱関数は、ベッセル関数と呼ばれます。
関数名 | 説明 |
---|---|
|
doubleの引数の階数0の変更済のベッセル関数をdoubleとして返します |
|
doubleの引数の階数0の指数スケールが適用された変更済のベッセル関数をdoubleとして返します |
|
doubleの引数の階数1の変更済のベッセル関数をdoubleとして返します |
|
doubleの引数の階数1の指数スケールが適用された変更済のベッセル関数をdoubleとして返します |
|
引数の階数nの第1種ベッセル関数をdoubleとして返します |
|
引数の階数nの変更済の第3種ベッセル関数をdoubleとして返します |
|
doubleの引数の階数0の指数スケールが適用された変更済の第3種ベッセル関数をdoubleとして返します |
|
doubleの引数の階数1の指数スケールが適用された変更済の第3種ベッセル関数をdoubleとして返します |
|
doubleの引数の階数nの第2種ベッセル関数をdoubleとして返します |
変換関数とは
変換関数は、あるデータ型から他のデータ型に値を変換する場合に役立ちます。
このリリースでは、次の変換関数がサポートされています。
関数名 | 説明 |
---|---|
|
指定された値をbigdecimalに変換します |
|
指定された値をlogicalに変換します |
|
指定された値をdatetimeに変換します |
|
指定された値をdoubleに変換します |
|
指定された値をfloatに変換します |
|
指定された値をintegerに変換します |
|
指定された値をlongに変換します |
|
指定された値をstringに変換します |
日付関数とは
このリリースでは、次の日付関数がサポートされています。
関数名 | 説明 |
---|---|
|
日付の日を返します |
|
ストリームからのイベント・タイムスタンプを返します |
|
日付の時を返します |
|
日付の分を返します |
|
日付の月を返します |
|
日付のナノ秒を返します |
|
日付の秒を返します |
|
アプリケーションが実行されているシステムのタイムスタンプを返します |
|
指定されたタイムスタンプを必要な時間フォーマットで返します |
|
現在の出力時間を返します |
|
日付の年を返します |
ジオメトリ関数とは
ジオメトリ関数を使用すると、特定の値をジオメトリ形状に変換できます。
このリリースでは、次の時間隔関数がサポートされています。
関数名 | 説明 |
---|---|
|
指定された緯度および経度から2次元ポイント・タイプ・ジオメトリを返します。デフォルトのSRIDは8307です。 戻り値のデータ型は、 |
|
緯度と経度の値の最初のセットと2番目のセットの間の距離を返します。デフォルトのSRIDは8307です。 戻り値のデータ型は、 |
時間隔関数とは
時間隔関数は、特定の値から時間間隔を計算する場合に役立ちます。
このリリースでは、次の時間隔関数がサポートされています。
関数名 | 説明 |
---|---|
|
指定された値を 戻り値のデータ型は、 |
|
戻り値のデータ型は、 |
YM時間隔関数
YM時間隔関数は、年から月までの時間間隔を計算する場合に役立ちます。
YM時間隔関数を次に示します。
関数名 | 説明 |
---|---|
|
SQL書式では、yearsは ISO書式では、yearsとmonthsは、 |
|
NUMTOYMINTERVALは、数値nを 戻り値のデータ型は、 |
算術関数とは
算術関数を使用すると、単純なものから複雑なものまで、様々な数学的演算や計算を実行できます。
このリリースでは、次の算術関数がサポートされています。
関数名 | 説明 |
---|---|
|
IEEE 754標準に従って、2個の引数について剰余を計算します |
|
数字の絶対値を返します |
|
値のアーク・コサインを返します |
|
値のアーク・サインを返します |
|
値のアーク・タンジェントを返します |
|
点の極角( |
|
底の二項係数を指定の値で累乗した数値を返します |
|
BitsSet (From, To)が設定されたBitMask |
|
指定された値の立方根を返します |
|
端数を、より大きい値に切り上げます |
|
2番目の浮動小数点引数の符号を付けた、最初の浮動小数点引数を返します |
|
値のコサインを返します |
|
値のコサイン・ハイパーボリックを返します |
|
値の指数を返します |
|
|
|
自然数の階乗を返します |
|
端数を、より小さい値に切り捨てます |
|
doubleの表現で使用されている、バイアスなしの指数を返します |
|
あらかじめ定義されているシードの(外見上は膨大な)マトリックスから決定論的なシードをintegerとして返します |
|
指定されたdoubleの値に対するintegerのハッシュコードを返します |
|
2つの引数の和の平方根を返します |
|
このUUIDの128ビット値の最下位64ビットを返します |
|
指定された底に対する指定された引数のログ値を計算します。 |
|
数値の自然対数を返します |
|
底10に対する指定された引数のログ値を計算します |
|
底2に対する指定された引数のログ値を計算します |
|
integerの引数の階乗の自然対数(底はe)をdoubleとして返します |
|
integerの引数(範囲はk >= 0 && k < 21)の階乗をlongとして返します |
|
2つの引数の最大値を返します |
|
2つの引数の最小値を返します |
|
数値のモジュロを返します |
|
このUUIDの128ビット値の最上位64ビットを返します |
|
2番目の引数の方向で、最初の引数に隣接する浮動小数点値を返します |
|
負の無限大方向で入力引数に隣接する浮動小数点値を返します |
|
正の無限大方向で入力引数に隣接する浮動小数点値を返します |
|
mのn乗を返します |
|
引数の値にもっとも近く、計算上の整数に等しいdouble値を返します |
|
最も近い整数値に四捨五入します |
|
double値セットのメンバーに単一の正しく丸められた浮動小数点を掛けることによって実行される場合と同様に、d×2scaleFactorを丸めて返します |
|
引数の符号をdouble値として返します |
|
値のサインを返します |
|
値のサイン・ハイパーボリックを返します |
|
値の平方根を返します |
|
integerの引数の階乗の自然対数(底はe)のスターリングの近似の修正項をdoubleとして返します |
|
値のタンジェントを返します |
|
値のタンジェント・ハイパーボリックを返します |
|
引数の値をdegreeに変換します |
|
ラジアンで表した角度の計測値を返します |
|
引数のulpのサイズを返します |
統計関数とは
統計関数は、様々な値の統計を計算する場合に役立ちます。
このリリースでは、次の統計関数がサポートされています。
関数名 | 説明 |
---|---|
|
ベータ密度関数で示す領域(0から |
|
ベータ密度関数の右側の尾で示す領域( |
|
二項確率密度の項0から項 |
|
二項確率密度の項 |
|
自由度が |
|
自由度が |
|
正規分布の誤差関数を返します |
|
正規分布の相補誤差関数を返します |
|
引数のガンマ関数を返します |
|
ガンマ確率密度関数の積分( |
|
0から |
|
不完全ガンマ関数を返します |
|
相補不完全ガンマ関数を返します |
|
ガンマ関数の自然対数を返します |
|
負の二項分布の項0から項 |
|
負の二項分布の項 |
|
負の無限大から |
|
正規(ガウス)確率密度関数で示す領域が引数 |
|
ポアソン分布の初項 |
|
ポアソン分布の項 |
|
自由度が |
|
スチューデントt確率密度関数で示す領域が |
文字列関数とは
このリリースでは、次の文字列関数がサポートされています。
関数名 | 説明 |
---|---|
|
リスト内の最初の非NULL式を返します。すべての式がNULLに評価されると、COALESCEはNULLを返します |
|
連結した値を文字列に変換して返します |
|
|
|
指定されたテキスト式の各語の先頭を大文字、それ以外を小文字として返します |
|
指定された文字列の長さを返します |
|
一致パターンを返します |
|
指定された文字列を小文字に変換します |
|
文字列の左側を特定の文字セットで埋めます( |
|
文字列の左側から、指定されたすべての文字を削除します |
|
|
|
文字列の右側を特定の文字セットで埋めます( |
|
文字列の右側から、指定されたすべての文字を削除します |
|
索引が'from' (値を含む)と文字列末尾の間にある場合、'string'の部分文字列を返します |
|
索引が\'from\' (値を含む)と\'to\' (値を含まない)の間にある場合、\'string\'の部分文字列を返します |
|
文字列内の一連の文字を、別の文字のセットで置き換えます。ただし、一度に1文字を置き換えます。 |
|
指定された文字列を大文字に変換します |