2017-04-01 12 views
0

: 나는 창문이 시작되는 타임 스탬프를 좀하고 싶습니다 내 SlidingWindowStatisticsBolt의에서슬라이딩 윈도우에서 현재 윈도우 시간을 얻는 방법은 무엇입니까? 나는 폭풍의 구현에 의해 슬라이딩 창으로 사용하고

public static void main(String[] args) throws Exception { 
    TopologyBuilder builder = new TopologyBuilder(); 

    builder.setSpout("rabbitSpout", new RabbitMQSpout()); 
    builder.setBolt("filterBolt", new FilteringBolt()).shuffleGrouping("rabbitSpout"); 

    builder.setBolt("HourStatisticsBolt", new SlidingWindowStatisticsBolt() 
      .withWindow(new BaseWindowedBolt.Duration(60, TimeUnit.MINUTES), 
        new BaseWindowedBolt.Duration(10, TimeUnit.SECONDS)) 
      .withTimestampField("timestamp")).shuffleGrouping("filterBolt"); 

방법을 실행

From Here

이 내 토폴로지 또는 끝. 내 볼트에 어떻게 창 길이와 슬라이딩 기간을 얻을 수 있습니까?

답변

2

이벤트 시간 (withTimestampField)을 사용하고 있으므로 창은주기적인 워터 마크를 기반으로 계산됩니다. 현재 창 시작/종료 시간은 TupleWindow에서 노출되지 않습니다.

폭풍의 최신 마스터 브랜치에서 TupleWindow은 창 종료 시간 소인을 반환하고 처리 및 이벤트 시간 기반 창 모두에서 작동하는 getTimestamp 메서드를가집니다. 이 기능은 storm (2.0 릴리스)의 향후 릴리스에서 사용할 수 있습니다. 이것을 다시 이식하고 다음 1.x 버전에서 사용할 수있게하려면 JIRA here

을 제출할 수 있습니다