Google在資料分析服務Dataflow加入全新基礎架構Runner v2,現在全面提供多語言支援,讓開發團隊能夠共用以各自喜好語言開發的元件,並且組織成為一高效能分散式處理工作管線。Google正透過多語言工作管線框架,使得更多的Java轉換可以用在Beam Python上。

過去Dataflow執行程式在運作Apache Beam工作管線時,僅使用特定語言的工作程序,Google提到,在資料工作管線開發時,當開發團隊成員使用不同語言SDK進行開發工作,或是主要使用的開發語言,沒有某種特別的功能時,團隊總會面臨抉擇,不知道應該要選擇創建解決方案來橋接各種語言,或是重新開發需要的功能,而無論是哪一種方法,都相當耗費資源。

最新的Dataflow中,Google提供了解決這個問題更好的辦法,將Dataflow執行程式逐漸轉變成為以服務為基礎的架構,提高整體的可縮放性、通用性和效率。現在Dataflow加入了多語言工作管線Runner v2,是一個以C++開發的高效能可移植框架,基於資料處理工作管線開發模型Apache Beam開發而成,與用來進行批次作業的Dataflow Shuffle,以及用來處理串流任務的Streaming Engine打包在一起。

現在Dataflow Runner v2已經能夠用於Python串流工作管線中,Google建議,使用者可以先在現有的工作負載測試,之後再於新的工作管線預設啟用Runner v2。Runner v2加入了許多前一版本沒有支援的功能,除了多語言工作管線之外,Runner v2還原生支援Apache Beam資料來源框架Splittable DoFn,並且可以在Dataflow中使用自定義的容器,另外,Dataflow Runner v2也啟用Python串流工作管線的新功能,包括計時器、狀態、視窗以及觸發擴展支援。

Google提到,因為Apache Beam的多語言功能,因此用戶可以使用單一語言開發特定功能,並且藉由Runner v2,簡單地在多個Beam SDK提供相同的新功能,像是Google在Apache Beam 2.23時,就已經讓Apache Beam Java SDK中的Apache Kafka連接器以及SQL轉換功能,可以用於Python工作管線中。

要在新支援的Dataflow Runner v2使用Python轉換工作管線,只要電腦已安裝Apache Beam提供的最新Java開發套件(JDK),便能夠在Dataflow Python工作管線中使用Python轉換。

在後臺,Google為了使Java轉換可以用於Dataflow Python工作管線中,Apache Beam Python SDK在用戶的電腦上,啟動了本地端Java服務,在Python工作管線中,創建Java工作管線片段,接著SDK會下載需要的Java相依項目來執行這些轉換。在執行時,Dataflow Workers平行執行Python和Java程式碼,以運作用戶的工作管線。


熱門新聞

Advertisement