淺談資料開發神器——數棧離線開發平臺(BatchWorks)

數棧DTinsight發表於2021-04-21

隨著數智化時代的到來,企業需要匯聚各業務板塊資料,提供一個強大的中間層為高頻多變的業務場景提供支撐。基於此類需求,“資料中臺”應運而生,將資料提煉為資料資產,轉換成業務需要的資料「血液」。

資料中臺的建設與運營,通常包含如下活動:資料匯聚、資料加工與提煉、對外提供資料服務這3部分。其中的資料匯聚、資料加工與提煉能力,是由作為資料中臺建設基座的離線開發平臺提供的。

一、 應用場景

例如,某服裝企業需要統計最近3個月在全國不同城市中,不同款式的服裝的銷量情況/庫存情況,用於指導下一步的銷售活動和款式設計,這些資料需要每天更新,這就是典型的離線計算場景。為了完成上述流程,資料部門需要進行如下處理動作:

  • 將最近3個月的銷售資料、庫存資料從業務系統中抽取出來,要支援每天的增量抽取;
  • 結合統計需求,編寫SQL進行統計;
  • 資料每天更新,需要以天為週期,觸發資料抽取、SQL統計的指令碼,每天進行資料更新;
  • 監控任務的執行情況,當發生異常情況時,需要進行排錯、重刷歷史資料等操作;

為解決以上場景的問題,需要在資料採集、儲存、加工等方面進行各種選型對比,通常可歸類為以下2類:

1、基於MySQL、Greenplum等關係型或MPP類資料庫:

  • 資料採集:可採用開源的Kettle、DataX等元件,配合shell指令碼實現資料抽取;
  • 資料開發:本地文字編輯器、Navicat等工具,配合Shell指令碼實現資料開發+週期排程;
  • 資料運維:人工觀察結果資料產出,沒有成熟的運維工具,通常都是業務方發現資料問題反饋給技術人員,響應滯後;
  • 叢集運維:叢集監控、告警、擴縮容均手動進行。

2、基於Hadoop體系的技術方案

  • Hadoop體系通常會採用HDFS+YARN作為基座,再配合Hive、Spark、Impala等引擎作為擴充套件;
  • 資料採集、開發、排程,均有多種可選,例如Sqoop、Hue、Oozie/Azkaban/AirFlow等,再配合Shell進行各類元件的打通與配置管理
  • 叢集運維:可採用開源的Cloudera Manager等工具。

3、以上2類場景存在以下幾種問題:

  • 採集、開發、排程、運維的工具都比較原始,由各種開源元件拼湊組合形成,沒有統一高效的管理方式,適用於小規模團隊,無法滿足大規模、團隊協作化的資料中臺建設;
  • 在資料採集方面,DataX、Kettle等元件一般都是單點使用,無法滿足大吞吐量、高併發的資料同步場景;
  • 在資料開發、任務排程方面,通常只能採用文字編輯器+Navicat+Shell的原始方案,資料開發體驗較差,在系統引數、排程打通、函式管理、後設資料檢視等方面存在各種體驗問題;
  • 排程引擎與任務運維方面,開源的Azkaban、AirFlow雖然支援基本的排程邏輯,但與開發環節彼此割裂,沒有實現無縫打通。在任務運維方面,只有基本的狀態監控,在重刷歷史資料、任務異常處理、告警配置等方面均有所欠缺;
  • 在資料管理方面,開源的Hue只有基本的後設資料檢視,在資料許可權、生命週期、後設資料擴充套件等方面均難以滿足。

二、BatchWorks主要功能

BatchWorks提供的各項功能,完整覆蓋上述場景中的各種需求,包含的功能模組如下:

1、資料同步:

  • 分散式系統架構:基於自研分散式同步引擎(FlinkX),用於在多種異構資料來源之間進行資料同步,具有高吞吐量、高穩定性的特點;
  • 豐富的資料來源支援:支援關係型資料庫、半結構化儲存、大資料儲存、分析性資料庫等20餘種不同的資料來源;
  • 視覺化配置:主要包括同步任務選擇源表、目標表、配置欄位對映、配置同步速度等步驟,2分鐘即可完成配置;
  • 斷點續傳:系統自動記錄每次的同步點位,下一週期執行時,自動從上次的讀取位置繼續同步,既可以減輕源庫的壓力,又可以保障同步的資料無遺漏、無重複;
  • 整庫同步:快速、批次配置大量同步任務,節省大量初始化精力。
  • 髒資料管理:在讀取、寫入階段發生異常的資料,系統可將這部分資料儲存下來,便於使用者及時排查髒資料問題。

2、資料開發:

  • 豐富的任務型別:支援SparkSQL、HiveSQL、Python、Shell等10餘種不同的任務型別,滿足不同場景下的資料處理需求;
  • 豐富的系統引數:內建多個系統引數,可根據需要指定自定義系統引數,支援常量、變數,可指定豐富的時間格式和時間計算模式;
  • 優秀的開發體驗:支援程式碼高亮、關鍵字/表名/欄位名智慧提示、語法檢測、編輯器主題、快捷鍵等功能,為使用者提供優秀的編碼體驗;
  • 本地檔案匯入:支援本地csv、txt檔案匯入至資料表,用於臨時性資料分析;
  • 函式管理:支援Hive、Spark等計算引擎的函式檢視、UDF函式的註冊。

3、排程引擎:

  • 基於自研分散式排程引擎,滿足任務的週期性、依賴性排程,支援百萬級別任務排程;
  • 系統可智慧識別當前任務的程式碼與依賴資訊,並自動推薦上游任務;
  • 根據使用者的排程配置,智慧識別超出有效期的任務,自動取消執行,節約計算資源。

4、運維中心:

  • 自動監控並統計每日跑批進度、異常情況等資訊,彙總易出錯任務,協助使用者排查程式碼質量、平臺執行情況等問題;
  • 實時監控例項執行情況,進行檢視日誌、重跑、終止、恢復排程等操作;
  • 透過指定時間範圍,快速重刷歷史資料,操作簡單、便捷;
  • 可根據失敗、超時等多種條件觸發告警規則,透過簡訊、郵件等方式將異常資訊傳送給指定人員。

5、安全保障:

BatchWorks採用多種方式保障資料安全和功能操作的安全,主要涵蓋叢集安全、資料安全和功能安全3部分:

  • 叢集安全:可對接開源Kerberos元件,保障平臺安全訪問。
  • 資料安全:支援使用者跨專案許可權申請,可指定需要的具體操作內容和欄位資訊,經管理員審批透過後可訪問。
  • 功能安全:內建管理員等多種角色,不同的角色有不同的操作許可權,保障功能安全。

三、產品優勢

1、全生命週期覆蓋:

覆蓋資料採集、資料處理、排程依賴、任務運維等場景,充分滿足離線資料開發過程中的各項需求,相比傳統的開源工具,可以節省80%資料開發時間。

2、多引擎、異構對接:

  • 相容開源、Cloudera、Hortonworks、星環、華為Fusion Insight等各種Hadoop體系或MPP類資料庫作為計算引擎;
  • 一套離線開發平臺支援同時對接多套雲環境的異構引擎,例如:一套BatchWorks同時對接阿里雲 EMR、AWS EMR、本地機房TiDB引擎;

3、自主智慧財產權:2大核心模組100%自研,掌握全部智慧財產權

  • 批流一體資料同步引擎FlinkX:基於Flink框架自主研發的分散式、外掛化、批流一體資料同步引擎FlinkX,具備全量/增量/實時資料抽取全棧能力。該引擎已經在Github上開源
  • 高效能分散式排程引擎DAGScheduleX:自主研發的分散式DAG排程引擎,支援百萬級任務併發,具備週期性、依賴性、優先順序等多種排程配置

4、線上化、視覺化操作:

產品透過Web頁面為使用者提供服務,遮蔽底層複雜的分散式計算引擎,線上化開發平臺,提高開發效率。


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

相關文章