名前付きウィンドウを生成します。生成方法として、既存のイベントタイプから生成する方法と、新たに列名とタイプを定義する方法とがあります。
構文:
create window ウィンドウ名.ビュー
[as] [select プロパティ [, ...] from] イベントタイプまたはウィンドウ名
[insert [where フィルター式]]
名前付きウィンドウを生成するには、新しく作る名前付きウィンドウの名前(ウィンドウ名)と1つ以上のデータウィンドウビュー(ビュー)を指定します。ウィンドウ名には既存のイベントタイプ(イベントストリーム)名は使えません。
select句により、既存のイベントタイプまたはウィンドウからプロパティを引用することを指定します。
既存の名前付きウィンドウからプロパティを引用する場合、insert句により、新しい名前付きウィンドウ生成時に既存の名前付きウィンドウからデータを取得できます。フィルター式でフィルター条件を指定できます。
構文:
create window ウィンドウ名.ビュー [as] ( 列名 列タイプ [, 列名 列タイプ] [, ...] )
列名と列タイプで、名前付きウィンドウに入れるイベントのプロパティの名前とデータタイプを指定します。
create window 文で vdw:ehcache() を指定することで、Interstage Terracotta BigMemory Max(以降Terracotta)のキャッシュを参照する、Virtual Data Windowを作成できます。次の2種類の書き方があります。
イベントタイプ定義で型情報を設定する書き方
直接型情報を記述して設定する書き方
イベントタイプ定義で型情報を設定する書き方
構文:
create window ウィンドウ名. vdw:ehcache("キャッシュ名", "キャッシュのキーに該当するプロパティ名") as イベントタイプの開発資産ID;
イベントタイプ定義を利用した定義方法です。XML形式で定義したイベントタイプ定義は指定できません。
CSV形式のイベントタイプ定義のみ指定できます。(キャッシュにはjava.util.HashMap<String,Object>型の値を格納します)。
vdw:ehcache()の引数としては、Virtual Data Windowがアクセスするキャッシュ名と、キャッシュのキーに該当するプロパティ名を指定します。
直接型情報を記述して設定する書き方
構文:
create window ウィンドウ名. vdw:ehcache("キャッシュ名", "キャッシュのキーに該当するプロパティ名") as (プロパティ名1 型1, プロパティ名2 型2, ...);
型情報を直接指定する場合の定義方法です。各プロパティに指定可能な型は「1.3.1.4 利用可能なTerracottaのキャッシュの形式」を参照してください。
例
Virtual Data Windowの作成例
直接型情報を記述する場合のVirtual Data Window の作成例です。
create window CustomerWindow. vdw:ehcache("CustomerCache", "id") as (id string, name string, address string);
この例では、Terracottaのキャッシュ CustomerCache を参照します。キーはidです。生成するウィンドウ名は CustomerWindow、プロパティは以下の通りです。
プロパティ名 | 型 |
---|---|
id | string |
name | string |
address | string |
注意
Virtual Data Windowと一緒に他のビューを指定しない
Virtual Data Windowを定義するcreate window文において、vdw:ehcache()の指定と一緒にwin:length(1)などの他のビューを指定しないでください。指定しても構文エラーにはなりませんが、そのビューの指定によりTerracottaのキャッシュのデータは操作できません(win:length(1)を指定したとしても、キャッシュ内のイベントは1つになりません)。
Terracottaのキャッシュは、キーと値のペアで構成されます。BDCEPが参照するキャッシュは以下の構成にする必要があります。
キーに使用可能な型 | 値に使用可能な型 |
---|---|
java.lang.String | java.util.HashMap<java.lang.String, java.lang.Object> |
複合イベント処理ルールで指定する各プロパティは、上記HashMapの各要素に対応します。
HashMapの各要素の値で使用可能な型と、対応する複合イベント処理ルールにおける型は以下の通りです。
HashMapの各要素に使用可能な型 | 対応する複合イベント処理ルールの型 |
---|---|
java.lang.String | string |
java.lang.Character | char/character |
java.lang.Boolean | bool/boolean |
java.lang.Byte | byte |
java.lang.Short | short |
java.lang.Integer | int/integer |
java.lang.Long | long |
java.lang.Float | float |
java.lang.Double | double |
Terracottaのキャッシュのキーと、値に指定するHashMapは、次の関係にする必要があります。
キャッシュのキーに指定するプロパティ名と、HashMapの対応する要素のキーを同じにします。
上記のHashMapの要素の値を、キャッシュのキーの値に設定します。
この関係を図にすると次のようになります。