Esper入门简介:二 个人对它的理解

看了官方Esper Reference Version 5.2.0 800多的文档后(其实有的细节没细看),个人对它的理解是:

1、Esper像带缓存失效策略内存数据库。

Esper中定义的EPL表达式,其实和sql很多相似功能,而且EPL里面有的不仅仅sql,扩展了很多语法。Esper会解析EPL,定义内存数据结构,缓存失效策略,数据保存,时间监听器,大数据方面的数据流/事件流,JDBCsql方式的查询等等。

比如,窗口函数定义是一种FIFO的缓存,底层用的是双端队列(java中的ArrayDeque),时间窗口定义,只不过增加了一个定时任务去查询并删掉过期数据/事件,guava库有这样的缓存实现。

2、对数据的查询(JDBC接口)也提供的查询计划(根据索引)。

3、可以代理数据库,从数据库查询的数据可有Esper定义缓存策略。不过,应该没有项目用到这个功能。就是代理了一层+缓存。

4、定义了监听器、订阅者这些数据库中所谓的触发器,可以监听敏感事件,起到报警作用。

5、不仅仅类似内存数据库,有storm/jstorm中数据流的概念。

上传一份官方文档:http://download.csdn.net/detail/doctor_who2004/8824797

时间: 2025-01-03 15:34:07

Esper入门简介:二 个人对它的理解的相关文章

Esper入门简介:一

先确定理解了Esper的思想下: ** * Chapter 1. Technology Overview * ***** 1.关系数据库及其sql设计的目地主要是为了数据相对静态和复杂查询比较少的应用(OLTP,磁盘数据的存取有相应的优化结构,当然内存数据库,数据存放在内存内). * 对于cep系统来说,内存数据库更接近其目地. * ***** 2.cep引擎的实现和关系数据库的实现有点相反,数据库一般把数据存放到磁盘(静态的),我们通过网络把sql流传给数据库引擎,操作数据库,返回结果流,流向

Esper入门简介:三、 对Esper底层数据结构特点分析,数据的入、出

package com.doctor.esper.reference; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import com.doctor.esper.common.EsperUtil; import com.doctor.esper.tutorial.OrderEvent; import com.espertech.esper.client.Configuration; import com.espertech.

Junit(3)JUnit和单元测试入门简介

1.几个相关的概念 白盒测试--把测试对象看作一个打开的盒子,程序内部的逻辑结构和其他信息对测试人员是公开的. 回归测试--软件或环境的修复或更正后的"再测试",自动测试工具对这类测试尤其有用. 单元测试--是最小粒度的测试,以测试某个功能或代码块.一般由程序员来做,因为它需要知道内部程序设计和编码的细节. JUnit --是一个开发源代码的Java测试框架,用于编写和运行可重复的测试.他是用于单元测试框架体系xUnit的一个实例(用于java语言).主要用于白盒测试,回归测试. 2.

Dubbo入门简介(一)

Dubbo入门简介(一) 一.什么是Dubbo Dubbo是阿里巴巴开源出来的一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案.通过扩展spring schema 和 注解标签,可以和spring无缝集成(http://blog.csdn.net/achilles12345/article/details/41789527) 核心组件: Remoting:提供对多种基于长连接的NIO框架抽象封装,包括多种线程模型,序列化,以及“请求-响应”模式的信息交

HBase Client API使用入门(二)---查询及过滤器

相关知识 创建表插入数据删除等见:http://www.cnblogs.com/wishyouhappy/p/3735077.html HBase API简介见:http://www.cnblogs.com/wishyouhappy/p/3753347.html 按行.列簇等查询 package wish.hbase; import java.io.IOException; import java.util.ArrayList; import java.util.List; import org

Android 自定义控件开发入门(二)

上一次我们讲了一堆实现自定义控件的理论基础,列举了View类一些可以重写的方法,我们对这些方法的重写是我们继承View类来派生自定义控件的关键 我通过一个最简单的例子给大家展示了这一个过程,无论是多么复杂的自定义控件,思路总是这样子的,但是因为我们仅仅重写了onDraw方法使得大家觉得怪怪的,作为一个控件,我们居然还要为了他的实现为其增加麻烦的监听,这就不能叫做控件了. 下面再给大家介绍一个经常重写的方法法:publicboolean onTouchEvent (MotionEvent even

CMake入门(二)

CMake入门(二) 最后更新日期:2014-04-25 by kagula 阅读前提:<CMake入门(一)>.Linux的基本操作 环境: Windows 8.1 64bit英文版,Visual Studio 203 Update1英文版,CMake 2.8.12.2. Cent OS 6.5. 内容简介 介绍在VisualStudio上现有的项目如何移植到Linux上.本文通过列出两个最简单.也是最常用的例子来介绍Linux下CMake的使用. CentOS 上安装CMake 2.8.1

Amazon DynamoDB 简介(二)

在DynamoDB中,database是table的集合,table是item的集合,item是attribute的集合.attribute是name-value对.value可以是单值属性也可以是多值属性(集合).一个item的大小不能超过64KB.理解了这个你就入门了. 另外,DynamoDB为了支持更为丰富的查询,提出了二级索引的思想,可以在表中创建一个或多个二级索引,并对这些索引发出 Query 请求.有两种类型的二级索引: 本地二级索引(Local Secondary Indexes)

Linux 内核入门简介

作者 : 韩曙亮 转载请出名出处 : http://blog.csdn.net/shulianghan/article/details/38636827 一. Linux 内核简介 1. 内核功能简介 (1) 操作系统 和 内核 简介 操作系统 : -- 功能 : 完成基本功能 和 系统管理; -- 组成 : 内核(kernel), 设备驱动程序(driver), 启动引导程序(bootloader), 命令行(shell), 用户界面(UI), 文件系统(filesystem), 管理工具;