TupleWindow Start/End Apache Storm 中的时间
TupleWindow Start/End Time in Apache Storm
我一直在开发一个基于 Apache Storm 中的 CDR(呼叫详细记录)数据的分析应用程序。应用程序的主要目的是在指定时间块(在每个 window 中)提取呼叫者 TotalCallCount 和 TotalCallDuration。对于分析,我想使用 SlidingWindow 技术。
要理解可以看下图
SlidingWindow Image
为了分析,我需要知道何时 TupleWindow 开始和结束。我的意思是什么是 TupleWindow 的时间戳或 SlidingWindow 的开始和结束时间戳。
即使我查找了 Storm 的实现,也找不到任何相关信息。你能帮我看看怎么解决吗?
非常感谢
如果您使用的是 1.x 版本的 apache Storm,则无法通过 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;
...
}
但在所有情况下都不是很直接,尤其是当您有活动时间时 windows。
在storm的最新master分支中,TupleWindow有一个getTimestamp
方法,returnswindow结束时间戳,适用于基于处理和事件时间windows。这将在未来的 storm 版本(2.0 版本)中可用。它也可以向后移植并在未来的 Storm 1.x 版本中提供。
我一直在开发一个基于 Apache Storm 中的 CDR(呼叫详细记录)数据的分析应用程序。应用程序的主要目的是在指定时间块(在每个 window 中)提取呼叫者 TotalCallCount 和 TotalCallDuration。对于分析,我想使用 SlidingWindow 技术。
要理解可以看下图 SlidingWindow Image
为了分析,我需要知道何时 TupleWindow 开始和结束。我的意思是什么是 TupleWindow 的时间戳或 SlidingWindow 的开始和结束时间戳。
即使我查找了 Storm 的实现,也找不到任何相关信息。你能帮我看看怎么解决吗?
非常感谢
如果您使用的是 1.x 版本的 apache Storm,则无法通过 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;
...
}
但在所有情况下都不是很直接,尤其是当您有活动时间时 windows。
在storm的最新master分支中,TupleWindow有一个getTimestamp
方法,returnswindow结束时间戳,适用于基于处理和事件时间windows。这将在未来的 storm 版本(2.0 版本)中可用。它也可以向后移植并在未来的 Storm 1.x 版本中提供。