Esper系列(八)Method Definition、Schema
来源:互联网 发布:spss信度分析 输入数据 编辑:程序博客网 时间:2024/06/03 16:38
Method Definition
作用:以公共静态方法的方式去访问外部数据。
应用说明:
1、返回数据的方法必须是公共静态方法(方法参数可以有多个也可以没有);
2、如果返回一条数据或无返回数据,则方法的返回类型可以是Java类或者Map类型数据。如果返回多条数据(包括一条),则方法返回类型必须是Java类的数组或者Map数组;
3、如果方法的返回类型是Java类或者Java类数组,则Java的类定义必须包含针对属性的get方法。
4、如果方法的返回类型是Map或者Map数组,则Map的key-value定义固定为<String, Object>;
5、如果返回的数据是Map或者Map数组,除了定义返回数据的方法外,还要定义返回元数据的方法(这个元数据针对返回的数据)。方法是公共静态方法,且必须是无参数方法。方法返回类型为Map<String, Class>,String表示返回的数据的名称,Class表示返回的数据的类型。返回元数据的方法名称=返回数据的方法名称+Metadata。
例子:
文件名:MyEvent.java
1 public class MyEvent { 2 public static Map<String, Object> getMapEvent(){ 3 Map<String, Object> map = new HashMap<String, Object>(); 4 map.put("key", "chenx1"); 5 map.put("value",1); 6 return map; 7 } 8 9 public static Map<String, Class> getMapEventMetadata(){ 10 Map<String, Class> map = new HashMap<String, Class>(); 11 map.put("key", String.class); 12 map.put("value", int.class); 13 return map; 14 } 15 }
文件名:orderMainTest.java
1 String epsql = "select * from method:MyEvent.getMapEvent() where value > 0"; 2 EPStatement epstate = epAdmin.createEPL(epsql); 3 Iterator<EventBean> iter = epstate.iterator(); 4 while (iter.hasNext()) { 5 EventBean bean = iter.next(); 6 System.out.println(bean.getUnderlying()); 7 }
Schema
格式:
1 create [map | objectarray] schema schema_name [as] 2 (property_name property_type [,property_name property_type [,...]) 3 [inherits inherited_event_type[, inherited_event_type] [,...]] 4 [starttimestamp timestamp_property_name] 5 [endtimestamp timestamp_property_name] 6 [copyfrom copy_type_name [, copy_type_name] [,...]]
参数说明:
- map、objectarray分别表示当前定义的schema是map结构还是数组结构。
- schema_name表示schema的名字,全局唯一(as为可选内容)。
- property_name表示schema所包含的属性名称,property_type为属性的类型,多个属性用逗号分隔,所有属性用圆括号括起来可以使用的类型有:int、String等已经内置的Java类型;已经通过Configuration接口注册的事件类型,比如Map,数组,schema等;可以使用POJO类,如果没有import就要写全名,否则写类名即可。
- inherits表示继承别的事件类型,后面跟着的是要继承的事件类型。如果使用了继承,则当前定义的schema包含了继承的事件类型的所有属性。并且可以继承多个,用逗号分隔。
- starttimestamp和endtimestamp是两个特殊的关键字。单独使用starttimestamp时,表示为schema记一个时间戳。后面跟着已经声明的属性并且能够返回一个data-time值。如果联合endtimestamp使用,则表示这个schema只能在某段事件内使用。后面跟着的同样也是已经声明的属性并且能够返回一个data-time值。注意endtimestamp不能单独使用。
- copyfrom表示复制别的事件的所有属性到当前定义的schema中,并且可以copy多个事件,用逗号分隔。
示例:
1 // 创建schema 2 String inepl = "create schema myevent as orderEvent"; 3 epAdmin.createEPL(inepl); 4 // 查询 5 EPStatement epstate = epAdmin.createEPL("select * from myevent");
0 0
- Esper系列(八)Method Definition、Schema
- XSD(xml schema definition)
- XML Schema Definition XSD
- xsd(XML Schema Definition)
- Esper系列(一)初探
- Esper系列(四)Output
- XSD (xml Schema Definition)
- XSD (xml Schema Definition)
- XSD (xml Schema Definition)
- XSD(Xml Schema Definition)详解
- XSD (xml Schema Definition)
- XSD 文件 xml Schema Definition
- Esper
- Esper
- esper
- XSD- XML Schema Definition模式定义
- Esper系列(三)Context和Group by
- Esper系列(十二)Variables and Constants
- Esper系列(六)子查询、Exists、In/not in、Any/Some、Join
- Esper系列(七)数据缓存、外部事件应用(静态方法)
- Vue.js实践<如何使用Vue2.0开发富交互式WEB应用>
- Docker系列(五)OVS+Docker网络打通示例
- 经验积累
- Esper系列(八)Method Definition、Schema
- Esper系列(九)NamedWindow语法create、Insert、select
- 第8章:TTCN-3数据类型
- Esper系列(十)NamedWindow语法delete、Select+Delete、Update
- Esper系列(十一)NamedWindow语法Merge、Queries、Indexing、Dropping
- Esper系列(十二)Variables and Constants
- GH Bladed 软件使用学习笔记(2)
- Esper系列(十三)Splitting and Duplicating Streams
- Esper系列(十四)Contained-Event Selection