最新2.7版本丨DataPipeline資料融合產品最新版本釋出

DataPipeline發表於2020-02-12


此次釋出的2.7版本在進一步最佳化產品底層資料處理邏輯的同時更加註重提升使用者在資料融合任務的日常管理、執行監控及資源分配等管理方面的功能增強與最佳化, 力求幫助大家更為直觀、便捷、穩定地管理資料融合任務,提升系統的易用性與穩定性。


一、新增功能


1.  在待處理列表中檢視或配置重要任務、故障任務、待完善任務、效能關注任務


功能背景:


對於大多數資料工程師而言,每天需要配置、管理、監控的任務數以百計,任務的重要程度、時效性要求與效能要求也都千差萬別,其中既包括為線上產品提供實時計算資料的任務,也有資料備份等優先順序較低的任務。同時,為了應對不停變化的市場與業務需求,新的資料融合任務需求也會連續不斷地湧現,資料工程師在保證現有任務穩定執行的同時,還需不斷地新增資料任務。

大量不同型別、不同狀態的任務平鋪在客戶端首頁,導致重要任務難以得到優先關注,待完善任務可能被遺漏,效能較差的任務無法被發現,查詢任務、管理任務、處理問題佔用了較多工作時間。

新版本上線後,使用者可以對重要任務新增標識,平臺也會對任務按照重要程度、配置完成情況及執行狀態、執行效率進行評估及管理,使用者可以透過待處理列表非常直觀地看到所關注的重要任務、執行出現問題的故障任務、配置未完成待完善的任務及效能較低需要關注的任務,幫助資料工程師在日常任務監控與新需求處理中提高效率,同時對執行效率有直觀的瞭解,保障業務連續性。


功能詳情:


(1)重要任務


工作事務通常帶有自身的優先順序屬性,資料同步任務亦如此。針對重要任務,DataPipeline提供星標設定,於主頁優先展示。使用者可實時關注重要任務狀態,保證重要任務穩定執行。

(2)故障任務


集中展示出現故障的任務,保障問題不被遺漏,任務故障處理全面有序。


(3)非啟用狀態


集中展示處於非啟用狀態的任務,明確列示需要進一步完善配置或需要修改配置的任務,保證資料工程師的任務配置工作全面有序。


(4 )效能關注


效能關注部分會根據系統對任務效率評估分別展示傳輸速率較低的10個批次任務和實時任務,透過檢視效能關注,可以及時發現執行狀態不良的任務,提前做出處理,防止由於效能問題導致更嚴重的問題發生。


2. 可按照專案對任務進行分組管理


功能背景:

DataPipeline在之前的版本中幫助使用者實現了多種來源,不同結構資料的同步處理。 但隨著產品不斷被深度使用,系統使用者和資料任務數量的不斷增加,多個專案的資料融合任務混雜在一起,導致任務配置、監控及管理有些不便。

我們瞭解到,一個資料工程師可能同時需要管理多個專案,每個專案可能包含數十個上百個資料融合任務,在不能按照專案對資料融合任務進行分組管理的時候,只能憑藉記憶透過名稱、資料節點等資訊進行搜尋,耗時費力。

因此,DataPipeline新增了根據專案進行任務分組的功能,使用者可以根據任務所屬專案,對上百個任務進行分組管理,大大提高了效率。

功能詳情:


(1)支援透過自定義建立專案,對任務進行分組;


(2)支援透過勾選任務,改變多個任務的任務分組。



3. 可以為任務配置特定資源組


功能背景:

雖然DataPipeline資料融合產品基於平行計算框架,從基礎架構層面支援任務級高可用,但在資源組管理方面一直未對使用者開放,使用者在使用之前版本的DataPipeline時,所有資料任務均在一個預設資源組中執行,無法根據任務的重要程度來分配任務執行資源。

這就要求使用者只能針對重要任務配置單獨的叢集以保證任務的穩定、高效執行。這種方式在實際操作過程中存在很多客觀限制,如系統資源申請困難,成本預算控制等,也給我們的資料工程師使用者們造成了很大的困擾。

因此我們決定在新版本中開放系統資源組配置和分配功能,同時計劃在未來的版本中開放動態資源調配功能。

例如,當前系統資源為一臺16C64G的伺服器,在無法分配資源組時任務執行狀態如下:



資源組配置開放以後,使用者可以配置一個重要任務資源組和一個一般任務資源組,任務運 行狀態如 下:



重要任務相較於其他普通任務雖然啟動時間較晚。 但由於被分配在獨立的資源組中,仍然可以保證有足夠的資源保障任務平穩執行。


功能詳情:


(1)資源組配置


在部署DataPipeline時,透過修改配置檔案,可以將資料來源端/目的地端的伺服器資源劃分為多個資源組,實現業務資源組解耦。

資源組配置檔案路徑:

/data/datapipeline/dpconfig/resource_group_config.json

源端與目的地端均有兩個資源組的配置檔案,資源組配置檔案樣例如下:


置詳細說明 如下:


注: 修改配置檔案後需要重啟服務使資源組配置生效

(2)為任務的讀取與寫入分配資源組

使用者在任務設定過程中可以針對每個任務的資料讀取和資料寫入分別選擇支撐任務執行的資源組。



二、最佳化功能


1. 資料傳輸訊息佇列粒度拆分最佳化


功能背景:


DataPipeline為更好地支援高效資料融合任務,對資料傳輸訊息佇列粒度進行了進一步的拆分最佳化。

功能詳情:

首先,我們來看一下資料在DataPipeline是如何流轉的:


在此需求的使用者場景中,源端資料節點為DB1,DB1中包含三張資料表分別為T1、T2和T3。目的地端資料節點為DB2,DB2中包含三張資料表分別為T4、T5和T6。 
 
資料融合要求為,將T1、T2、T3中的資料進行合併後寫入到T4中,將T2中的資料同步到T5中,將T3中的資料同步到T6中。

在之前的處理邏輯中(如圖1),按照目的地寫入要求的粒度來建立訊息佇列,即將T1、T2、T3的資料寫入1個訊息佇列進行快取,也就是圖1中的訊息佇列1。

圖1


該快取機制可以很好地支援T4的資料同步,由於資料進入了1個訊息佇列,所以在同步T5、T6的資料時需要將快取中的T1、T2、T3資料進行拆分,處理效率較低。

DataPipeline針對資料傳輸中訊息佇列快取粒度進行了拆分最佳化(如圖2),按照資料來源資料表的粒度,進行訊息佇列拆分,即將資料來源T1、T2、T3的資料分別寫入三個訊息佇列進行快取。

圖2

同步至T4的資料會讀取T1、T2、T3分別對應的訊息佇列,進行合併後寫入合併訊息佇列,再供T4對應的消費單元進行消費,同步至T5、T6的任務可以分別讀取T2與T3對應的訊息佇列進行資料寫入。


這樣,我們便可同時支援源端多表合一同步與其中一張表的單獨同步。由於拆分多個併發來讀取資料,T2至T5、T3至T6的資料同步速率會明顯提升。而對於將T1、T2、T3的資料進行合併同步至T4的流程,雖然新增了一步訊息佇列內部的合併操作,但速率影響較小,可以較好地支援上述場景。

2. 支援在任一資料同步任務中靈活修改資料來源/目的地配置資訊

透過支援在任一資料同步任務中靈活修改資料來源/目的地配置資訊,可使資料節點配置在全域性生效,提升任務配置效率。



除資料來源/目的地型別之外均可修改,當資料來源有其他任務正在執行時不允許修改 修改後資料來源/目的地節點的配置即全域性生效。


三、其他功能增強與問題修復


除上述功能之外,DataPipeline還分別從以下幾方面對產品進行了功能增強與問題修復:

1. 支援對使用者註冊資訊中郵箱的修改


2. 為資料任務頁面複製、編輯、刪除等按鈕新增文字註釋


3. 最佳化執行緒實時任務心跳,支撐運維監控


4. 最佳化後設資料查詢SQL和相關邏輯,修復索引查詢


5. Hive資料來源重構最佳化


6. Hive Kerberos的驗證最佳化


7. 最佳化由於JDBC連線造成的任務卡頓問題


DataPipeline的每一次版本迭代都凝聚了團隊對企業資料管理需求的深入思考和積極探索,希望在這個特殊時期,新版本能夠切實幫助大家更敏捷高效地融合資料 、使用資料、分析資料。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31556703/viewspace-2675303/,如需轉載,請註明出處,否則將追究法律責任。

相關文章