2017-03-28 9 views
0

私はprofillingアプリケーションを開発しており、Apache StormのCDR(Call Detail Record)データで動作しています。アプリケーションの主な目的は、指定された時間ブロック(すべてのウィンドウ内)でCaller TotalCallCountTotalCallDurationを抽出することです。面白いことに、私はSlidingWindowテクニックを使用したいと思います。 Apache StormのTupleWindowの開始/終了時間

は TupleWindowが開始され、 を終えたとき、あなたは私が を知っている必要がありprofillingについて画像 SlidingWindow Image

を以下で見ることができます理解します。私は、TupleWindowのタイムスタンプ、またはSlidingWindowのタイムスタンプと開始と終了をどういう意味ですか。

ストームの実装を調べても、それについては何も見つかりませんでした。どのようにそれを把握することができます私を助けることができますか?

では、Apache嵐の1.xのリリースを使用している場合は、この情報はTupleWindow経由で直接アクセスすることはできません非常に

答えて

2

、ありがとうございました。これを手動で計算する必要があります。例えば。

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; 
    ... 
    } 

しかし、特にイベントの時間枠がある場合は、すべてのケースで非常に単純ではないかもしれません。

最新の嵐のマスターブランチでは、TupleWindowには、ウィンドウ終了タイムスタンプを返すgetTimestampメソッドがあり、処理時間とイベント時間ベースの両方のウィンドウで機能します。これは、storm(2.0リリース)の将来のリリースで利用可能になります。将来のStorm 1.xリリースでも移植され、利用可能になる可能性があります。

関連する問題