Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/367.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
esperjavaepl模式_Java_Json_Esper_Epl - Fatal编程技术网

esperjavaepl模式

esperjavaepl模式,java,json,esper,epl,Java,Json,Esper,Epl,我想处理以下JSON对象: [ { id: "38485ndndndn4848", value : 120, // kw ts: 1456983266, sensor_id: 20 }, { id: "48485ndndndn4848", value : 189, //kw ts: 1456984286, sensor_id: 20 }, {

我想处理以下JSON对象:

[
   {
       id: "38485ndndndn4848",
       value : 120, // kw
       ts: 1456983266,
       sensor_id: 20
   },
   {
       id: "48485ndndndn4848",
       value : 189, //kw
       ts: 1456984286,
      sensor_id: 20
   },
   {
       id: "98485ndndndn4848",
       value : 99, // kw
       ts: 1457984286,
       sensor_id: 21
   },
  {
       id: "64640485ndndndn4848",
       value : 56,  // kw
       ts: 1458984286,
       sensor_id: 21
   }
.
.
.
]
以获取每个传感器的每日消耗量(kWh)。 到目前为止,我已经创建了以下Java类:

public class Tick {
   String id;
   Integer sensorId;
   Double value;
   Date ts;


  public Tick(JSONObject obj) {
    this.id = (String) obj.get('id');
    long timestamp = (Long) obj.get("ts");
    this.ts = new Date(timestamp * 1000);
    this.value = (Double)message.get("value");

  }
使用此epl查询:

EPStatement cepStatement = cepAdm.createEPL("select  max(ts) as date, sensorId from " +
            "StockTick() group by deviceId ");

EPStatement cepStatement3 = cepAdm.createEPL("insert into Consumption" +
            "select t0.ts, sum(t0.value*(t1.ts-t0.ts)/3600) as val , sensorId from StockTick() as t0 join StockTick() as t1 on t0.sensorId=t1.sensorId group by  ts.getYear(), ts.getMonthOfYear(), ts.getDayOfMonth() , sensorId ");
---更新--------------

它会产生以下错误:

Incorrect syntax near 'by' (a reserved keyword) at line 1 column 261 [insert into DailyConsumption select 

我不理解“如何在消费视图中处理数据”这个问题。“插入消费”表示消费是一个流(而不是一个视图)。您可以通过将侦听器或订阅服务器附加到语句来处理该流。@goodie请检查更新的问题。。。问题在于group by…这可能是因为“t0.tsgroup by”没有空格字符,应该是“t0.ts group”。
错误开始语句:未能验证group by子句表达式“sync”:名为“sync”的属性不明确,因为它对多个流有效。
我已经在Java类中有了getter:(这是一个连接,“sync”是两个流中的一个字段。因此,请使用“t0.sync.getYear()”或“t1.sync.getYear()”代替“sync.getYear()”
Incorrect syntax near 'by' (a reserved keyword) at line 1 column 261 [insert into DailyConsumption select