springboot中使用esper入门

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了springboot中使用esper入门相关的知识,希望对你有一定的参考价值。

参考技术A esper是一个比较经典的CEP( Complex Event Processing )的开源实现( 开源协议为GPL v2 ),这里简单介绍下如何在springboot中使用。

在esper-6.1.0-sources.jar!/com/espertech/esper/core/service/EPServiceProviderImpl.java的构造器中也调用了初始化

Esper:如何使用 Esper 的配置 API 通过 JDBC 配置 Esper 以连接关系数据库

【中文标题】Esper:如何使用 Esper 的配置 API 通过 JDBC 配置 Esper 以连接关系数据库【英文标题】:Esper: How to configure Esper to connect a Relational Database, through a JDBC, using Esper's configuration API 【发布时间】:2014-11-04 12:22:14 【问题描述】:

我想知道使用 Esper 引擎 (v5.0.0) 的 java 客户端应用程序如何配置引擎实例,以便他可以连接到关系数据库,例如 pgSQL。

这对于编写能够将事件流(或数据流)与来自数据库 (5.13. Accessing Relational Data via SQL) 的静态/历史数据连接起来的 EPL 查询至关重要。也就是说,从数据库中读取。 (写入数据库需要使用EsperIO adapter。)

从Esper's docs 我发现Configuration 和ConfigurationDBRef 类应该用于通过其API 配置Esper 的数据库连接。

但是,在我的研究中,剩下的文档对整个配置过程并不是很清楚,我正在为此努力。

【问题讨论】:

【参考方案1】:

下面的代码sn -p展示了整个配置过程:

ConfigurationDBRef dbConfig = new ConfigurationDBRef();
dbConfig.setDriverManagerConnection("org.postgresql.Driver",
                                    "jdbc:postgresql://localhost:5432/database_name", 
                                    "user", 
                                    "password");

Configuration engineConfig = new Configuration();
engineConfig.addDatabaseReference("database_alias", dbConfig);

esperEngine = EPServiceProviderManager.getDefaultProvider(engineConfig);

就是这样。 esperEngine 将是您准备与 database_name 通信的引擎实例,其中 database_alias 作为查询语句别名(用于查询的 FROM强>子句)

您可以通过以下方式在 Esper 的实例中安装查询:

String statement =  "SELECT datastream.column1,  rel.column2"                           + 
                    "FROM   Datastream.Measure AS datastream, "                         +
                           "sql:database_alias ['SELECT column2 "                       +
                                                "FROM \"SchemaX\".\"TableY\" ] AS rel";

//Install this query in the engine
EPStatement queryEngineObject = esperEngine.getEPAdministrator().createEPL(statement);  

//Associate a Listener to this query
MyQueryListener listener = new MyQueryListener(); //that implements UpdateListener Interface
queryEngineObject.addListener(listener);

【讨论】:

您好,我也有同样的问题。我的步骤与您的相同。但问题是我的听众没有从数据库中接收到任何数据。

以上是关于springboot中使用esper入门的主要内容,如果未能解决你的问题,请参考以下文章

Esper:如何使用 Esper 的配置 API 通过 JDBC 配置 Esper 以连接关系数据库

SpringBootSpringBoot 入门

Spring Boot 持续更新中...

Spring Boot 入门之持久层篇

SpringCloud入门

esper 基于事件开始时间的固定窗口