首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >这是Dataflow的一个好用例吗?

这是Dataflow的一个好用例吗?
EN

Stack Overflow用户
提问于 2015-08-14 15:55:09
回答 1查看 1K关注 0票数 0

我们目前正在使用google任务队列来对请求进行批量处理,以便将分析数据存储到Keen和Stathat (更多的批处理处理)。为了从任务队列中消费,我们有一组要从任务队列中使用的流程代理和工作人员。考虑到数据流是一种逻辑,我们只需要编写推送到分析解决方案的逻辑,并且我们可以指定在数据流程序中处理时要提取的批处理大小,我很好奇数据流的开销(似乎更多的是更大的应用程序)是否适合。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-08-14 17:24:20

您的用例对于Dataflow来说似乎是一个很好的用例。与其将数据发布到任务队列中,不如将其发布到pubsub,作为将数据流到Dataflow作业的方法。您的数据流作业可以使用数据流窗口和触发器根据大小和/或时间对数据进行批处理。然后,您可以将每一批数据写入数据存储。

数据流应该在小型数据集上很好地工作。这种开销很可能是由于Dataflow工作人员未使用的CPU周期造成的。数据流允许您控制工作人员的数量,这样您就可以分配适合您的数据大小的工作人员数量。

利用率将取决于您的负载在时间上的均匀分布。如果您的峰值负载和平均负载非常不同,那么您可以在延迟和利用率之间进行权衡。如果您想保持较低的延迟,那么您可以选择工作人员的数量,以便在高峰时间内保持同步。另一方面,如果希望最大限度地利用,则可以根据平均负载提供工作人员的数量。在高峰时期,您将开始在pubsub中积累大量的消息。该系统将在有闲置产能的非高峰时期消除积压。

现在,Dataflow不支持为无界数据编写自定义接收器。解决这一问题的一种方法是从DoFn而不是接收器进行写入。只要您能够以幂等的方式进行写入,这样就可以很好地工作,这样多次编写记录就不会造成问题。

窗口和触发器是一种将数据划分为有限批的方法,其中聚合(例如分组、求和等)可以应用。这个博客帖子比我更好地解释了它(看看“窗口”一节)。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32014096

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档