簡體   English   中英

Apache將數據流pub / sub解析為字典

[英]Apache beam parsing data flow pub/sub into a dictionary

我正在使用Beam / Dataflow運行流式管道。 我正在從pub / sub中讀取我的輸入,並將其轉換為如下所示的dict:

    raw_loads_dict = (p 
      | 'ReadPubsubLoads' >> ReadFromPubSub(topic=PUBSUB_TOPIC_NAME).with_output_types(bytes)
      | 'JSONParse' >> beam.Map(lambda x: json.loads(x)) 
    )

由於這是在高吞吐量管道的每個元素上完成的,因此我擔心這不是最有效的方法嗎?

在這種情況下,最好的做法是什么,考慮到某些情況下我將要處理數據,但有可能將其直接流式傳輸到bigquery中。

除非發生一些效率極低的事情,或者您有一些特別的擔憂(例如,您觀察到的某些指標似乎不正確),否則這種方法很好。 JSON解析似乎足夠輕巧,因此不會成為問題。 梁管道流道甚至可以潛在地融合多個類似的操作,以便在同一台機器上執行它們以提高效率,從而避免在工作機之間傳輸數據。

您可能開始發現性能問題的主要情況可能涉及外部系統(例如,網絡延遲或調用外部服務時的限制),或分組操作(例如,使用GroupByKey / CoGroupByKey實施聯接),這些數據需要持久地聚合存放在某個地方,需要在工作計算機之間轉移(隨機操作)。 在這些情況下,盡管與網絡,持久性和其他相關成本相比,JSON解析或運行每個元素相對簡單的轉換代碼的成本可能微不足道。

暫無
暫無

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

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