簡體   English   中英

通過流式傳輸 Pubsub 數據豐富固定 BigQuery 數據的數據流模板/模式

[英]Dataflow Template/Pattern in enriching fixed BigQuery data by streaming Pubsub data

我有一個 BigQuery 維度表(變化不大)和來自 PubSub 的流式 JSON 數據。 我想要做的是查詢這個維度表,並通過加入來自 PubSub 的傳入數據來豐富數據,然后將這些加入的數據流寫入另一個 BigQuery 表。

由於我是 Dataflow/Beam 的新手,並且這個概念對我來說仍然不是很清楚(或者至少我開始編寫代碼有困難),所以我有很多問題:

  1. 我可以用什么最好的模板或模式來做到這一點? 我應該先做 BigQuery 的 PTransform(然后是 PubSub 的 PTransform)還是先做 PubSub 的 PTransform?
  2. 我該如何加入? ParDo.of(...).withSideInputs(PCollectionView<Map<String, String>> map)
  3. PubSub 的最佳 window 設置是什么? BigQuery 的 PTransform 部分的 window 設置與 Pubsub 的 PTransform 部分不同是否正確?

您需要加入兩個 PCollection。

  1. 包含來自 Pub/Sub 的數據的 PCollection。 這可以通過使用PubSubIO.Read PTransform創建。
  2. 包含來自 BigQuery 的數據的 PCollection。 如果數據是 static,則可以使用BigQueryIO.Read轉換。 但是,如果數據可以更改,那么 Beam 中當前可用的 BigQuery 轉換可能無法正常工作。 一種選擇可能是使用轉換PeriodicImpulse和您自己的ParDo來創建周期性變化的輸入。 有關示例,請參見此處(請注意,最近添加了PeriodicImpulse變換)。

您可以在ParDo中組合數據,其中PCollection (1) 是主要輸入, PCollection (2) 是輔助輸入(類似於上面的示例)。

最后,您可以使用BigQueryIO.Write轉換將 stream output 轉換為 BigQuery。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM