我們正在運行處理多個輸入流的Dataflow作業。其中一些是高流量,其中一些很少收到消息。我們使用包含與所有元素相關的信息的「共享」流來加入所有流。這是管道的一個簡單的例子:Dataflow流水線在執行GroupBy之前等待來自所有流的元素
我注意到,工作不會產生任何輸出,直到都流包含一定的流量。
例如,假設Stream 1
獲得穩定的流量,而Stream 2
在一段時間內不會產生任何消息。此時,作業的DAG將顯示GroupByKey
步驟中正在積累的元素,但是除此之外沒有任何內容會傳播。我還可以看到Flatten PCollections步驟顯示圖表左側的輸入元素,但不是正確的。當處理同一作業中的高流量流量和低流量流時,這會產生問題,因爲這將導致輸出延遲達到Stream 2
拾取消息所需的量。
我不確定觀察結果是否正確,但我想問一下,這是一般的Flatten/GroupByKey如何工作,如果是這樣,如果我們看到的問題可以通過構建管道。
(實施例作業ID:2017-02-10_06_48_01-14191266875301315728)
你在那一步使用了什麼樣的窗口和觸發器?即使沒有流中的元素,您也應該能夠配置您的窗口/觸發器來工作。 – Pablo
@Pablo'FixedWindows'和'Sessions'具有默認觸發器和第二種情況下30分鐘的間隔持續時間。 據我所知,我可以添加一個觸發器,使用處理時間或過早添加的元素數量,但我想避免這種情況,因爲這意味着某些會話將不完整(30分鐘不活動可能沒有通過)當面板被觸發時。 – livathinos