【问题标题】:Apache Beam - what are the limits of Deduplication functionApache Beam - 重复数据删除功能的限制是什么
【发布时间】:2021-01-27 17:44:30
【问题描述】:

我有一个 Google 数据流管道,使用 Apace Beam 构建。应用每天接收大约50M条记录,现在为了忽略重复记录,我们打算使用beam框架提供的Deduplication函数。

该文档没有说明重复数据删除功能可以工作的最大输入计数,也没有说明它可以保留数据的最大持续时间。

将 50M 记录简单地扔到重复数据删除功能上,其中大约一半会重复,并保存保持 7 天的持续时间,这样的设计会不会很好?

【问题讨论】:

    标签: java google-cloud-platform google-cloud-dataflow apache-beam apache-beam-io


    【解决方案1】:

    如您提供的链接中所述,重复数据删除功能对每个窗口执行重复数据删除。

    如果您有 1H 的窗口,并且您每隔 3H 复制一次到达,则该函数不会复制它们,因为它们位于不同的窗口中。

    因此,您可以定义超过 1 天或更多天的窗口。没有限制。数据存储在工作人员身上(以保存它们),也保存在内存中(以提高效率)。而且数据越多,管理数据量的服务器配置就越强大。

    【讨论】:

    • 我们还没有任何窗口,所以一切都在全局窗口中。将重复数据删除的持续时间保持 7 天可以吗? - 资源不是问题 - 仅关注重复数据删除持续时间为 7 天且每天有 50M 条传入记录时的效率。
    • 1 个 7 天的全局窗口?因此要对 350M 的消息进行重复数据删除。这将需要一段时间和大量内存,但如果这是您的用例,它应该可以工作。我从未尝试过这样的大量数据!
    • 是的,感谢您的回复。我将尝试重申设计。如果我们将去重持久化时间减少到 1 天,并且一天的输入消息是 50M,提供足够的资源,是否会影响去重,我们预计去重步骤不会延迟。
    • @kylebutters 你有没有设法重申设计? guillaume blaquiere 的回答有帮助吗?等待您的回复。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-17
    • 1970-01-01
    • 2013-01-02
    • 1970-01-01
    • 2020-10-06
    • 1970-01-01
    相关资源
    最近更新 更多