イベントタイプ定義を記述するための設定ファイル(イベントタイプ定義ファイル)について説明します。
eventTypeをルート要素とするXMLファイルであり、イベントタイプ毎にイベントタイプ定義ファイルを作成します。イベントデータの形式(CSV形式またはXML形式)によって記述する項目が異なります。
イベントタイプ定義ファイルに設定する項目は以下のとおりです。
要素または属性 | 項目名 | 説明 | 設定可能文字 | 必須 |
---|---|---|---|---|
id ※eventType要素の属性 | 開発資産ID | 配備先のCEPエンジンで一意となるIDを指定します。 高速フィルタールールで指定するイベントタイプ名、複合イベント処理ルールで指定するイベントストリーム名として利用します。 | 半角英数字、アンダースコア(_)、ハイフン(-) 注:先頭のみ半角英字です。 39文字以内 | 必須 |
comment | コメント | この定義の説明を記述します。 | 1000文字以内 | 任意 |
type | 形式 | イベントデータの形式を指定します。 XML:XML形式のイベント CSV:CSV形式のイベント | (左記参照) | 必須 |
xmlSchema | XMLスキーマ | イベントデータの構造を表すスキーマ(XMLスキーマ)を指定します。 XMLスキーマ言語で記述します。そのため、マークアップの指定として解釈されないようにエスケープする必要があります。なお、記述を容易にするため、エスケープする代わりにCDATAセクションを用いて記述することを推奨します。 | 1048576文字以内 | (*1) |
root | ルート要素 | イベントのルート要素の名前を指定します。 ルート要素はXMLスキーマで定義された要素の1つです。 すべてのイベントタイプ定義で一意となるルート要素名を指定します。 | 512文字以内 | (*1) |
csvColumn | CSVカラム情報 | イベントデータの構造を表すカラム情報を指定します。 1つ以上のcolumn要素を記述します(後述)。 | column要素(後述)に従います。 column要素の数に特に上限はありません。 | (*2) |
useLogging | ロギング使用有無 | 入力アダプターから受け取った高速フィルター処理前のイベントに対するロギング機能を利用するかどうかを指定します。 true:使用する false:使用しない | (左記参照) | 必須 |
loggingTableName | ログ格納領域 | イベントを格納するログ格納領域を絶対パスで指定します。 入力アダプターで受け取ったイベントが格納されます。 エンジンログにイベントを記録する場合(エンジン構成ファイルのtype要素にfileを指定した場合)であっても、イベントを識別するための、スラッシュ(/)から始まる仮想的なパス名(例:“/イベントタイプID”)を指定してください。 | 255文字以内 | (*3) |
useCep | 複合イベント処理の使用有無 | 複合イベント処理を使用するかどうかを制御します。 true:使用する false:使用しない | (左記参照) | 必須 |
(*1) 形式に“XML”を指定した場合は必須です。
(*2) 形式に“CSV”を指定した場合は必須です。
(*3) ロギング機能を使用する場合は必須です。
形式に“CSV”を指定した場合、以下に示すCSVカラム情報をcsvColumn要素内に記述します。
要素または属性 | 項目名 | 説明 | 設定可能文字 | 必須 |
---|---|---|---|---|
column | 列 | イベント(CSV形式)の列数に応じて複数記述します。 各column要素の定義順は、イベントデータの各項目の並び順と同じにします。 | (空要素) | 必須 |
name ※column要素の属性 | 項目名 | CSVの列の項目名を指定します。 高速フィルタールールで指定する項目名、複合イベント処理ルールで指定するプロパティ名として利用します。 | 「9.6 項目名、タグ名、属性名に指定可能な文字」を参照してください。 | 必須 |
type ※column要素の属性 | 項目の型 | CSVの列のデータ型を指定します。 string:文字列 boolean:ブール値 (true/false) byte:8ビット符号付き整数 int:32ビット符号付き整数 long:64ビット符号付き整数 float:32ビット浮動小数 double:64ビット倍精度浮動小数 | (左記参照) | 必須 |
CSVの列のデータタイプは、複合イベント処理ルールでは次のように変換されます。
CSVの列のデータタイプ | 複合イベント処理ルールのデータタイプ |
---|---|
string | string |
boolean | bool/boolean |
byte | byte |
int | int/integer |
long | long |
float | float |
double | double |
ポイント
高速フィルター機能を使用する場合、抽出処理(フィルタリング)のみを使用する場合を除き、複合イベント処理に渡されるイベントと入力イベントのイベントタイプは異なります。この場合、複合イベント処理用にイベントタイプ定義を別途配備する必要があります。
注意
1つのCEPエンジンに配備できるイベントタイプ定義数の上限は32です。
XMLスキーマにはXML宣言を含めることも含めないこともできますが、XML宣言を含める場合にはxmlSchema開始タグとXML宣言の間に改行や空白文字を入れないでください。
XMLスキーマではsequence要素によって要素の順序を定義できますが、入力イベントのXMLの要素がsequence要素で指定されている順序にしたがっていなくてもエラーとはなりません。
イベントタイプ定義を配備するCEPエンジンにかかわらず、すべてのイベントタイプ定義で一意となるルート要素名を指定してください。
複合イベント処理の使用有無(useCep)について
入力アダプターによるロギング機能のみを使用する場合にfalseを設定します。運用を開始する前に、入力イベントデータの内容を確認する用途を想定しています。
各column要素の定義順は、イベントデータの各項目の並び順と同じにします。
cepgetrscコマンドを使用して開発資産の詳細表示を行う場合、XMLスキーマはCDATAセクションを使用した形式で表示されます。
例
XML形式を選択した記述例
対象のイベントデータ(XML)
<?xml version="1.0" encoding="UTF-8"?><messagedata xmlns="http://dataaccesscontrol.sspf.fujitsu.com/na
mespace/xmlmessage"><memberID>MEM0001</memberID><areaID>1010</areaID><status>1</status></messagedata>
(注) 見やすさのため途中に改行を入れていますが、実際には改行は入りません。
イベントタイプ定義
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<eventType xmlns="urn:xmlns-fujitsu-com:cspf:bdcep:v1" id="EVENTTYPE_01">
<comment>イベントタイプ定義_01</comment>
<type>XML</type>
<xmlSchema>
<![CDATA[
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns="http://dataaccesscontrol.sspf.fujitsu.com/namespace/xmlmessage"
targetNamespace="http://dataaccesscontrol.sspf.fujitsu.com/namespace/xmlmessage">
<xs:element name="messagedata">
<xs:complexType>
<xs:sequence>
<xs:element name="memberID" type="xs:string" />
<xs:element name="areaID" type="xs:string" />
<xs:element name="status" type="xs:string" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
]]>
</xmlSchema>
<root>messagedata</root>
<useLogging>true</useLogging>
<loggingTableName>/echonet</loggingTableName>
<useCep>true</useCep>
</eventType>
CSV形式を選択した記述例
対象のイベントデータ(CSV)
"MEM0001","1010","1"
イベントタイプ定義
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<eventType xmlns="urn:xmlns-fujitsu-com:cspf:bdcep:v1" id="EVENTTYPE_02">
<comment>イベントタイプ定義_02</comment>
<type>CSV</type>
<xmlSchema></xmlSchema>
<csvColumn>
<column name="memberID" type="string" />
<column name="areaID" type="string" />
<column name="status" type="string" />
</csvColumn>
<useLogging>false</useLogging>
<useCep>true</useCep>
</eventType>
本例では、以下のイベントタイプを定義します。
入力アダプターにより、イベントデータが/echonet配下へログ出力されます。
このイベントデータは、複合イベント処理に渡されます(高速フィルター機能でフィルタリングされない場合に限る)。
入力アダプターでは、イベントデータはログ出力されません。
このイベントデータは、複合イベント処理に渡されます(高速フィルター機能でフィルタリングされない場合に限る)。