簡體   English   中英

Google Cloud Dataflow ETL(數據存儲 - >轉換 - > BigQuery)

[英]Google Cloud Dataflow ETL (Datastore -> Transform -> BigQuery)

我們使用數據存儲作為持久性后端在Google App Engine上運行應用程序。 目前,應用程序主要具有“OLTP”功能和一些初步報告。 在實施報告時,我們遇到使用數據存儲區和GQL處理大量數據(數百萬個對象)非常困難。 為了使用適當的報告和商業智能功能增強我們的應用程序,我們認為最好設置ETL過程以將數據從Datastore移動到BigQuery。

最初我們考慮將ETL過程實現為App Engine cron作業,但看起來Dataflow也可用於此。 我們有以下設置流程的要求

  • 能夠通過使用BigQuery的非流API將所有現有數據推送到BigQuery。
  • 完成上述操作后,只要使用流API在Datastore到BigQuery中更新/創建任何新數據,就將其推送。

我的問題是

  1. Cloud Dataflow是否適合實施此管道?
  2. 我們能夠推送現有數據嗎? 一些種類有數百萬個對象。
  3. 實施它的正確方法應該是什么? 我們正在考慮兩種方法。 一種方法是通過pub / sub,即對於現有數據創建一個cron作業並將所有數據推送到pub / sub。 對於任何新的更新,在DataStore中更新數據的同時將數據推送到pub / sub。 Dataflow Pipeline將從pub / sub中選擇它並將其推送到BigQuery。 第二種方法是在Dataflow中創建一個批處理管道,它將查詢DataStore並將任何新數據推送到BigQuery。

問題是這兩種方法可行嗎? 哪一個更好的成本? 有沒有比上面兩個更好的其他方式?

謝謝,

rizTaak

數據流絕對可以用於此目的。 實際上,Dataflow的可擴展性應該使流程快速且相對容易。

你的兩種方法都應該有效 - 我會優先考慮使用批處理管道來移動現有數據,然后通過Cloud Pub / Sub處理新數據的流管道。 除數據移動外,Dataflow還允許對數據本身執行任意分析/操作。

也就是說,BigQuery和Datastore可以直接連接。 例如,請參閱BigQuery文檔中的從雲數據存儲區加載數據

另一種使用第三方解決方案將數據加載到Google BigQuery的方法。 有很多人在這里 他們中的大多數都是付費的,但有一個免費的數據加載頻率有限。 在這種情況下,您不需要編寫任何代碼。

暫無
暫無

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

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