我打算开始在Google cloud Pubsub中开发程序。只是想确认一下。
从波束留档中,只有当Pubsub声明数据延迟时才会发生数据丢失。使用全局窗口时,假设数据将始终在没有任何消息丢弃(延迟数据)的情况下传递是否安全?
根据水印和延迟的概念,我得出的结论是,在使用基于事件的触发器对接收的数据应用自定义窗口的情况下,这些度量是至关重要的。
当您处理流数据时,选择全局窗口基本上意味着您将完全忽略事件时间。相反,您将使用触发器在流转时长(即当它们到达时)中对数据进行快照。因此,您不能再将数据定义为“晚”(无论是“早”还是“准时”)。
如果您对这些事件实际发生的时间不感兴趣,而只是想根据观察它们的顺序对它们进行分组,则应选择此方法。我建议您阅读这篇关于流数据处理的精彩文章,尤其是“何时/何地:处理时间窗口”下的部分,其中包括一些比较不同窗口策略的漂亮视觉效果。