2 Oracle Stream Analyticsの操作
Oracle Stream Analyticsには、接続、参照、ストリーム、ターゲット、キューブ、ダッシュボード、予測モデル、カスタムJARなど、様々なアーティファクトがあります。アーティファクトは、パイプラインを作成するために使用する重要なリソースです。
ホームページ
ホームページは、Oracle Stream Analyticsにログインしたときに最初に表示されるページです。Oracle Stream Analyticsでサポートされている業種が、このページにリストされています。
各業種にはそれに関連付けられたタグがあり、タグでは大文字と小文字が区別されます。
-
IOT用の分散インテリジェンス - エッジとデータ・センター両方のセンサーとデバイスからの大量の高速データをリアルタイムで取得、分析し、それに対処します。この業種のタグは、IOTです。
-
リスクと不正の管理 - 業界最高のストリーム処理プラットフォームを活用して、リアルタイムでリスクを評価し、金融詐欺を防止します。この業種のタグは、riskです。
-
運送と物流 - ストリーミング・データをOracleの先進の空間機能と結びつけることによって、車両を管理し、アセットを追跡し、サプライ・チェーンの効率を改善します。この業種のタグは、transportationです。
-
顧客の経験と消費者の分析 - リアルタイムで顧客感情を理解して、混乱を軽減し、忠実度を高め、オファーを届け、顧客を引きつけます。この業種のタグは、customerです。
-
電気通信 - プロアクティブにネットワークをモニターし、ネットワーク障害を予測して、分散型サービス拒否タイプの攻撃を防止します。この業種のタグは、telecomです。
-
小売業 - その時点の小売購買傾向を理解および適用し、有効な品質保持期限パターンと配置を調査し、顧客カートの使用に応答し、先進の自動販売機と相互作用します。この業種のタグは、retailです。
ホームページを次に示します。
ホームページから「カタログ」または「パターン」ページに移動して、Oracle Stream Analyticsでの作業を開始できます。
カタログについて
「カタログ」ページは、パイプライン、ストリーム、参照、マップ、接続、ターゲット、ダッシュボード、予測モデル、カスタムJAR、ビジュアライゼーション、キューブなどのリソースがリストされる場所です。これは、Oracle Stream Analyticsのあらゆるタスクを実行するための場所です。
スター・アイコンをクリックして、リソースをカタログでお気に入りとしてマークできます。アイコンを再度クリックして、お気に入りからします。お気に入りアイコン右のメニュー・アイコンを使用して、リソースの削除あるいはトポロジの表示が可能です。
カタログで項目に適用されたタグは、左側のナビゲーション・ペイン下の画面にもリスト表示されます。これらのタグのいずれかをクリックすると、カタログのそのタグの付いた項目のみを表示できます。画面上部にタグが表示されます。画面上の「すべてクリア」をクリックし、カタログをクリアしてすべての項目を表示します。
パイプライン、ストリーム、参照、予測モデル、ジオフェンス、接続、ターゲット、カスタムJAR、ビジュアライゼーション、ダッシュボードおよびキューブを含めたり除外したりするには、「表示」の下にある左側のパネルの「すべて表示」リンクを使用します。「すべて表示」をクリックすると、隣にチェック・マークが表示され、すべてのコンポーネントがカタログに表示されます。
いくつかの選択した項目のみをカタログに表示するには、「すべて表示」の選択を解除し、個別にコンポーネントを選択します。選択されたコンポーネントのみがカタログ内に表示されます。
Oracle Stream Analyticsを管理するための典型的なワークフロー
典型的なワークフローには、Oracle Stream Analyticsのパイプラインを作成するために必要なアーティファクトがリストされます。
パイプラインの前提条件は次のとおりです。
-
ストリームを作成するためには接続が必要です(ファイル・ストリームを除く)。
-
パイプラインを作成するためにはストリームが必要です。
Coherenceのキャッシュ構成
Oracle Stream Analyticsでは、Coherenceに接続するために、特別なCoherenceキャッシュ構成とプロキシ・スキーマが必要です。
外部Coherenceクラスタ参照データでストリーム・データを拡張するには、拡張クライアントAPIを使用して外部Coherenceクラスタにアクセスする必要があります。クライアントとして外部クラスタにアクセスするには、cache-config
をExtendTcpCacheService
およびExtendTcpInvocationService
で構成する必要があります。
Coherenceクラスタの構成
Coherence for Javaがインストールされていることを確認します。
クライアントとして外部クラスタを構成するには:
-
cache-config.xml
という名前のXMLファイルを作成します。 -
このファイルに次のXMLをコピーします。
<?xml version="1.0"?> <cache-config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.oracle.com/coherence/coherence-cache-config" xsi:schemaLocation="http://xmlns.oracle.com/coherence/coherence-cache-config coherence-cache-config.xsd"> <caching-scheme-mapping> <cache-mapping> <cache-name> externalcache* </cache-name> <schema-name> remote </schema-name> </cahce-mapping> </caching-scheme-mapping> <caching-schemes> <remote-cache-scheme> <scheme-name> remote </scheme-name> <service-name> ExtendTcpCacheService </service-name> <initiator-config> <tcp-initiator> <remote-addresses> <socket-address> <address>localhost </address> <port>9099</port> </socket-address> </remote-addresses> </tcp-initiator> <outgoing-message-handler> <request-timeout>5s</request-timeout> </outgoing-message-handler> </initiator-config> </remote-cache-scheme> <remote-invocation-scheme> <scheme-name>extend-invocation</scheme-name> <service-name>ExtendTcpInvocationService</service-name> <initiator-config> <tcp-initiator> <remote-addresses> <socket-address> <address>localhost</address> <port>9099</port> </socket-address> </remote-addresses> </tcp-initiator> <outgoing-message-handler> <request-timeout>5s</request-timeout> </outgoing-message-handler> </initiator-config> </remote-invocation-scheme> </caching-schemes> </cache-config>
-
保存してファイルを閉じます。
-
クラスタへの接続をテストします。
InvocationService service = (InvocationService) CacheFactory.getConfigurableCacheFactory().ensureService("ExtendTcpInvocationService");
指定されたホストとポートでCoherenceクラスタが使用できない場合、
ensureService()
によって例外がスローされます。 -
Coherence接続を使用してCoherence参照を作成します。
-
Coherenceを参照として登録します。
次に、Coherenceを参照として登録するためのサンプル・コードを示します。
override def initialize():Unit = {
repartition = true
val externalEvent = EventType("externalorders",IntAttr("orderId"), VarCharAttr("orderDesc", 20))
val sExtSrcProps = Map(EXT_URL -> "",EXT_ENTITY_NAME -> "externalcache")
val jExtSrcProps = new java.util.HashMap[String,String](sExtSrcProps)
val converter = ConverterFactory(ConverterType.COHERENCE,externalEvent)
cc.registerEventType(externalEvent)
cc.registerRelation(externalEvent).onExternal(jExtSrcProps,ExtSourceType.COHERENCE,converter)
}
def main(args: Array[String]) {
cql = "istream(select R.orderId as orderId, R.orderStatus as orderStatus, Ext.orderDesc as orderDesc from orders[now] as R, externalorders as Ext where R.orderId = Ext.orderId)"
name = "CoherenceCorrelation"
processOrders(args)
}
}
// EXT_URL is not used for coherence as reference , currently used for webservice & database, so this will be set to EMPTY
//EXT_ENTITY_NAME is the cache name of the external coherence cluster
前述の例で、Coherenceキャッシュは、orderId <Integer>
というキーと、orderIdおよびorderDescの値のマップ
という値を持っている必要があります。次のようなサンプル・キャッシュが移入されます。
NamedCache cache = CacheFactory.getCache("externalcache");
Map<String,Object> order1 = new HashMap<String, Object>();
order1.put("orderId", new Integer(1));
order1.put("orderDesc", "HP Deskjet v2");
Map<String,Object> order2 = new HashMap<String, Object>();
order2.put("orderId", new Integer(2));
order2.put("orderDesc", "Oracle Database 12");
MapString,Object> order3 = new HashMap<String, Object>();
order3.put("orderId", new Integer(3));
order3.put("orderDesc", "Apple iPhone6s");
Map<String,Object> order4 = new HashMap<String, Object>();
order4.put("orderId", new Integer(4));
order4.put("orderDesc", "Logitech Mouse");
cache.put(1,order1);
cache.put(2,order2);
cache.put(3,order3);
cache.put(4,order4);
ストリームの作成
ストリームは、指定されたコンテンツ(形状)を持つイベントのソースです。
ストリームを作成する手順:
-
「カタログ」に移動します。
-
「新規アイテムの作成」メニューの「ストリーム」を選択します。
-
「タイプ・プロパティ」ページで次のフィールドに詳細を指定し、「次」をクリックします。
-
名前 — ストリームの名前
-
説明 — ストリームの説明
-
タグ — ストリームに使用するタグ
-
ストリーム・タイプ — 適切なストリーム・タイプを選択します。サポートされるタイプは、「ファイル」、「GoldenGate」、「JMS」および「Kafka」です。
-
-
「ソースの詳細」ページで次のフィールドに詳細を指定し、「次」をクリックします。
ストリーム・タイプが「ファイル」の場合:
-
ファイル・パスまたはURL — アップロードするファイルの場所
-
コンテンツ全体の読取り — ファイルのコンテンツ全体を読み取る場合、このオプションを選択します
-
バッチ当たりのイベント数 — バッチごとに処理するイベントの数
-
ループ — ループでファイルを処理する場合、このオプションを選択します
-
データ・フォーマット — データのフォーマット。サポートされるタイプは、「CSV」および「JSON」です。
ストリーム・タイプが「GoldenGate」の場合:
-
接続 — ストリームの接続
-
トピック名 — 分析するイベントを受信するトピック名
-
データ・フォーマット — データのフォーマット。サポートされるタイプは、「CSV」、「JSON」および「AVRO」です。AVROは、データ・シリアライズ・システムです。
ストリーム・タイプが「JMS」の場合:
-
接続 — ストリームの接続
-
JNDI名 — トピック、分散トピック、キューおよび分散キューからメッセージを読み取るJNDI
-
クライアントID — 永続サブスクライバに使用するクライアント
-
メッセージ・セレクタ — メッセージをフィルタするためのメッセージ・セレクタ。メッセージ・アプリケーションで受信したメッセージをフィルタする必要がある場合、JMS APIメッセージ・セレクタを使用すると、メッセージ・コンシューマによって、関心のあるメッセージを指定できます。メッセージ・セレクタは、メッセージのフィルタ作業を、アプリケーションではなくJMSプロバイダに割り当てます。
メッセージ・セレクタは、式を含む
String
です。式の構文は、SQL92の条件式構文のサブセットに基づきます。次の例のメッセージ・セレクタは、値が'Sports'
または'Opinion'
に設定されたNewsType
プロパティを含むすべてのメッセージを選択します。NewsType = ���Sports��� OR NewsType = ���Opinion���
createConsumer
およびcreateDurableSubscriber
メソッドによって、メッセージ・コンシューマの作成時に引数としてメッセージ・セレクタを指定できます。 -
サブスクリプションID — 永続セレクタのサブスクリプションID
-
データ・フォーマット — データのフォーマット。サポートされるタイプは、「CSV」、「JSON」、「AVRO」および「MapMessage」です。MapMessageは、JNDIベースのストリームでのみサポートされます。
MapMessageオブジェクトは、名前/値ペアのセットを送信する際に使用されます。名前はStringオブジェクトで、値はJavaプログラミング言語のプリミティブ・データ型です。名前には必ず値が必要であり、値をnullや空の文字列にすることはできません。このエントリには、名前を指定して順次的またはランダムにアクセスできます。エントリの順序は定義されません。
ストリーム・タイプが「Kafka」の場合:
-
接続 — ストリームの接続
-
トピック名 — 分析するイベントを受信するトピック名
-
データ・フォーマット — ストリーム内のデータのフォーマット。サポートされるタイプは、「CSV」、「JSON」および「AVRO」です。
-
-
「形状」ページで形状を定義するいずれかのメカニズムを選択します。
-
形状の推測 — 入力データ・ストリームから自動的に形状を検出します。
Kafka、JSONスキーマ・ファイルまたはCSVメッセージ/データ・ファイルから形状を推測できます。自動検出された形状を保存して、後で使用することもできます。
-
既存の形状の選択 — ドロップダウン・リストから既存の形状を1つ選択します。
-
手動形状 — 既存のフィールドが移入され、形状から列を追加または削除できます。フィールドのデータ型を更新することもできます。
-
指定した詳細に基づいてストリームが作成されます。
事前定義済フォーマット用のCSVデータ
データ・フォーマットがCSVの場合、それらのCSVの初期ソースに応じて異なるCSVデータのバリエーションに基づいて、事前定義済フォーマットを選択します。次の表では、これらの各事前定義済フォーマットのCSVデータについて説明します。
CSVの事前定義済フォーマット | 説明 |
---|---|
|
標準のカンマ区切りフォーマットで、 |
|
Excelファイル・フォーマット(値のデリミタとしてカンマを使用)。 |
|
|
|
|
|
|
|
|
|
|
|
タブ区切りフォーマット |
JMSソースの機能
次の表に、JMSソースの機能をリストします。
機能 | 説明 | コメント |
---|---|---|
JMSクラスタへの接続機能 |
JMSコンシューマは、JMSクラスタに接続してJMSサーバーのフェイルオーバーを処理できる必要があります |
|
メッセージ・フォーマットのサポート |
MapおよびTextMessage (JSON、CSVおよびAVRO) |
xmlおよびオブジェクトはサポートされません |
メッセージ・セレクタ |
メッセージのフィルタ処理に使用されるJMSメッセージ・セレクタ。セレクタと一致するメッセージだけがイベントを生成します。 |
|
再接続 |
JMSサーバーまたはJMSクラスタに再接続します |
|
キュー/分散キューからのメッセージの読取り |
|
|
トピックからのメッセージの読取り |
JMSトピックからメッセージを読み取ります。デフォルトでは、サブスクライバは非永続です |
|
永続サブスクライバのサポート |
永続サブスクライバは、JMSプロバイダによって保持される一意のIDを指定することで、永続サブスクリプションを登録します。 コンシューマがJMSトピックに再接続すると、最後に読み取った場所からメッセージを読み取ります。 |
|
T3サポート |
Weblogic JMSプロトコル |
|
JMSサーバーのクリーンアップ
JMSストリームを作成し、(クライアントIDとサブスクリプションIDの値を指定して)永続サブスクリプション・オプションを選択すると、Oracle Stream Analyticsによって、そのストリームを使用するパイプラインの実行時に永続サブスクリプションが作成されます(まだ存在しない場合)。パイプラインから脱したり、パイプラインをアンパブリッシュ(または実行中のパイプラインを中断)しても、永続サブスクリプションはJMSサーバーに残ります。このパイプラインを今後パブリッシュする予定がなければ、JMSサーバーから永続サブスクリプションを削除して、リソースをクリーンアップすることをお薦めします。
参照の作成
参照は、ストリームを拡張するための参照データの読取り専用ソースを定義します。顧客名を含むストリームでは、顧客データを含む参照を使用して、顧客名を使用した検索を行うことでストリームに顧客の住所を追加できます。
データベース参照は、データベース内の指定した表に対する参照です。データベース参照に対応したキャッシュでは、データベースから値が取得されると、それらは参照用のCoherenceキャッシュに維持され、次のリクエストではその場所から提供されます。データベース参照では、データベース接続が必要です。
Coherence参照は、外部システムからのデータを保持できるCoherenceクラスタで定義された任意の外部キャッシュです。
参照を作成するには:
-
「カタログ」に移動します。
-
「新規アイテムの作成」メニューの「参照」を選択します。
-
「タイプ・プロパティ」ページで次のフィールドに詳細を指定し、「次」をクリックします。
-
名前 — 参照の名前
-
説明 — 参照の説明
-
タグ — 参照に使用するタグ
-
参照タイプ — 参照の参照タイプ。サポートされる参照タイプは、「Coherence」および「データベース」です。
-
-
「ソースの詳細」ページで次のフィールドに詳細を指定し、「次」をクリックします。
参照タイプが「Coherence」の場合、次の設定に適切な値を入力または選択します。
-
接続 — Coherence参照の接続
-
キャッシュ名 — パフォーマンスを向上するためにキャッシングを有効化するキャッシュの名前(ただし、Sparkアプリケーションのメモリー使用量は増大します)。キャッシングは、単一の等価結合条件でのみサポートされます。キャッシュが更新されると、アプリケーションは、更新されたデータを迅速に受信します。
Coherence参照は、キー/値ペアでデータを保持します。キーはオブジェクト・タイプで、値は
Map<String,Object>
です。Map<String,Object>
は、属性の名前と値のマップで、属性リストは外部イベント・タイプと一致する必要があります。このリリースでは、キーと値の外部スキーマのみがサポートされます。参照タイプが「データベース表」の場合、次の設定に適切な値を入力または選択します。
-
接続 — データベース参照の接続
-
キャッシング有効化 — キャッシングを有効化する場合、このオプションを選択します
-
失効遅延 — キャッシュで保持されているエントリが最後に更新されてから期限切れとマークされるまでの時間。期限切れのエントリを読み取るには、構成済のキャッシュ・ストアからエントリをリロードすることになります。このフィールドは、キャッシングが有効な場合にのみ有効化されます。
-
-
「形状」ページで次のフィールドに詳細を指定し、「保存」をクリックします。
参照タイプが「Coherence」の場合:
-
既存の形状の選択 — 参照に使用する形状を選択します
注意:
列名としてどのCQL予約語も使用していないことを確認してください。予約キーワードを使用すると、パイプラインをデプロイできません。 -
手動形状 — 独自の形状を定義する場合、このオプションを選択します
注意:
Coherenceデータをロードする場合、必ず数値型の精度とスケールを含めてください。結合が動作するのは、これらの値が指定されている場合のみです。次に例を示します。NamedCache cache = CacheFactory.getCache("externalcachetimestamp"); java.math.BigDecimal big10 = new java.math.BigDecimal("10",new MathContext(58)).setScale(56, RoundingMode.HALF_UP); Map<String,Object> order1 = new HashMap<String, Object>(); order1.put("strValue", "Test"); order1.put("intervalValue", "+000000002 03:04:11.330000000"); order1.put("orderTag", big10); cache.put(big10,order1);
参照タイプが「データベース表」の場合:
-
形状名 — 参照に使用する形状を選択します
-
表データのデータ型がサポートされない場合、表の列に自動生成のデータ型は含まれません。次のデータ型のみサポートされます。
-
numeric
-
interval day to second
-
text
-
timestamp
(タイムゾーンなし) -
date time
(タイムゾーンなし)注意:
date
列は、timestamp
にマップできません。これは、現在のリリースの制限です。
指定した詳細に基づいて参照が作成されます。
参照としてのCoherenceの制限
参照としてのCoherenceには、いくつかの制限があります。
-
接続をテストできません
-
キャッシュ名を手動で指定する必要があります
-
Coherence参照との相関の確立中は、等号演算子のみ使用できます
-
手動形状を使用する必要があります
ダッシュボードの作成
ダッシュボードは、ビジュアライゼーションなどの様々なメトリックに基づいてパイプラインに関連するデータを参照および分析する際に役立つ視覚化ツールです。ダッシュボードには、キューブから作成されたビジュアライゼーションを含めることもできます。
ダッシュボードは、分析機能です。Oracle Stream Analyticsでダッシュボードを作成し、迅速にメトリックを参照できます。
ダッシュボードを作成するには:ダッシュボードを作成しても、最初は空のダッシュボードです。ダッシュボードにビジュアライゼーションを追加する必要があります。
ダッシュボードの編集
ダッシュボードを編集するには:
-
カタログで必要なダッシュボードをクリックします。
ダッシュボード・エディタにダッシュボードが開かれます。
-
新規ビジュアライゼーションの追加アイコンをクリックし、既存のビジュアライゼーションのリストを表示します。パイプラインおよびキューブ探索からのビジュアライゼーションがここに表示されます。リストを検索し、1つ以上のビジュアライゼーションを選択してダッシュボードに追加します。
-
リフレッシュ間隔の指定アイコンをクリックし、ダッシュボードのリフレッシュ頻度を選択します。これは、キューブ・ベースのビジュアライゼーションにのみ適用され、パイプラインから作成されたストリーミング・チャートには適用されません。
これは単にクライアント側の設定で、スーパーセット・バージョン
0.17.0
では維持されません。 -
ダッシュボードへのCSSの適用アイコンをクリックし、CSSを選択します。ライブ・エディタでCSSを編集することもできます。
アクティブ・ダッシュボード・フィルタ・アイコンをクリックして、ダッシュボードに適用されたアクティブ・フィルタを表示することもできます。「クリップボードにリンクをコピー」アイコンを使用してダッシュボードにリンクを保存したり、「リンクを電子メール送信」アイコンを使用して別のユーザーにリンクを電子メールで送信することができます。
-
「保存」アイコンをクリックし、ダッシュボードに追加した変更を保存します。
-
追加したビジュアライゼーションの上にカーソルを移動し、チャートの探索アイコンをクリックしてビジュアライゼーションのチャート・エディタを開きます。
ビジュアライゼーションのメタデータを表示できます。チャートをキャンバス内で移動したり、リフレッシュしたり、ダッシュボードから削除することもできます。
キューブ探索は、次のように表示されます。
時間の粒度、グループ化、表のタイムスタンプ・フォーマット、行制限、フィルタ、結果フィルタなどの様々なオプションによって、ダッシュボードに粒度と詳細を追加します。
-
「別名保存」をクリックし、ダッシュボードに次の変更を追加します。
-
ビジュアライゼーションを上書きします
-
別の名前で現在のビジュアライゼーションを上書きします
-
既存のダッシュボードにビジュアライゼーションを追加します
-
新しいダッシュボードにビジュアライゼーションを追加します
-
キューブの作成
キューブは、複数のディメンションでビジネス上の問題に関連するデータを迅速に分析する際に役立つデータ構造です。
キューブを作成するには、次の手順を実行します。
ターゲットの作成
ターゲットは、パイプラインからの出力データの宛先を定義します。
ターゲットを作成するには:
-
「カタログ」に移動します。
-
「新規アイテムの作成」メニューの「ターゲット」を選択します。
-
「タイプ・プロパティ」ページで次のフィールドに詳細を指定し、「保存」および「次」をクリックします。
-
名前 — ターゲットの名前
-
説明 — ターゲットの説明
-
タグ — ターゲットに使用するタグ
-
ターゲット・タイプ — ターゲットのトランスポート・タイプ。サポートされるタイプは、「JMS」、「Kafka」および「REST」です。ターゲットは、出力イベントのシンクです。ターゲットの各タイプは、異なるシンク・システムであるため、異なるタイプには異なる構成パラメータが必要です。
-
-
「ターゲットの詳細」ページで次のフィールドに詳細を指定し、「次」をクリックします。
ターゲット・タイプが「JMS」の場合:
-
接続 — ターゲットの接続
-
JNDI名 — ターゲットで使用するJNDIで定義されたトピック名またはキュー名
-
データ・フォーマット — 適切なデータ・フォーマットを選択します。これは必須フィールドです。サポートされるデータ・フォーマット・タイプは、「CSV」および「JSON」です。
ターゲット・タイプが「Kafka」の場合:
-
接続 — ターゲットの接続
-
トピック名 — ターゲットで使用するKafkaトピック
-
データ・フォーマット — 適切なデータ・フォーマットを選択します。これは必須フィールドです。サポートされるデータ・フォーマット・タイプは、「CSV」および「JSON」です。
ターゲット・タイプが「REST」の場合:
-
URL — RESTサービスURLを入力します。これは必須フィールドです。
-
カスタムHTTPヘッダー — HTTPのカスタム・ヘッダーを設定します。これはオプションのフィールドです。
-
バッチ処理 — 1つずつではなく、バッチでイベントを送信するには、このオプションを選択します。高スループットのパイプラインでは、このオプションを有効にしてください。これはオプションのフィールドです。
-
データ・フォーマット — 適切なデータ・フォーマットを選択します。これは必須フィールドです。
「接続のテスト」をクリックし、接続が正常に確立されたかどうかを確認します。
RESTターゲットのテストは、ヒューリスティック・プロセスです。それは、プロキシ設定を使用します。テスト・プロセスでは、GETリクエストを使用して特定のURLにpingを送信し、サーバーから
OK (ステータス・コード200)
が返された場合、成功が返されます。返却コンテンツのタイプは、application/json
です。 -
-
「データ・フォーマット」ページで次のフィールドに詳細を指定し、「次」をクリックします。
データ・フォーマット・タイプが「CSV」の場合:
-
CSVの事前定義済フォーマット — 事前定義済のCSVフォーマットを選択します。サポートされるフォーマットは、Excel、InfomixUnload、InfomixUnloadCsv、MySQL、PostgreSQLCsv、PostgreSQLTextです。
-
ヘッダー行の作成 — ターゲットのヘッダー行を作成する場合、このオプションを選択します。
データ・フォーマット・タイプが「JSON」の場合:
-
ネストされたJSONオブジェクトの作成 — ネストされたJSONオブジェクトをターゲット用に作成する場合、このオプションを選択します
-
-
「形状」ページで形状を定義するいずれかのメカニズムを選択し、「保存」をクリックします。
-
既存の形状の選択では、ドロップダウン・リストから既存の形状を1つ選択します。
-
手動形状では、既存のフィールドが移入され、形状から列を追加または削除できます。フィールドのデータ型を更新することもできます。
-
指定した詳細に基づいてターゲットが作成されます。
パイプライン・エディタからのターゲットの作成
別の方法として、パイプライン・エディタからターゲットを作成することもできます。ターゲット・ステージで「作成」をクリックすると、「ターゲットの作成」ダイアログ・ボックスに移動します。必要なすべての詳細を指定して、ターゲット作成プロセスを完了します。パイプライン・エディタからターゲットを作成する場合、形状には、最終ステージからの形状が事前に移入されます。
ジオフェンスの作成
ジオフェンスは、さらに手動ジオフェンスとデータベース・ベース・ジオフェンスという2つのカテゴリに分類されます。
手動ジオフェンスの作成
手動ジオフェンスを作成するには:
-
「カタログ」ページに移動します。
-
「新規アイテムの作成」をクリックし、ドロップダウン・リストからジオフェンスを選択します。
ジオフェンスの作成ダイアログが開きます。
-
ジオフェンスの適切な名前を入力します。
-
「タイプ」として手動作成ジオフェンスを選択します。
-
「保存」をクリックします。
ジオフェンス・エディタが開きます。このエディタで、各自の要件に応じてジオフェンスを作成できます。
-
ジオフェンス・エディタ内で、画面の左上にあるツールバーのズーム・アイコンを使用して、必要な領域にズーム・インまたはズーム・アウトして移動します。
マーキー・ズーム・ツールを使用して、マップの特定の領域をズームすることもできます。マーキー・ズームを使用して領域をマークすると、マップ内のその領域がズームされます。
-
「多角形ツール」をクリックし、地域を囲む領域をマークしてジオフェンスを作成します。
-
名前と説明を入力し、「保存」をクリックして変更を保存します。
手動ジオフェンスの更新
手動ジオフェンスを更新するには:
-
「カタログ」ページに移動します。
-
更新するジオフェンスの名前をクリックします。
ジオフェンス・エディタが開きます。ここでジオフェンスを編集または更新できます。
手動ジオフェンス内の検索
国や地域または住所に基づいてジオフェンスを検索できます。検索フィールドで、国の使用可能なリスト内を検索できます。ジオフェンスの左側中央にある検索結果タイルをクリックして結果を選択すると、その特定の領域に自動的にズーム・インできます。
手動ジオフェンスの削除
手動ジオフェンスを削除するには:
-
「カタログ」ページに移動します。
-
「アクション」をクリックし、「アイテムの削除」を選択して、選択したジオフェンスを削除します。
データベース・ベース・ジオフェンスの作成
データベース・ベース・ジオフェンスを作成するには:
-
「カタログ」ページに移動します。
-
「新規アイテムの作成」をクリックし、ドロップダウン・リストからジオフェンスを選択します。
ジオフェンスの作成ダイアログが開きます。
-
ジオフェンスの適切な名前を入力します。
-
「タイプ」としてデータベースからジオフェンスを選択します。
-
「次」をクリックし、「接続」を選択します。
-
「次」をクリックします。
フィールド・タイプが
SDO_GEOMETRY
のすべての表が、ドロップダウン・リストに表示されます。 -
形状を定義するのに必要な表を選択します。
-
「保存」をクリックします。
注意:
データベース・ベース・ジオフェンスは編集または更新できません。データベース・ベース・ジオフェンスの削除
データベース・ベース・ジオフェンスを削除するには:
-
「カタログ」ページに移動します。
-
「アクション」をクリックし、「アイテムの削除」を選択して、選択したジオフェンスを削除します。
タイル層を使用したマップの表示
タイル層は、直接的な地理コンテキストを提供するベース・マップです。タイルは、マップ・タイル・サーバーに格納されます。<ph ishcondition="Product_Family=Cloud" varref="streaming">Stream Analytics</ph><ph ishcondition="Product_Family=OnPremise" varref="osa">Oracle Stream Analytics</ph>によって、タイル層の2つのタイプがサポートされます。Open Street Mapsタイル層は、無料のマップです。また、Elocationタイル層は、Oracleタイル層です。これらのタイル層には、次の項目に関連する大量のデータが含まれます。
-
道路、鉄道、水路など
-
レストラン、商店、駅、ATMなど
-
徒歩およびサイクリングの経路
-
建物、キャンパスなど
Elocationタイル層またはOpen Street Mapsタイル層のどちらでマップを表示するかを選択できます。プリファレンスを設定するには:
-
画面の右上隅のユーザー名をクリックします。
-
「プリファレンス」をクリックします。「プリファレンス」ページが開きます。
-
「マップ」をクリックします。
-
タイル層で、ドロップダウン・リストからOpen Street Mapsタイル層オプションを選択します。
-
「保存」をクリックします。マップは次のようになります。
-
Elocationタイル層でマップを表示するには、手順1から3を実行します。
-
タイル層ドロップダウン・リストから、Elocationタイル層を選択します。
-
「保存」をクリックします。マップは次のようになります。
カスタムJARの作成
カスタムJARは、パイプライン内で使用できるカスタム・ステージ・タイプまたはカスタム関数のためのJavaクラスを格納したユーザー指定のJarアーカイブです。
パイプラインの作成
パイプラインは、ビジネス・ロジックを実装するSparkアプリケーションです。これには、問合せステージ、パターン・ステージ、ビジネス・ルール・ステージ、問合せグループ・ステージ、カスタム・ステージなどの複数のステージを含めることができます。
パイプラインを作成するには:
-
「カタログ」に移動します。
-
「新規アイテムの作成」メニューの「パイプライン」を選択します。
-
次のフィールドに詳細を指定し、「保存」をクリックします。
-
名前 — パイプラインの名前
-
説明 — パイプラインの説明
-
タグ — パイプラインに使用するタグ
-
ストリーム — パイプラインに使用するストリーム
-
指定した詳細に基づいてパイプラインが作成されます。
パイプラインの構成
様々なステージ(問合せ、パターン、ルール、問合せグループ、スコアリング、カスタムJARからのカスタム・ステージなど)を使用するためにパイプラインを構成できます。
パイプライン・エディタ
パイプラインを編集または更新したり、パイプラインに様々なステージを追加する場所となるキャンバスは、パイプライン・エディタと呼ばれます。
Oracle Stream Analyticsのパイプラインは、非常に単純なものから高度に複雑なものまで、多岐にわたります。複雑なパイプラインには、パイプラインの任意のステージから分岐した様々なステージがあります。つまり、任意のタイプのステージを、パイプラインの既存のどのステージにも追加できます。
子が含まれていないステージは、パイプラインを破損せずに削除できます。パイプラインの拡張または縮小、パイプライン・レイアウトの垂直方向または水平方向への切替え、パイプラインのズーム・インまたはズーム・アウトが可能です。サイズ変更矢印を使用して、パイプライン・ペイン、エディタ・ペインおよびライブ出力表ペインを調整できます。
図expand_collapse_pipeline.pngの説明
パイプライン・エディタでは、パイプラインの様々なステージ間の関係と依存関係を参照できます。
ライブ出力表の操作
パイプラインのストリーミング・データは、ライブ出力表に表示されます。
列の非表示/再表示
ライブ出力表で、列を右クリックして「非表示」をクリックすると、出力でその列が非表示になります。非表示の列を再表示するには、「列」をクリックしてから目のアイコンをクリックすると、出力で列が表示されます。
列の選択/選択解除
出力表の一番上にある「列」リンクをクリックすると、使用可能なすべての列が表示されます。矢印アイコンを使用して、個々の列またはすべての列を選択または選択解除します。出力表には、選択した列のみが表示されます。
表の一時停止/再開
「一時停止/再開」をクリックすると、出力表のストリーミング・データを一時停止または再開できます。
列ヘッダーに対する操作の実行
任意の列ヘッダーを右クリックして、次の操作を実行します。
-
非表示 — 出力表の列を非表示にします。「列」リンクをクリックして、非表示の列を再表示します。
-
出力から削除 — 出力表から列を削除します。「列」リンクをクリックして、出力表に含める列を選択します。
-
名前変更 — 列名を指定した名前に変更します。
-
関数 — 組込み関数を通じて様々な操作を実行できる式ビルダーに列を取り込みます。
タイムスタンプの追加
出力表の時計アイコンをクリックして、ライブ出力表にタイムスタンプを含めます。
列の並替え
出力表の列ヘッダーをクリックして右または左にドラッグし、列を並べ替えます。
問合せステージの追加
コーディングをせずにデータ・ストリームに対する単純または複雑な問合せを含め、調整された結果を出力に取得できます。
- パイプライン・エディタでパイプラインを開きます。
- 問合せステージを追加する直前のステージを右クリックし、「ステージの追加」をクリックして「問合せ」を選択します。
- 問合せステージの「名前」と「説明」を入力します。
- 「保存」をクリックします。
式ビルダーの使用
式ビルダーの組込み関数を使用して、パイプラインのデータ・ストリーミングに対して計算を実行できます。
Oracle Stream Analyticsでは、様々な関数がサポートされます。サポートされる関数のリストは、「式ビルダー関数の理解」を参照してください。
注意:
現在のところ、式は、問合せステージ内でのみ使用できます。定数値列の追加
定数値は、単純な文字列または数値です。定数値に対して計算は実行されません。式ビルダーに定数値を直接入力して、ライブ出力表に追加します。
関数の使用
使用可能な関数のリストからCQL関数を選択し、入力パラメータを選択できます。式は、=で始める必要があります。「適用」をクリックしてストリーミング・データに関数を適用します。
パイプラインにカスタムJARを追加またはインポートする場合、使用可能な関数のリストでカスタム関数を参照できます。
ビジュアライゼーションの追加
ビジュアライゼーションは、パイプラインのストリーミング・データのグラフィカル表現です。ターゲット・ステージを除くパイプラインのすべてのステージにビジュアライゼーションを追加できます。
ビジュアライゼーションの作成 - 面のビジュアライゼーション
面のビジュアライゼーションは、データを塗りつぶされた面として表します。面のビジュアライゼーションでは、1つの軸上に最低2グループのデータが必要です。X軸は日時フィールドなどの単一の連続するディメンションで、データの線は通常は交差しません。Y軸は、メトリック(測定された値)を表します。X軸は、日時以外のカテゴリになることもあります。このビジュアライゼーションは、経時的な累積値の変化を表すことに特に向いています。
ビジュアライゼーションの作成 - 棒のビジュアライゼーション
棒のビジュアライゼーションは、データを一連の縦棒として表す、一般的によく使用されるビジュアライゼーション・タイプの1つです。これは、異なるカテゴリがX軸に沿って並べられた状態で、Y軸に沿って示された値を比較する場合に特に向いています。棒のビジュアライゼーションの垂直列は、メトリック(測定された値)を表します。横軸には、複数または非連続のカテゴリが表示されます。
ビジュアライゼーションの作成 - バブルのビジュアライゼーション
バブル・チャートは、散布図に別のディメンションを追加する場合の優れたオプションです。散布図では2つの値が比較されますが、バブル・チャートでは3番目の変数としてバブル・サイズを追加できるため、比較が可能になります。バブル・チャートを使用する適切な例として、マーケティング費用と収益と利益を比較して示すことができます。
ビジュアライゼーションの作成 - 地理空間のビジュアライゼーション
地理空間のビジュアライゼーションでは、ジオフェンスにオブジェクトの場所を表示し、イベントが発生している領域にユーザーを移動させることができます。ユーザーは、ビジュアライゼーションを構成して、緯度、経度、識別子などを指定できます。特定の条件に基づいて異なる色で矢印などの異なるピンを指定して、ビジュアライゼーションをカスタマイズすることもできます。
ビジュアライゼーションの作成 - 線のビジュアライゼーション
線のビジュアライゼーションは、データを線、一連のデータ・ポイントまたは線で結ばれたデータ・ポイントとして表します。線のビジュアライゼーションには、グループ内のメンバーごとに最低2つのポイントを表すデータが必要です。X軸は日時フィールドなどの単一の連続するディメンションで、データの線は通常は交差します。X軸は、日時以外のカテゴリになることもあります。Y軸は、メトリック(測定された値)を表します。データセットが性質上連続的な場合、線のビジュアライゼーションを使用することをお薦めします。これは、一定の期間にわたるデータをトレンドベースでプロットする場合に特に向いています。
ビジュアライゼーションの作成 - 円のビジュアライゼーション
円グラフは、統計データをスライスで表す円形のグラフです。各スライスのサイズは、それが表す値の量に比例します。
ビジュアライゼーションの作成 - 散布のビジュアライゼーション
散布図は、主に相関と分散の分析のために使用します。このタイプのチャートは、一方が他方に関連するような、2つの異なる変数間の関係を示す場合に向いています。
ビジュアライゼーションの更新
ビジュアライゼーションの追加後に、それらの編集や削除などの更新操作を実行できます。
ビジュアライゼーション・キャンバスのビジュアライゼーションの最大化アイコンを使用して、新しいウィンドウまたはタブでビジュアライゼーションを開くことができます。
ビジュアライゼーションの編集
ビジュアライゼーションを編集するには:
-
ビジュアライゼーションのあるステージで、「ビジュアライゼーション」タブをクリックします。
-
編集するビジュアライゼーションを特定し、ビジュアライゼーション名の横にある鉛筆アイコンをクリックします。
-
表示された「ビジュアライゼーションの編集」ダイアログ・ボックスで、必要な変更を行います。Y軸とX軸の選択を変更することも可能です。Y軸とX軸の値を変更すると、グラフがプロットされている基準が変更されるため、ビジュアライゼーションが変化することがわかります。
向きの変更
ビジュアライゼーションに含まれるデータや各自の要件に基づいて、ビジュアライゼーションの向きを変更できます。ビジュアライゼーション・キャンバスのチャート・レイアウトの反転アイコンをクリックして、向きを水平方向と垂直方向の間で切り替えることができます。
ビジュアライゼーションの削除
パイプラインで不要になった場合、ビジュアライゼーションを削除できます。ビジュアライゼーション・キャンバスで、ビジュアライゼーション名の横にある「削除」アイコンをクリックすると、パイプラインからビジュアライゼーションを削除できます。ビジュアライゼーションを削除する場合、削除の効果は即座に発生し、一度削除したものを復元する方法は存在しないため、注意してください。
すべてのビジュアライゼーションの削除
不要になった場合、ステージのすべてのビジュアライゼーションを削除できます。ビジュアライゼーション・キャンバスで、「すべて削除」アイコンをクリックすると、ステージのすべてのビジュアライゼーションを一度に削除できます。ビジュアライゼーションを削除する場合、その効果は即座に発生し、削除したビジュアライゼーションを復元する方法は存在しないため、注意してください。
パターン・ステージの追加
パターンは、テンプレート化されたステージです。テンプレートにいくつかのパラメータを指定すると、テンプレートに基づいてステージが生成されます。
様々なタイプのパターンの詳細は、「パターン」を参照してください。
パターン・ステージを追加するには:ルール・ステージの追加
ルール・ステージを使用して、パイプラインにIF-THENロジックを追加できます。ルールは、ストリームに適用される条件とアクションのセットです。
- パイプライン・エディタでパイプラインを開きます。
- ルール・ステージを追加する直前のステージを右クリックし、「ステージの追加」をクリックして「ルール」を選択します。
- ルール・ステージの「名前」と「説明」を入力します。
- 「ルールの追加」をクリックします。
- ルールの「ルール名」と「説明」を入力し、「完了」をクリックしてルールを保存します。
- IF文、THEN文に適切な条件を選択し、「アクションの追加」をクリックしてビジネス・ルール内にアクションを追加します。
問合せグループ・ステージの追加
問合せグループ・ステージによって、複数の問合せグループを使用して、データ(メモリー内のストリームまたは表)を処理できます。問合せグループは、サマリー(集計関数)、グループ化基準、フィルタおよび範囲ウィンドウの組合せです。異なる問合せグループによって入力がパラレルに処理され、結果は問合せグループ・ステージの出力に結合されます。問合せグループのロジックが適用される前に受信ストリームを処理する入力フィルタや、すべての問合せグループの結合された出力にまとめて適用される結果フィルタを定義することもできます。
ストリーム・タイプの問合せグループ・ステージは、ストリームに処理ロジックを適用します。これは、単純化のためにグループ化された複数のパラレル問合せステージと本質的に同様です。
表タイプの問合せグループ・ステージは、トランザクション・セマンティクスを含むストリームに追加できます(一例をあげると、Oracle GoldenGate BigDataプラグインによって生成されたチェンジ・データ・キャプチャ・ストリーム)。このタイプのステージは、ストリームに含まれるトランザクション・セマンティクスを使用して、メモリー内に元のデータベース表を再作成します。その後、メモリー内のこの表に問合せグループを適用することで、データベースのパフォーマンスに影響を与えることなく、トランザクション・データに対してリアルタイム分析を実行できます。
カスタム・ステージの追加
パイプラインにフィルタを追加して、より正確なストリーミング・データを取得できます。
ターゲット・ステージの追加
- パイプライン・エディタで、必要なパイプラインを開きます。
- スコアリング・ステージを追加する直前のステージを右クリックし、「ステージの追加」をクリックして「ターゲット」を選択します。
- スコアリング・ステージのわかりやすい名前と適切な説明を入力し、「保存」をクリックします。
- ステージ・エディタで、要件に合致するターゲットを選択し、フィールドのマッピングを開始します。
- 既存のターゲットが要件に合致しない場合、または既存のターゲットが存在しない場合、「ターゲットの作成」をクリックしてターゲットを作成します。
ターゲットの構成
ターゲットは、パイプラインからの出力データの宛先を定義します。
- パイプライン・エディタでパイプラインを開きます。
- パイプラインのターゲット・ノードを選択します。
- ドロップダウン・リストからパイプラインのターゲットを選択します。
- 「ターゲット・プロパティ」と出力ストリーム・プロパティのそれぞれをマップします。
ターゲットは、パイプライン・エディタ内から直接作成することもできます。手順については、「ターゲットの作成」を参照してください。既存のターゲットを編集することもできます。
指定したターゲットでパイプラインが構成されます。パイプラインとその依存アーティファクトのエクスポートおよびインポート
エクスポートおよびインポート機能では、数回クリックする方法によりOracle Stream Analyticsシステム間(開発システムや本番システムなど)でパイプラインとそのコンテンツを移行できます。選択したアーティファクトのみを移行するオプションもあります。Oracle Stream Analyticsの最新バージョンで開発されたパイプラインをインポートできます。再インポートすると、既存のメタデータは、パイプラインがパブリッシュされていなければ、新しくインポートされたメタデータで上書きされます。インポートしたアーティファクトは、それらを右クリックして「削除」を選択することで削除できます。
-
キューブ
-
ダッシュボード
-
カスタム・ステージ
-
ビジュアライゼーション
-
ファイル・ストリーム
-
予測モデル
パイプラインのパブリッシュ
Oracle Stream Analyticsのすべてのユーザーがパイプラインを使用できるようにしてデータをターゲットに送信するには、パイプラインをパブリッシュする必要があります。
パブリッシュされたパイプラインは、パイプライン・エディタを終了した後もSparkクラスタで稼働し続けますが、ドラフト・パイプラインはアンデプロイされてリソースが解放されます。
パイプラインをパブリッシュするには:
トポロジ・ビューアの使用
トポロジは、接続されたエンティティおよびアーティファクト間の依存関係をグラフィカルに表現して図示したものです。
トポロジ・ビューアを使用して、選択したエンティティの他のエンティティに対する依存関係を識別できます。依存関係を理解することにより、注意深くエンティティを削除あるいはアンデプロイできます。Oracle Stream Analyticsでは、トポロジ用の2つのコンテキスト(即時ファミリおよび拡張ファミリ)がサポートされています。
トポロジ・ビューアは、次のいずれかの方法で起動できます。
-
選択したエンティティに対してトポロジ・ビューアを起動するには、カタログ・アクションメニューから「トポロジの表示」を選択します。
-
パイプライン・エディタの「トポロジの表示」アイコンをクリックします。
エディタの右上隅にある「トポロジの表示」アイコンをクリックし、トポロジ・ビューアを開きます。デフォルトでは、トポロジ・ビューアを起動したエンティティのトポロジが表示されます。このトポロジのコンテキストは即時ファミリで、エンティティと他のエンティティの間の即時依存関係および接続のみが表示されることを示します。トポロジのコンテキストを切り替えて、トポロジ・ビューアで起動したエンティティのトポロジ全体を表示できます。拡張ファミリコンテキストのトポロジでは、トポロジのすべての依存関係および接続が階層的に表示されます。
注意:
トポロジ・ビューアでは、トポロジが表示されているエンティティはグレーのボックスに囲まれています。即時ファミリ
即時ファミリコンテキストによって、選択したエンティティとその子または親との間の依存性が表示されます。
次の図は、即時ファミリでどのようにトポロジが表示されるかを示しています。
拡張ファミリ
拡張ファミリ・コンテキストは、エンティティ間の依存関係をフルコンテキストで表示します。つまり、エンティティに子エンティティおよび親エンティティがあり、親エンティティに他の依存関係がある場合、すべての依存関係がフルコンテキストで表示されます。
次の図は、拡張ファミリでどのようにトポロジが表示されるかを示しています。