开发者社区> 问答> 正文

Apache Flink - 每小时聚合数据的每日汇总

我有一个窗口小时聚合的DataStream。

DataStream ds = .....

SingleOutputStreamOperator hourly =
ds.keyBy(HourlyCountersAggregation.KEY_SELECTOR)

         .timeWindow(Time.hours(1))
         .aggregate(new HourlyCountersAggregation());

这个DataStream每小时都会接收到Cassandra。

我也想要每天聚合相同的DataStream 。

建议的方法是从每小时聚合的DataStream执行此操作,以避免从DataStream ds 保持大的每日流式传输状态....

展开
收起
flink小助手 2018-12-06 17:17:56 7923 0
2 条回答
写回答
取消 提交回答
  • 请问,目前需求想使用flink进行每周的数据聚合,但目前时间方面只支持到hour级别,请问有自定义实现的接口吗

    2019-09-24 14:33:59
    赞同 展开评论 打赏
  • flink小助手会定期更新直播回顾等资料和文章干货,还整合了大家在钉群提出的有关flink的问题及回答。

    我想您可能会尝试分配作业图,以便在接收器和下一个窗口中使用每小时聚合数据的输出(这样您就可以在每小时聚合之上进行每日聚合,从而节省计算时间)。就像是:

    SingleOutputStreamOperator hourly = ds.keyBy(HourlyCountersAggregation.KEY_SELECTOR)

         .timeWindow(Time.hours(1))
         .aggregate(new HourlyCountersAggregation());
    

    hourly.addSink(...);

    SingleOutputStreamOperator daily = hourly.timeWindow(Time.hours(24))

         .trigger(CountEventTrigger.of(24))
         .aggregate(...);
    2019-07-17 23:18:37
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Apache Flink技术进阶 立即下载
Apache Spark: Cloud and On-Prem 立即下载
Hybrid Cloud and Apache Spark 立即下载

相关镜像