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

Posted

技术标签:

【中文标题】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);

【讨论】:

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

以上是关于Esper:如何使用 Esper 的配置 API 通过 JDBC 配置 Esper 以连接关系数据库的主要内容,如果未能解决你的问题,请参考以下文章

如何将 Esper CEP 引擎与 DDS 连接

Esper 5.4 java进程CPU占用率高

addPlugInSingleRowFunction中的问题将Esper版本从5.3升级到8.3

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

esper 事件引擎,各种事件类型示例代码

Esper调用Java代码执行系统命令