ページの先頭行へ戻る
Interstage Big DataComplex Event Processing ServerV1.0.0 ユーザーズガイド
Interstage

5.4.7 XTP連携の設計

ここでは、XTP連携を行う場合の留意事項と、その利用方法について説明します。

5.4.7.1 XTP連携を利用する場合の留意事項

複合イベント処理の外部データ参照において、XTP連携を利用する場合に留意すべき項目について説明します。

5.4.7.2 XTPのキャッシュの参照方法

Virtual Data Windowの作成方法と、作成したVirtual Data Window の利用方法について説明します。

Virtual Data Windowの作成

複合イベント処理ルールからXTPのキャッシュを参照するには、ルール中でVirtual Data Window(以降VDW)を作成します。

具体的には、以下のように記述します。

構文:イベントタイプIDを利用する場合

@VDW(cacheName="キャッシュ名", keyProperty="キープロパティ名")
create window ウィンドウ名.isxtp:vdw() as イベントタイプID;

構文:型情報を直接指定する場合

@VDW(cacheName="キャッシュ名", keyProperty="キープロパティ名")
create window ウィンドウ名.isxtp:vdw() as (プロパティ名 , プロパティ名 , ...);

Virtual Data Window (VDW)作成の記述例

XTPのキャッシュ(MARKET)を参照するVDW(MarketWindow)の作成例です。

@VDW(cacheName="MARKET", keyProperty="code") 
create window MarketWindow.isxtp:vdw() as (code string, high int, low int);
  • キープロパティとしてcodeを指定しています。

  • プロパティとして、code(string型)、high(int型)、low(int型)を定義しています。

Virtual Data Windowの利用

作成したVirtual Data Windowは、通常のウィンドウと同じように利用します。

作成したVirtual Data Window(VDW)の使用例

TickerWindowのイベントでVDWのMarketWindowを参照し、条件に合うVDWのイベント(キャッシュのエントリー)のデータを取得する例です。

select M.code from MarketWindow as M, TickerWidnow as T
where M.code = T.code and ( T.price > M.high or T.price < M.low);

注意

Virtual Data Window利用時の注意

Virtual Data Window に格納された情報にアクセスする際に利用できるwhere句には以下の制限があります。

以下の制限は、キャッシュからレコードを特定する際に制限されるものです。

レコードが特定された後であれば、以下の制限はなく、通常通りにルールを記述できます。

  • レコードの特定には、@VDWアノテーションで指定したキープロパティのみ指定可能です。

  • レコードの特定で指定可能な、キープロパティに対する比較演算子は"="のみです。

記述例

M.code = T.code でレコードを特定後、他の項目についての比較を行っています。

@VDW(cacheName="MARKET", keyProperty="code") 
create window MarketWindow.isxtp:vdw() as (code string, high int, low int);

s
elect M.code from MarketWindow as M, TicketWindow as T
w
here M.code = T.code and ( T.price > M.high or T.price < M.low)

以下は上記のキャッシュでOKな記述例と、NGな記述例です。

No

記述例

OK/NG

説明

1

select * from MarketWindow where code = '1111'

OK

キープロパティに対する‘=’オペレーション

2

select * from MarketWindow where high = 1000

NG

キープロパティ以外をWHERE句に指定しているためNG

3

select * from MarketWindow where code > '1111'

NG

キープロパティのみWHERE句に指定しているが、‘=’以外の演算を行っているためNG