12月25日,由中國計算機學會主辦,CCF大資料專家委員會承辦的2021中國大資料技術大會以線上+線下的方式拉開了帷幕。網易副總裁、網易杭州研究院執行院長、網易數帆總經理汪源受邀出席本次大會並做了主題演講,分享了對綜合性資料生產力方法論的最新思考,網易數帆相應支撐技術體系的特色與落地成果,以及支撐該體系的開放式流批一體架構和核心技術Arctic的實現。
資料生產力:繼承成果,統一技術發展目標
何謂資料生產力?汪源基於資料技術發展的核心目標給出了兩層定義:狹義上指用於資料整合、清洗、轉換、查詢、視覺化等資料加工處理軟體的生產能力及這些軟體的執行維護能力,廣義上則指使用資料所帶來的組織生產力提升。當然,後者需要前者的支撐。
為什麼要提出這樣的方法論?汪源表示,從上個世紀的關係資料庫、SQL、資料倉庫、OLAP,到近年來的大資料、資料治理、資料中臺,資料分析領域的方法論層出不窮,這些方法論為技術研究和產品開發提供了較好的指導,如資料探勘提出了超越基礎統計的知識發現方法,大資料提出了全體而非抽樣、相關而非因果的思想,促成了從ETL到ELT的轉變。但由於這些方法論誕生於不同歷史背景,天然難以融合形成整體統一的方法論,因而對資料技術的體系化發展造成了困擾。
事實上,於企業組織而言,不管構建何種資料處理技術,提升組織生產力都是其核心目標,這就是資料生產力產生的內因。而實現資料生產力的願景,是實現人人用資料、時時用資料,使得資料分析的能力成為企業差異化的關鍵。在這方面,7-11便利店、SHEIN、名創優品和德邦快遞等行業翹楚已經提供了典型的範例。
網易數帆資料生產力方法論包括了三大要素:DataOps、DataFusion和DataProduct。DataOps重點是實現資料生產的敏捷和高質量,來自於Gartner的定義,本質上是透過軟體工程的CI/CD(持續整合/持續交付)方法融入資料分析產品開發流程,做到資料需求的敏捷交付。DataFusion要實現整個組織資料的統一和共享,破解煙囪式開發模式下的需求響應慢、查詢速度慢等問題。DataProduct(資料產品)最終要實現資料分析系統和業務系統之間的連線,以及資料的智慧化的應用。
汪源強調,綜合性資料生產力方法論三大要素與歷史上的資料分析方法論是一脈相承的,彙集了主流資料分析方法論的核心要素。例如,DataFusion就是資料中臺、資料治理、資料倉庫和大資料等方法論的集大成者。
網易有數:資料生產力技術體系
基於綜合性資料生產力方法論和願景,網易數帆打造了有數技術體系來促進業務發展。該體系包括資料研發、資料中臺和資料產品三層架構,分別對應DataOps、DataFusion和DataProduct三要素。汪源分別深入介紹了這些技術產生的背景、核心建設思路、有數特色工作和業務應用成果。
DataOps的實踐,源自缺乏自動化測試工具、測試任務汙染線上資料、上游任務修改影響下游產出和任務釋出缺乏有效管控等現象。基於此,網易數帆構建了一個高質量的資料釋出流水線,從任務開發開始,經過資料測試、配置檢查、Code Review、影響分析等一系列步驟,最後釋出包要經過稽核之後才進入生產釋出環節。
其中網易數帆的特色工作,主要包括資料測試的SQL Sacn,生產/測試隔離,下游影響分析和釋出稽核等。其中SQL Sacn等價於軟體工程的靜態掃描,但體現了SQL核心專業知識,網易數帆支援跨層依賴、全表掃描、固定分割槽等,覆蓋SQL開發常見問題和錯誤,並支援自定義規則擴充套件。
DataFusion的實踐,包括了統一指標管理體系,高複用、規範的資料模型,基於ROI沉澱資料資產和資料服務化等四大著力點。以資料服務化為例,網易數帆透過管理系統支援視覺化配置方式生產API,並以許可權、熔斷、限流等服務治理能力支援API共享,以API編排能力避免煙囪式開發。網易雲音樂透過該系統釋出了176個API支撐28個數據應用,日呼叫量達到1.26億。
DataProduct的實踐,意在打破傳統報表模式下資料組織混亂、無法轉化為有效決策、資料到業務鏈路不通等瓶頸,面向業務需求構建一個好用的、能解決問題、指導工作的產品體系。其核心思路,是透過資料門戶、演算法平臺、決策引擎、連線中心等產品,建立從組織資料、發現異常、診斷異常、決策建議到決策執行的鏈路。
汪源舉了一個網易嚴選應對庫存週轉高的案例,基於有數資料產品建設的嚴選供應鏈決策系統,包括銷量預測、庫存分析、補貨決策、採購建議等一系列自動功能,並連線到供應商管理、採購、倉配、選品等業務系統,實現的效果,是系統自動採購訂單佔比82%,總體庫存下降43%,庫存週轉天數下降24%。
Arctic表服務:升級開放式流批一體架構
從底層看,流批割裂是有數技術體系建設必須解決的一個核心技術難題。無論對於資料儲存、系統運維、資料/應用開發和資料複用,流批割裂的複雜性都會帶來成本和效率的極大影響。
對此,網易數帆形成了一個基於資料湖的開放式架構,包括五個層面的技術,最底層是檔案系統,實現資料儲存和訪問;第二層是檔案格式,定義檔案與資料之間的關係;第三層是表格式,定義檔案與表之間的邏輯關係;第四層是表服務,最佳化表物理結構,提供讀寫API;最上層以SQL方式來提供統一入口。
“在這個架構裡面,每一層都是開放的技術,我們在做技術方案設計時始終追求與開放性技術的無縫融合,因為這樣才能夠滿足企業客戶的需求。”汪源強調說。
網易數帆近期對該架構的升級,主要包括專門構建了Arctic流批一體表服務取代Hive表服務(計算引擎整合),並引入Apache Iceberg作為流批一體表格式。
具體而言,Arctic提供實時場景支援和多引擎支援,即支援基於主鍵的更新、流表的實時訂閱、實時維表join,支援Flink、Spark等主流計算引擎支,Presto、Impala等主流分析引擎,並支援多引擎併發讀寫,保障 ACID。
Arctic透過資料寫入、資料讀取和資料整理三個層面的處理來實現這些能力,如實時資料寫入Change,批次資料寫入Base,讀時合併Base和Change。汪源詳細介紹了Arctic Tree資料組織原理,及Compaction、Split、Merge-on-Read等應用。
他表示,無Arctic的索引設計(透過演算法定位資料)、Base和Change多對對靈活對映和動態分割槽控制檔案大小等設計,帶來了寫入快、讀取快、寫放大降低三個技術特點,從而形成了一個高效能的流批一體表服務。