當輸入元素在DoFn的側面輸出中具有標誌值時,是否有辦法關閉窗口?例如。表示關閉會話的事件關閉窗口。基於元素值之後的關閉窗口
我一直在閱讀文檔,觸發器大多數時間基於。一個例子會很棒。
編輯:Trigger.OnElementContext.forTrigger(ExecutableTrigger觸發器)似乎很有前途,但ExecutableTrigger文檔目前非常苗條。
當輸入元素在DoFn的側面輸出中具有標誌值時,是否有辦法關閉窗口?例如。表示關閉會話的事件關閉窗口。基於元素值之後的關閉窗口
我一直在閱讀文檔,觸發器大多數時間基於。一個例子會很棒。
編輯:Trigger.OnElementContext.forTrigger(ExecutableTrigger觸發器)似乎很有前途,但ExecutableTrigger文檔目前非常苗條。
我不認爲這是可用的。現在只有一個數據驅動觸發器,elementCountAtLeast。
https://cloud.google.com/dataflow/model/triggers#data-driven-triggers
用於這項工作各地將複製會話窗口功能代碼,編寫自定義窗口的功能。
總之,你把分配元素融入同一窗口,直到您看到您的終端元素。然後開始創建一個新窗口。
目前,沒有方法來觸發關閉一個元素的內容,很遺憾。來自Apache Beam Docs:
梁提供了一個數據驅動觸發器,
AfterPane.elementCountAtLeast()
。這個觸發器在元素計數上工作;它會在當前窗格收集至少N個元素之後觸發。
當前有一個open ticket更強大的數據驅動程序觸發器。然而(同樣,目前來看),看起來Beam團隊正在逐個填寫數據驅動觸發器的用例(即元素數或時間戳),而不是增加基於廣泛的支持來觸發任意值在一個元素內。
ExecutableTrigger包裝一個Trigger對象以供執行。請參閱ExecutableTrigger文檔。