定义事件

在 CEP 中,定义一个事件时需要指定事件类型及其每个属性的名称和类型。属性决定了事件的结构,同一个事件的每个事件实例都具有相同名称及顺序的属性集。

事件属性类型及形式

根据数据形式的不同,事件中的属性支持的类型有所区别:

属性形式 属性类型
标量 可以是 DolphinDB 的任何数据类型。
常规向量 BOOL, CHAR, SHORT, INT, INDEX, LONG, DATE, MONTH, TIME, MINUTE, SECOND, DATETIME, TIMESTAMP, NANOTIME, NANOTIMESTAMP, DATEHOUR, FLOAT, DOUBLE, STRING, BLOB, INT128, UUID, IPADDR, POINT, COMPLEX, DECIMAL(所有类型)) DURATION, ANY。
数组向量 基础数据类型+方括号 “[]“,如 INT[],DOUBLE[],DECIMAL32(3)[] 等,表示数组向量类型。

定义事件类型的方法

语法

class eventType {
  //定义成员变量
  field_name1 :: filed_type1
  ...
  field_namen :: field_typen
  
  //定义和类名相同的构造函数
  def eventType(a,..., b){
  //初始化成员变量
  field_name1 = a
  ...
  field_namen = b
  }
}

语法说明

eventType:类名,表示事件类型。在 DolphinDB 中,类名不能以数字开头,不能包含空格,或除了下划线(_)外的其他特殊字符。

field_name1 … field_namen:变量名,表示属性的名称。

field_type1 … field_typen:变量类型,表示属性的类型。

事件定义示例

定义一个名为 orders 的事件,包含了 6 个属性和一个构造函数:

class orders{
    trader :: STRING
    market :: STRING
    code :: STRING
    price :: DOUBLE
    qty :: INT
    eventTime :: TIMESTAMP
    def orders(t, m, c, p, q){
        trader = t
        market = m
        code = c
        price = p
        qty = q
        eventTime = now()
    }
}