《3-4 字節跳動全域數據集成演進歷程.pdf》由會員分享,可在線閱讀,更多相關《3-4 字節跳動全域數據集成演進歷程.pdf(27頁珍藏版)》請在三個皮匠報告上搜索。
1、字節跳動全域數據集成演進歷程李暢 字節跳動大數據工程師|l 16年加入字節跳動開發套件團隊,從0到1設計、研發了面向字節各業務線的數據集成服務l 專注大規模數據的分布式計算和傳輸領域,提供高效、可靠的全域數據集成解決方案個人簡介|目錄01數據集成背景02數據集成演進歷程03通用能力改造04未來展望數據集成背景01|數據集成背景介紹數據集成是數據中臺建設的基礎,主要解決異構數據源間數據傳輸、加工和處理Dataleap是字節跳動自研的一站式數據中臺套件,并服務字節內部各業務線數據建設場景外部數據源 數據庫 消息隊列 其它存儲數據研發平臺Dataleap 開發 集成 治理外部系統 數據分析 在線數據
2、服務 機器學習全域數據集成演進歷程02|2022-now:通用能力輸出 降低數據建設成本|全域數據集成演進歷程2018之前:每個通道各自實現 MR/Spark/etc.,M*N套系統2018-2019:統一架構,覆蓋批式場景 基于Flink 引擎,完成批式場景統一2020-2021:覆蓋流式場景,批流一體 覆蓋流式場景,完成批流統一2021-2022:覆蓋CDC場景,湖倉一體 一套系統,覆蓋所有數據同步場景初始期成熟期成長期|基于Flink的異構數據源傳輸架構初始架構基于Flink 1.5 DataSet API,只覆蓋批式場景提供抽象的BaseInput和BaseOutput,實現數據源種類
3、線性擴展框架層提供統一基礎服務,包括類型系統、自動并發度、臟數據檢測、流控等支持Yarn部署,資源管理比較彈性|Flink Batch任務進度查詢原始改進|Flink Batch任務進度查詢Source進度SourceProgress=CompletedSplits/TotalSplitsOperator進度CurrentProgress=Min(ParentProgress,Current-Read-Records/Parent-Write-Records)Flink Task執行過程Flink是以任務驅動,JM構建好Split,Task常駐,不斷向JM請求新的Split所有Split處理完
4、Task才會退出|基于Flink批流一體的架構主要升級點Flink 1.5-Flink 1.9,API 統一到DataStream API,支持批流一體架構基礎框架擴展,支持Exactly Once、Event Time、Auto DDL同步等特性對Flink Core進行多項基礎改進,支持推測執行、Region FailoverRuntime升級,支持云原生架構|MQ2Hive寫入流程優化ShufflePipelined|基于Flink湖倉一體的架構CDCBatch ModeKafka(Binlog)Hive(T-1)HDFS(T)StreamingModeSpark MergerHive(
5、T)初始CDC同步架構數據處理流程比較復雜依賴Flink、Spark多種計算引擎*CDC:Change data capture實時性T+1產出,最快小時級延遲,不支持近實時分析場景效率存儲開銷大,每個分區都是全量鏡像計算成本較高,Merge進行全局Shuffle|基于Flink湖倉一體的架構Batch ModeData Integration FrameworkStreaming ModeBatch SourceStreaming SourceIncremental SourceBatch SinkStreaming SinkIncrementalMode主要升級點Flink 1.9-Fli
6、nk 1.11,接入Hudi數據湖引擎,支持CDC數據變更同步對Hudi引擎進行多項基礎改進,以提高整體的寫入效率和穩定性近實時寫入,延遲 Hash Index Compaction服務獨立 緩存優化MQ|寫入效果通用能力改造03|通用能力改造目標 對外能力輸出,降低數據建設成本能力構建 低成本共建能力 架構的兼容能力|低成本共建能力思路1模塊拆分現狀大Jar包,模塊間耦合較重數據處理流程不清晰解決方案功能模塊劃分組件可插拔|低成本共建能力思路2接口抽象現狀Flink API深度綁定,較為復雜Connectors接入成本高解決方案抽象新的API接口,與引擎無關屏蔽引擎細節|架構兼容能力現狀Fl
7、ink深度綁定,場景受限制依賴較重,簡單場景資源浪費解決方案預留多引擎入口執行環境抽象探索Local本地執行方式思路1多引擎架構|架構兼容能力現狀內部依賴綁定公司大數據底座解決方案剔除內部依賴,采取通用解決方案大數據底座Provided依賴,不綁定固定底座,運行時由外部指定,針對不兼容的場景,通過maven profile、maven shade隔離針對數據源多版本以及版本不兼容的問題,采取動態加載的策略思路2依賴隔離未來展望04|未來展望多引擎架構Local Engine 落地,支持本地執行,提高簡單場景資源利用率引擎智能選擇策略,針對簡單場景使用Local Engine;針對復雜場景復用大數據引擎的能力流式數據湖統一CDC數據入湖解決方案,穩定支撐千萬級QPS數據湖平臺能力構建,覆蓋批式、流式、增量使用場景通用能力建設新接口推廣,對用戶屏蔽引擎細節,降低Connector開發成本探索Connector多語言方案非常感謝您的觀看|