【问题标题】:Google Dataflow Sharing Resources Between Windows谷歌数据流在 Windows 之间共享资源
【发布时间】:2017-04-10 20:50:24
【问题描述】:

我目前正在构建一个谷歌数据流管道,该管道在运行时写入多个大查询表。我目前面临的问题是,我需要重新使用大查询服务实例、表信息等资源(我不想每次都重新创建这些资源)但我无法将它们缓存在有效的方式。

目前我正在使用一个简单的工厂来缓存它们(使用静态并发哈希图)。管道似乎没有从缓存中挑选那些(实际上它做了几次,但大多数都是重新创建的)。

我看到了一些解决固定大小会话窗口的方法,但如果有的话,我需要更简单的解决方案。

那么,对于我目前面临的问题,是否有任何最佳做法或解决方案。 有没有办法在windows之间共享资源?

【问题讨论】:

  • 不清楚(至少对我来说)你在问什么。可以分享一下你的代码吗?
  • @GrahamPolley 我们必须创建自己的流式 bigquery 编写器。这位作家的启动成本很高。我们希望在窗口之间缓存 writer 的各个方面以减少开销。
  • @GrahamPolley 我很乐意详细说明。目前,我正在处理数以千万计的记录,其中有一个 ID 字段,这是我要在运行时创建的大查询表(其中大约有 3,00,000 个唯一 ID)。因此,每当我查询这些表的信息时,我都想缓存它们,以便减少 API 调用开销。所以我的问题是如何让这些资源为数据流管道窗口共享,它目前没有从缓存中提取这些信息,它的重新创建(我希望这些资源在不同的窗口之间共享)?

标签: google-bigquery google-cloud-dataflow apache-beam


【解决方案1】:

实际上,我放错了日志信息,导致结果反转(我的错)。但是静态工厂与管道作业分开的解决方案似乎解决了资源共享问题。希望这对任何有类似问题的人有所帮助:)

【讨论】:

    猜你喜欢
    • 2017-11-27
    • 2013-12-10
    • 2021-09-24
    • 2011-05-11
    • 2019-10-07
    • 1970-01-01
    • 1970-01-01
    • 2019-03-07
    相关资源
    最近更新 更多