2016-12-05 38 views
1

我試圖創建一個流的數據流管道,可以是在轉換訪問。 我需要訪問一些額外的數據來處理從pubsub收到的主要輸入。如果我使用側面輸入,然後經過一段時間(如1天),我需要更新緩存的側面輸入數據。 還是有什麼辦法將其他數據以列表或映射的形式傳遞給轉換,以便我可以使用第三方緩存管理器刷新此數據。更新/刷新側輸入的數據或通過一些附加數據組而處理主輸入

感謝。

+0

您的意思是說您希望主輸入暫停並等待側面輸入更新?或者你的意思是說,當沒有收到任何輸入時,你想發送新的數據到側面輸入? –

+0

感謝您的評論,請等待......我需要更新問題以更好地瞭解我的要求。 –

回答

2

這裏有一些可能性:

  1. 如果你可以表達作爲變化的無限PCollection更改到側輸入 - 通過訂閱更改通知的主題 - 例如,那麼你應該可以添加您正在查看的PCollection的更新作爲側面輸入,只要您能夠容忍陳舊的數據。側面輸入的更新和緩存在更新上沒有定義的延遲,但肯定會少於一天。

  2. 如果您沒有更改通知主題,您仍然可以編寫自己的UnboundedSource Dataflow將查詢更新。這可能會更復雜一點。

  3. UnboundedSource類似,在Apache中梁(孵化)上有支持與回調的計時器在DoFn,所以你可能會喜歡跟着BEAM-27積極工作。

  4. 你也可以駕車在進入主輸入的數據你自己的緩存。

根據其他細節,可能有其他方法。您可能需要考慮如何「等待」新的價值準備就緒。對於特定的窗口,任何主輸入都將等待側面輸入具有該窗口的值。但是一旦側面輸入有一個值,就不會再等待了,而只是一個盡力而爲的最終更新。

相關問題