2017-04-10 129 views
0

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

目前我正在使用一个简单的工厂来缓存它们(使用静态并发哈希映射)。流水线似乎没有从缓存中选择那些(实际上它已经做了几次,但其中大部分都是重新创建的)。

我看到了一些解决固定大小会话窗口的问题,但如果存在任何问题,我需要更简单的解决方案。

那么,有什么最佳实践或解决方案来解决我目前遇到的问题。 有没有什么办法可以在Windows之间共享资源?

+0

目前尚不清楚(至少对我而言)你在问什么。你能分享你的代码吗? –

+0

@GrahamPolley我们必须创建自己的流式BigQuery作家。这位作家有很大的启动成本。我们希望在窗口之间缓存作者的各个方面以减少开销。 – NPSF3000

+0

@GrahamPolley我很高兴详细说明。目前,我正在处理的数千万条记录中有一个ID字段,这是我在运行时创建的大型查询表(其中大约3,00,000个唯一ID)。所以,无论何时查询这些表的信息,我都想缓存它们,以便减少API调用开销。 所以我的问题是如何让这些资源共享数据流管道窗口,其当前不从这些缓存中提取这些信息,它的重新创建(我希望这些资源在不同的窗口之间共享)? –

回答

0

其实我错误的记录信息,让反转结果(我的坏)。但Static Factory与管道工作分开的解决方案似乎解决了资源共享问题。希望这有助于任何有类似问题的人:)