Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/8.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
Apache Storm中的TupleWindow开始/结束时间_Apache_Apache Storm_Sliding Window - Fatal编程技术网

Apache Storm中的TupleWindow开始/结束时间

Apache Storm中的TupleWindow开始/结束时间,apache,apache-storm,sliding-window,Apache,Apache Storm,Sliding Window,我一直在开发一个在ApacheStorm中使用CDR(呼叫详细记录)数据的profilling应用程序。应用程序的主要目的是在指定的时间段(在每个窗口中)提取调用方TotalCallCount和TotalCallDuration。对于轮廓,我想使用滑动窗口技术 要理解这一点,请看下图 对于Profiling,我需要知道TupleWindow何时开始和结束。我的意思是TupleWindow的时间戳是多少,或是SlidingWindow的开始和结束的时间戳是多少 即使我查阅了Storm的实现,我也

我一直在开发一个在ApacheStorm中使用CDR(呼叫详细记录)数据的profilling应用程序。应用程序的主要目的是在指定的时间段(在每个窗口中)提取调用方TotalCallCount和TotalCallDuration。对于轮廓,我想使用滑动窗口技术

要理解这一点,请看下图

对于Profiling,我需要知道TupleWindow何时开始和结束。我的意思是TupleWindow的时间戳是多少,或是SlidingWindow的开始和结束的时间戳是多少

即使我查阅了Storm的实现,我也找不到任何关于它的信息。你能帮我想一想怎么弄清楚吗


非常感谢

如果您使用的是apache Storm的1.x版本,则无法通过TupleWindow直接访问此信息。您必须手动计算此值。例如

public class MyBolt extends BaseWindowedBolt {
  ...
  long slidingInterval;

  @Override
  public BaseWindowedBolt withWindow(Duration windowLength, Duration slidingInterval) {
      this.slidingInterval = slidingInterval.value;
      return super.withWindow(windowLength, slidingInterval);
  }


  public void execute(TupleWindow inputWindow) {
    long now = System.currentTimeMillis();
    long windowEnd = now;
    long windowStart = now - slidingInterval;
    ...
  }
但在所有情况下,特别是当您有事件时间窗口时,这可能不是很直接

在storm的最新主分支中,有一个
getTimestamp
方法,该方法返回窗口结束时间戳,并适用于处理窗口和基于事件时间的窗口。这将在storm的未来版本(2.0版)中提供。它可以进行后端口,并在未来的Storm 1.x版本中提供