连接 Esper 和 PostgreSQL
Connect Esper with PostgreSQL
(1) 我需要将 Esper 数据库适配器连接到我的项目。我正在使用 this
作为指南,但我不知道在哪里可以找到配置文件,因为我收到此错误:Cannot locate configuration information for database 'db1'
这就是我的
public class Esper {
public void iniciar() {
EPServiceProvider epService = EPServiceProviderManager.getDefaultProvider();
ConfigurationDBAdapter adapterConfig = new ConfigurationDBAdapter();
ConfigurationDBRef configDB = new ConfigurationDBRef();
configDB.setDriverManagerConnection("org.postgresql.Driver",
"jdbc:postgresql://localhost:5432/db_name",
"user",
"pass");
adapterConfig.getJdbcConnections().put("db1", configDB);
EsperIODBAdapter dbAdapter = new EsperIODBAdapter(adapterConfig, "engineURI");
dbAdapter.start();
String expression = "select * from pattern[every timer :interval(10)], sql:db1 ['select mosquitoId from registros where velocidad > 50']";
EPStatement stmt = epService.getEPAdministrator().createEPL(expression);
Mylistener listener = new Mylistener();
stmt.addListener(listener);
}
}
(2) 我需要做的是从 table Registros
获取数据,如果 velocidad > 50
使用 printLn(),我不明白 pattern
在这个例子。
而不是 "EPServiceProviderManager.getDefaultProvider();" 你会想要使用 "EPServiceProviderManager.getDefaultProvider(configuration);".
Configuration configuration = new Configuration();
ConfigurationDBRef configDB = new ConfigurationDBRef();
configDB.setDriverManagerConnection(....);
configuration.addDatabaseReference("MyDB", configDB);
EPServiceProvider epService = EPServiceProviderManager.getDefaultProvider(configuration);
(1) 我需要将 Esper 数据库适配器连接到我的项目。我正在使用 this
作为指南,但我不知道在哪里可以找到配置文件,因为我收到此错误:Cannot locate configuration information for database 'db1'
这就是我的
public class Esper {
public void iniciar() {
EPServiceProvider epService = EPServiceProviderManager.getDefaultProvider();
ConfigurationDBAdapter adapterConfig = new ConfigurationDBAdapter();
ConfigurationDBRef configDB = new ConfigurationDBRef();
configDB.setDriverManagerConnection("org.postgresql.Driver",
"jdbc:postgresql://localhost:5432/db_name",
"user",
"pass");
adapterConfig.getJdbcConnections().put("db1", configDB);
EsperIODBAdapter dbAdapter = new EsperIODBAdapter(adapterConfig, "engineURI");
dbAdapter.start();
String expression = "select * from pattern[every timer :interval(10)], sql:db1 ['select mosquitoId from registros where velocidad > 50']";
EPStatement stmt = epService.getEPAdministrator().createEPL(expression);
Mylistener listener = new Mylistener();
stmt.addListener(listener);
}
}
(2) 我需要做的是从 table Registros
获取数据,如果 velocidad > 50
使用 printLn(),我不明白 pattern
在这个例子。
而不是 "EPServiceProviderManager.getDefaultProvider();" 你会想要使用 "EPServiceProviderManager.getDefaultProvider(configuration);".
Configuration configuration = new Configuration();
ConfigurationDBRef configDB = new ConfigurationDBRef();
configDB.setDriverManagerConnection(....);
configuration.addDatabaseReference("MyDB", configDB);
EPServiceProvider epService = EPServiceProviderManager.getDefaultProvider(configuration);