宜信盧山巍:資料中臺的“自動化資料治理”時代已來

宜信技術學院發表於2019-11-18

中臺,我理解是能力的下沉,資料處理能力下沉為加工平臺,資料處理結果下沉為資料資產。那麼資料治理能否下沉?可以下沉出什麼東西?

——宜信資料中臺負責人 盧山巍

本文來源:宜信資料中臺負責人盧山巍在億歐產業網際網路頻道“數字中臺創新”沙龍的分享實錄

原文首發:億歐

億歐產業網際網路頻道10月24日在上海InnoSpace落地“數字中臺創新”沙龍,活動匯聚了良品鋪子電商技術中心總監羅軼群、愛馳汽車科技資訊總監杭瑜峰、宜信資料中臺負責人盧山巍、ThoughtWorks首席諮詢師及極客時間《說透中臺》專欄作者王健、億歐華東負責人繆國成、億歐產業網際網路頻道副主編黃志磊、億歐產業網際網路頻道作者龔晨霞參與分享,就數字中臺話題展開深度討論。

宜信是一家成立於2006年從事普惠金融和財富管理業務的金融科技企業,2018年基於四大開源平臺和中介軟體等技術,開始研發資料中臺,並在宜信內部推廣使用。目前,宜信的中臺部門一共分為兩大板塊:資料中臺和AI中臺。  

以下是盧山巍演講觀點梳理:

1、宜信資料中臺指導思維:統一建設、敏捷開發

2、從開源到中臺,關鍵詞是自助化

3、資料治理,更依賴人治還是自治?  

以下是演講速記實錄,經億歐產業網際網路頻道整理,供行業人士參考。

大家下午好,我叫盧山巍,來自宜信。剛才聽羅總高屋建瓴地介紹了中臺的概念和應用,受益匪淺。我的分享會不太一樣:第一,我有一個限定詞是“資料”。羅總的分享對業務中臺、組織中臺、技術中臺都有探討,而我本身是做資料的,所以我只介紹資料中臺。第二,我個人是從純粹技術路線走上來的,分享的內容會比較具體而微 。

我今天分享的話題是《宜信資料中臺建設三部曲》,內容將按照時間發展故事線來展開。分別是:「敏捷使者」— ABD時代(2015年-2018年) ;「自助奇兵」— ADX時代(2018年-2019年); 「自治歸來」— ADG時代(2019年-)。

2015年加入宜信之前,我在上海張江的eBay研發中心工作,當時的主要方向是大資料架構和研發,在付費廣告組做大資料相關的事情。由於我個人的關注點比較下沉,對平臺技術更感興趣,因此總想在技術領域中做出一些框架和平臺類的東西。  

1、宜信資料中臺指導思維:統一建設、敏捷開發

2015年宜信找到我,說公司內部沒有資料平臺,希望我能夠去帶領建設資料平臺,於是我加入了宜信。

其實說“公司沒有資料平臺”是不準確的,更準確地說應該是“公司沒有統一的資料平臺”,因為公司很多業務線都有自己所謂的資料平臺,有的做得好一點,有的是純粹的定製化,談不上平臺化,因為公司規模很大,很多是自下而上地建設,不像銀行是自上而下去推動做這個事情。當時也沒有資料中臺這個概念,只是說要做一個好的資料平臺,感覺有點無從下手,很有挑戰,因此著手做了很多公司內部的調研和訪談,用幾張圖來展現當時的現狀。

左上角的圖表達的是業務的豎井,從前臺到業務開發端,到資料端,甚至有的資料庫都沒打通。通常好的資料中臺,要有好的業務中臺配合,在業務豎井嚴重的現狀下,想在資料層融合打通是挺難的事。

左下角表達的是在2015年的時候,很多企業都面臨的兩個慢的問題,即:時效慢、實施慢。

一方面,那時比較主流的還是T+1批處理,很多企業沒有完善的流式處理平臺,不像現在有很多成熟的選擇。一般來講都是隻能滿足T+1時效的資料需求。

另一方面,因為沒有很好的自助平臺給大家使用,就變成了需求提給特定的BI團隊,BI團隊接了這個需求,需求多了忙不過來,就開始排期,可能要1-2個月甚至以上的時間才能響應和處理這個需求。

有的業務部門比較有實力,擁有不少大資料工程師,使用了很多技術選型,比如MongoDB、ES、HBase、Cassandra、Phoenix、Presto、Spark、Hive、Impala等等各種技術選型都有,沒有統一的技術選型標準。而公司需求又是多樣化的,像上圖右邊的自助查詢、360全景分析、實時處理、多維分析、資料湖等等,使得大資料架構變得越來越複雜和臃腫,越來越難以建設和維護,再加上圖下方的資料治理、資料質量、資料安全等切面課題,當時面臨的就是這樣一個比較複雜的現狀。

在這樣的現狀之下思考整個問題,找尋解決方案。本身我個人是比較倡導敏捷開發思想的,敏捷開發更多是在業務開發方面的實踐經驗,大資料比較笨重,怎麼才能讓大象奔跑起來?我認為要用敏捷化思想去建設資料平臺。經過調研和思考,形成了一系列大資料敏捷思想框架、實踐和方法論,更重要的是我們要落地一些中介軟體去驅動敏捷化實踐。

接下來我們先後自研了四個中介軟體平臺:DBus、Wormhole、Moonbox、Davinci。既然用了這麼多的技術選型,又很難快速將它們統一到一套技術選型,還要能夠去統一收口管控關鍵節點,最好的辦法就是利用中介軟體思想去適配已有的選型,然後再去簡化整個架構。

下面這個圖就比較技術視角了,展示了整個資料處理的鏈路,從左到右,分為資料來源層、資料整合層、資料匯流排層、資料處理層、資料儲存層、資料服務層和資料應用層 。其中資料來源層,天然有各種各樣的選型,這是業務需要;資料儲存層,出於不同目的有了眾多技術選型,這個也沒法很快統一,而且本身也很難找到一個大資料儲存選型,能夠解決所有的儲存問題和計算問題,所以不得不面對多個儲存和計算的整合問題。

在應用端,需求場景驅動也是很難整合統一的。能夠整合收口的是資料整合層、資料匯流排層、資料處理層和資料服務層 。整個資料鏈路梳理完之後,是一種“開放+統一”的架構,有些層面是開放包容的,而有些層面是要統一收口管控的。

當然,上圖灰色的切面課題也是應該關注和支援的,因為我們當時的策略是做四個中介軟體工具DBus、Wormhole、Moonbox、Davinci,因此沒有太關注這些切面課題 。

下面分別介紹這些中介軟體工具:

  • DBus,能夠實時將資料抽取出來,可以對接多個資料庫和日誌,既可以實時抽取增量資料,也支援抽取全量資料,並與增量資料保持一致性id體系,以支援後續冪等入庫。
  • Wormhole,負責流式作業開發和管理,可以不用編寫程式碼,只透過配置和SQL方式即可支援實時同步和流上處理邏輯。這也體現出敏捷性:一是中介軟體統一了通用技術實現,不用重複開發;二是不斷地降低資料專案實施成本,實施人員儘量關注業務邏輯本身,簡單培訓即可自助完成專案,這些都是敏捷思想的體現。舉個例子,從使用體驗上看,比如增量資料從Oracle實時出來,希望實時寫到MySQL裡去,只要簡單配置一下就可以了,如果還需要有一些實時處理邏輯,比如流上增量資料去Lookup外面的Redis,只要寫一個SQL即可 。另外,因為我們做中介軟體而不重造引擎,所以Wormhole是基於主流流式計算引擎Spark和Flink開發的,使用者可以自行選擇希望的計算引擎。Flink還支援CEP操作,所以Wormhole也支援CEP規則配置。
  • Moonbox,異構系統混算服務,假設資料因為各種原因存放在各個不同的地方,但又希望能夠混算這些資料,你可以當Moonbox是一個“虛擬資料庫”來使用。比如A表在Oracle裡,B表在MongoDB裡,C表在ES裡,一個完整的SQL發給Moonbox,會自動將結果混算出來並返回結果資料;同時,Moonbox還能有效利用各個儲存的計算優勢,將更多運算元下推計算,以整體提高運算效能。
  • Davinci,視覺化平臺,一般視覺化平臺具備的功能Davinci基本都具備,並且支援豐富的視覺化應用和系統整合能力,力圖解決“大資料最後十公里問題”。

這些中介軟體做出來後帶來了什麼效果?比如某條業務線2-3個資料相關人員,對業務非常瞭解,但沒有大資料技術開發背景,經過一兩週的培訓,就可以自助地、快速地完成各種實時數倉、實時報表、實時應用的端到端專案。這在以前是不可想象的,以前要做一個實時專案,需要有大資料技術開發背景的團隊來支援,而現在哪怕不是IT背景的人,培訓一下就可以做這個事情了,這就是敏捷中介軟體工具帶來的效率提升和成本減低。  

接下來更深入地介紹一下Wormhole。

除了上面說到的配置化和SQL化開發流式應用這些好處,從內部技術實現角度來看,很多流式開發要注意的典型問題也都被中介軟體遮蔽了,這些對使用者來說是透明支援的。  

  • 冪等Sink,流上的增量資料不保證強有序,但是落Sink的時候要做到最終一致性。Wormhole已經內建了這個處理邏輯,使用者只管寫好流上邏輯SQL就可以 。
  • HDFS小檔案,做大資料大家都知道這個問題,Wormhole也內建瞭解決方案。
  • 多Flow支援,這是我們獨創的功能,如果做過Spark開發,會知道寫一個Spark程式,它起來後會一直佔固定記憶體跑一個作業,而我們認為Spark streaming應該是物理資源管道,裡面的流上邏輯應該和物理資源解藕,所以我們設計開發了Flow的概念。Flow的定義就是從哪兒來,到哪兒去,在流上做什麼處理邏輯。解耦帶來的效果是一個Spark streaming物理管道可以跑多個邏輯Flow,比如說公司有1萬張表,需要同步到2萬個目標端,可能在以前開發需要起兩萬個Spark streaming作業,現在只需要起一個Spark streaming作業就可以了,比如設定50G記憶體,在裡面跑2萬個同步Flow工作,相當於做了邏輯層管道支援,這個還是比較獨創的,目前只有我們在這麼做。
  • 動態指令,這個是和運維相關的,我不希望每次改流式處理邏輯的時候都要去重啟這個流,而是能夠線上更改、實時生效。
  • 業務時間策略,以前Spark streaming是預設基於Process time去做計算的,現在流式引擎很成熟了,引擎內部支援基於Event time計算,但當時Spark streaming還沒有支援,所以這塊我們也做了相應的支援。
  • Flow漂移,這個也是運維相關,比如說,我們起了5個物理的Spark streaming管道,每個裡面跑10個Flow,某天某個業務線增量資料量激增,某個Stream資源不夠用了,Flow漂移能力就可以將這個邏輯Flow漂到其他空閒的Spark streaming物理管道里。這就是在不斷地降低流式處理運維開發的門檻,儘量做到敏捷化,也就是說我可以寫一個自動化小程式,定時檢測哪一個Spark streaming資源不夠,哪一個閒置,然後自動漂一個Flow,這樣可以做到流式處理的自動化運維。這個課題大家也在探索,批次作業相對很好運維,出了問題自動重啟就可以了,但流式處理的話就比較難運維了,包括資源大小、重啟Offset等等,我們在上面都做了很多的工作。所以我們不是簡單地包裝Spark,而是做了很多深入的東西的。

關於開源,我以前就職於eBay,eBay出了幾個Apache頂級開源專案,對我們也是很有影響的,所以我在宜信設計做這四個工具的時候,一開始就是朝著通用化開源工具的方向進行的。不知道在座大家有沒有聽說過這幾個工具,其中Davinci在社群是很火的,很多公司都有在用。

至此,第一階段工作趨於穩定,解決了公司內部很多的問題,開源的幾個工具不光是在公司內部得到很好的應用,在技術社群也賦能了很多其他企業。

第二階段是從去年下半年開始的。2017年我參加了杭州雲棲大會,聽過阿里分享的資料中臺,那時“中臺”這個詞還沒有流行起來。到了2018年初,我就在思考,認為資料中臺是當下公司需要做的東西,於是跟CTO建議,他也很支援我們,之後沒幾個月,資料中臺開始流行起來,所以我們也相當於趕上風口了。

2、從開源到中臺,關鍵詞是自助化

ABD時代已經做得不錯了,為什麼還要再往上做資料中臺?除了前面提到的業務線多、技術選型多、需求多等這些大家都知道的問題之外,從資料管理層面來看,如資料治理、資料資產等都還沒有涉及,還有很多切面上的課題也沒有過多考慮。之前因為開源也和一些社群、公司做過線下交流,都表示“你們的開源工具做得很好,但是離我們業務需求想要的中間感覺還差一塊”,其實差的就是一個類似資料中臺的東西。

不管資料中臺如何定義,企業需要一個能夠更加直接賦能業務的平臺,因此我們可以在業務需求和中介軟體工具之間再提升一個層次,構建一個一體化、標準化、一站式的自助平臺。

進入第二個時代,敏捷資料中臺ADX。下圖大三角中的藍色三角,資料平臺引擎,從技術層面來講,我們首先要基於之前的開源工具建設一個好用的自助平臺。但是單單一個好的自助資料平臺,不等同於資料中臺。參考了很多資料中臺文章和定義後,我們總結出資料中臺還應該包括其他三塊。  

  • 一塊是資料資產體系,資料資產是好的資料資訊的沉澱和複用,資料中臺一定要將資料資產建設納入其中,具體方式比如將資料模型方法論固化並下沉系統化,這樣能夠更加規範化、標準化地支援沉澱資料資產。
  • 有了資料資產,有了好的平臺,但如果壺很大、口很小,資料價值賦能業務頻寬不足,業務部門可能直觀感受會覺得好像只能看報表,會造成資料賦能能力不夠。所以對接前臺業務不光要能提供報表,還需要能夠提供資料產品、資料API、自助分析等,這些都可以更好地賦能業務。
  • 有了這些,資料中臺能不能真正運轉起來,還要看公司的流程制度和運營機制。比如我有好的資料資產,卻沒有資料運營機制保障,其他業務團隊也不會敢用,如果要複用的話我要對其負責,這些都是資料運營的考慮範疇。這些方面都做好之後,才有可能把資料中臺做好並運作好。

資料中臺的價值體現,在上圖右側也有展示,簡單來說就是“更省更快更準”,或者換個說法是“降本增效提質”,這就是資料中臺的價值本質。

下面這張圖是ADX上一個大致的使用體驗,在自助化資料中臺上,整個資料中臺研發團隊就成為在其背後的IT團隊了。使用者不必和我們直接打交道,在平臺上可以自助地申請資源、申請庫表,自助開發、自助運維、檢視監控 、設定報警、診斷問題、上線下線等,我們只要做好平臺設計、研發和運維,這是我們想達到的效果,更加全面徹底的自助化、平民化。

資料中臺是基於模組化思想建設的,拆分為眾多子模組,之間關係是分層和聯合的。比如統一的資料歸集、資料加工、資料模型、監控預警等,這些和其他公司思路都差不多;右側的資料管理、中臺管理,都是在解決切面的課題;上面部分是貼近業務使用的模組。模組很多這裡不一一展開介紹。

值得一提的是,主要核心模組都不是從零開發,而是基於ABD開源工具整合打通構建的,所以ADX不是推翻了以前的ABD,而是基於ABD更加抽象、更模式化、更面向業務去做上層建築。

現在處於ADX時代,下圖就有所變化了。DataHub整合了資料整合和資料匯流排層,以前DBus只支援流式歸集和分發,而DataHub不管是流式還是批次都可以支援。DataWorks之於Wormhole也是如此,相當於ABD功能的擴充套件外延。

下層的切面課題,也都有相應的模組對應解決。所以說ADX更加平臺化,不像以前我們做了幾個比較好的開源工具,然後大家自己DIY組合去解決各種場景專案,現在是基於一站式自助平臺,使用者可以在其上完成各種各樣的日常資料處理工作。

再提一下DataHub,這個模組當時做的時候沒覺得怎樣,做出來以後大家都覺得真的很方便,很強大。

下圖從DataHub這個模組外面站在黑盒的角度去看,可以想要什麼資料就能得到什麼資料:比如我想要某張表的每天T+1快照,它會返給我;我想要這張表的任何一個歷史時刻的精確快照,它也能返給我;我想要這張表的實時流資料,它還能返給我。之所以能做到這點,因為我們把所有表的全量+增量資料都實時落入資料湖,並基於ABD開源工具的整合模式提供各種各樣的所需資料形態,因此從資料層面來看,理論上你想要什麼,DataHub都可以提供。我們也瞭解了社群一些類似的資料整合方案,大部分都是提供單純工具層面的功能,而沒有內建實時資料湖。DataHub包含了一個資料湖,全公司所有的資料都可以實時地統一地歸集和維護進來,所有的資料使用方,想要什麼就可以返回什麼,這是非常方便和徹底的使用體驗。

第二個時代ADX時代,從開發到上線到現在大規模應用,有一年多的時間,基本能力都已具備。到了第三個時代,我們更關注資料資產能力和資料治理能力建設,沒有資料資產就談不上資料中臺,而資料治理是確保資料資產有效沉澱和賦能業務的重要保障。

資料治理這個課題,在資料鏈路每一層都有對應可能存在的問題,這些問題有些可以在系統層面解決,但更多的是依賴於人去治、依賴於組織去治,且依然不容易得到完美的解決。在這個課題上我們也在思考和摸索中,以下僅限於探討。

3、資料治理,更依賴人治還是自治?

下面是我們的一些思考。“自治”包含兩層含義:自動化治理和自助化治理。

中臺,我理解是能力的下沉,資料處理能力下沉為加工平臺,資料處理結果下沉為資料資產。那麼資料治理能否下沉?可以下沉出什麼東西?

一類是下沉出一些平臺工具,比如後設資料管理、資料質量管理,這些可以做得很通用化、工具化;一類是下沉出一些方法論的系統化,比如阿里的OneData,是一套內部打磨出來的本地化的方法論,落地為一套系統體系,這套體系和方法論不一定適合於每家公司,但我覺得這個思路每家公司都可以借鑑,打磨適合本企業業務體系的方法論,然後將之系統化,更好地約束和規範化企業內的資料治理管理和資料資產建設。

對於“自動化”資料治理,以上兩類依然不能覆蓋所有問題,比如企業有很多遺留系統、遺留流程,無法在短時間內進行大規模的、統一的改造和遷移,那麼怎樣去管控它、治理它?這依然是一個難題。RPA是一個比較新興的思路,可以很好地處理遺留系統的問題,這一點和資料治理也許可以找到很好的交叉點,比如可以利用流程編排、自動執行的思想,應對一些遺留系統、遺留環境的資料治理問題。

關於“自助化”資料治理,資料治理和資料處理不太一樣,比如流式處理,這是一個業務能夠直觀感受到的剛需,不管什麼業務都會有很強的需求。而資料治理不同,從業務角度來看,資料治理雖然就長期而言可以為整個企業和業務發展帶來堅實的正面影響,但短期內可能會限制業務快速發展的速度,所以業務方可能不會有特別大的動力去主動支援和配合資料治理。

有些企業會自上而下強制推行資料治理的管理和實踐,這是需要管理層有這個意識和決心的。我們公司不太一樣,資料治理需要向業務快速迭代和需求快速變更妥協,無法做到自上而下強推,但又不能不治,因此我們考慮能不能自助化地做資料治理。比如業務線可以建立自己的私有資料資產,如果希望升級成公有資料資產,可以進行申請稽核,當然這要可以為業務線帶來好處,要和KPI繫結,這樣一來,資料資產的運營能力可以下放,讓大家主動共同參與到資料治理中來,這種柔性資料治理推廣方式可能會更有效,這也是我們在嘗試的工作。

上圖只是一個粗略的概念架構圖,還不是特別成熟,這也是我們現在在思考的一些思路。如果可以把公司所有的後設資料歸集起來,形成一個企業級後設資料全景圖譜的話,我們就具備了資料知識;因為我們有Moonbox,我們就具備了各種資料操作能力;基於資料知識能力和資料操作能力,就可以根據資料治理的經驗、規則和現狀的流程梳理,進行資料治理動作的視覺化編排,最終形成一個自動化資料治理的體系和框架。

資料治理純靠人的話,不確定性因素太大,相對來說我更相信工具,相信透過不斷的抽象、下沉和驗證,可以找到一套更系統化的流程方式和配套工具去做得更好。

以上就是我們四年來資料中臺建設的三個時代走過的歷程,前路依然任重道遠,還需繼續摸索沉澱,希望可以和大家多多交流探討,感謝大家的聆聽!


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

相關文章