【问题标题】:Flink streaming, how to do the counting?Flink 流式传输,如何进行计数?
【发布时间】:2019-03-28 07:11:03
【问题描述】:

我遇到了一个帖子Scaling Klaviyo’s Event processing Pipeline with Stream Processing,在帖子中,名为 Klaviyo 的公司的人在不同的时间范围内进行计数,每小时、每天甚至每月。

我有几个问题,如果我理解正确的话,他们正在使用timewindow,但是像一天这样长时间使用timewindow是否正常?!

这对我来说没有意义,如果您要进行每日或每月计数,为什么不使用批处理?在这种情况下使用流媒体的根本好处是什么?


另一种情况,如果我需要从一开始就实时统计kafka事件,现实世界的解决方案是什么?每次事件到达时使用 flink 流来更新 redis 中的“计数器”?如果kafka很忙,比如每秒几百万条消息,会不会有太多的IO和网络?

【问题讨论】:

    标签: apache-flink flink-streaming


    【解决方案1】:

    如果你每天或每月做一次,那对我来说没有意义 计数,为什么不使用批处理?什么是根本 在这种情况下使用流媒体有什么好处?

    当然,您可以进行其他批处理。但是您将如何处理重新处理?你必须重启批处理和实时进程,数据可能不匹配,因为你有两个进程。

    对于以天为单位的聚合,有 Rocks-db 解决方案,因此数据不会爆炸内存。 (在 KafkaStream 中,数据甚至被存储回 Kafka)。

    如果您需要在每次事件发生时更新计数器,那么问题是是否有人需要以 0.001 毫秒查看计数器?因为您可以在 0.3 秒内批量处理流式传输管道,而人们处于最佳状态时可以感知到。这就是为什么人们也说near-realtime,这意味着它不是实时的,但它已经满足了需求。

    【讨论】:

    • 谢谢你的回答,如果时间范围是每小时、每天和每月,我想我们可以使用批处理+一些调度系统,为什么会有2个进程?
    • 是的,每小时一次,每天不需要两次。如果每分钟使用一次,或者您将需要一个实时过程和一个批处理过程
    猜你喜欢
    • 2016-10-10
    • 2022-01-16
    • 1970-01-01
    • 1970-01-01
    • 2021-08-01
    • 2021-06-20
    • 1970-01-01
    • 2015-06-28
    • 1970-01-01
    相关资源
    最近更新 更多