[英]Dataflow Template/Pattern in enriching fixed BigQuery data by streaming Pubsub data
[英]Messages stuck in GBP when streaming from multiple PubSub topics to BigQuery using DataFlow?
我有一個包含以下部分的Java DataFlow管道:
如果要連接的訂閱列表中有多個PubSub-topic,則所有元素都將卡在BigQuery編寫器的Reshuffle操作中的GroupByKey操作中。 發送幾十條測試消息后,我已經讓它運行了幾個小時,但是BigQuery沒有寫任何東西。
我發現了以下三個變通方法(每個變通方法都與其他變通方法分開)
消息不是故意加時間戳的-僅使用PubsubMessage時間戳將它們寫入BigQuery是完全可以接受的。
這也使我感到困惑,即使添加不存在的時間戳屬性也似乎可以解決該問題。 我調試了該問題以打印出管道中的時間戳,並且在兩種情況下它們都是可比較的; 指定不存在的時間戳記屬性時,無論如何似乎都回落到pubsub時間戳記。
是什么導致此問題? 我該如何解決? 對我來說,最可接受的解決方法是刪除Flatten.pCollections操作,因為它不會嚴格使代碼復雜化,但是我無法理解失敗的原因。
您是否將加窗應用於管道? Beam文檔警告您使用無邊界的PCollection(例如Pub / Sub),而不會出現任何窗口或觸發事件:
如果您沒有為無邊界的PCollection設置非全局窗口函數或非默認觸發器,然后使用分組轉換(例如GroupByKey或Combine),則管道將在構造時生成錯誤,並且您的工作將失敗。
在您的情況下,管道不會在構造上失敗,但是消息會停留在GroupByKey中,因為它正在等待窗口結束。 嘗試在BigQuery編寫器之前添加一個窗口,看看是否可以解決問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.