2017-04-10 51 views
0

我目前正在構建一個在運行時寫入多個大查詢表的谷歌數據流管道。我目前面臨的問題是,我需要重用大查詢服務實例,表格信息等資源(我不想每次重新創建這些資源),但我無法將它們緩存在高效的方式。谷歌數據流在Windows之間共享資源

目前我正在使用一個簡單的工廠來緩存它們(使用靜態併發哈希映射)。流水線似乎沒有從緩存中選擇那些(實際上它已經做了幾次,但其中大部分都是重新創建的)。

我看到了一些解決固定大小會話窗口的問題,但如果存在任何問題,我需要更簡單的解決方案。

那麼,有什麼最佳實踐或解決方案來解決我目前遇到的問題。 有沒有什麼辦法可以在Windows之間共享資源?

+0

目前尚不清楚(至少對我而言)你在問什麼。你能分享你的代碼嗎? –

+0

@GrahamPolley我們必須創建自己的流式BigQuery作家。這位作家有很大的啓動成本。我們希望在窗口之間緩存作者的各個方面以減少開銷。 – NPSF3000

+0

@GrahamPolley我很高興詳細說明。目前,我正在處理的數千萬條記錄中有一個ID字段,這是我在運行時創建的大型查詢表(其中大約3,00,000個唯一ID)。所以,無論何時查詢這些表的信息,我都想緩存它們,以便減少API調用開銷。 所以我的問題是如何讓這些資源共享數據流管道窗口,其當前不從這些緩存中提取這些信息,它的重新創建(我希望這些資源在不同的窗口之間共享)? –

回答

0

其實我錯誤的記錄信息,讓反轉結果(我的壞)。但Static Factory與管道工作分開的解決方案似乎解決了資源共享問題。希望這有助於任何有類似問題的人:)