溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

如何基于DataWorks構(gòu)建數(shù)據(jù)中臺

發(fā)布時間:2021-12-22 14:08:53 來源:億速云 閱讀:153 作者:柒染 欄目:云計算

今天就跟大家聊聊有關(guān)如何基于DataWorks構(gòu)建數(shù)據(jù)中臺,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。

一 新零售的商業(yè)模式

一家新零售企業(yè)如果要做數(shù)據(jù)中臺的話,首先很重要的一點就是一定要懂業(yè)務(wù)。之前有位同學(xué)問過我,說數(shù)據(jù)中臺很難建。在我看來,數(shù)據(jù)跟業(yè)務(wù)是息息相關(guān)的,在構(gòu)建整個數(shù)據(jù)中臺的時候,首先要對業(yè)務(wù)有一個非常深刻的理解。

新零售企業(yè)會有各種各樣的業(yè)務(wù)形態(tài),例如線上電商平臺、線下門店、官方APP、分銷渠道、供應(yīng)鏈等等,我們沒必要在一開始就要求把所有渠道的數(shù)據(jù)都收集起來,做大一統(tǒng),就是做數(shù)據(jù)中臺了。我們在最開始需要了解的是整個企業(yè)的商業(yè)模式是什么,基于商業(yè)模式,我們再來定義需要做的業(yè)務(wù)形態(tài),最后的事情才是開始規(guī)劃企業(yè)新零售數(shù)據(jù)中臺的建設(shè)。在這里可以給大家舉個例子。

例如比較多的新零售企業(yè)原先是以線下門店為主的,現(xiàn)在會做一些線上APP或者電商業(yè)務(wù),但是它線上的庫存和線下的庫存是不同步,或者電商的款和線下的款是不一樣的。那他的商業(yè)模式其實還是傳統(tǒng)的零售業(yè)務(wù),只不過開了另外一條線上的業(yè)務(wù)。數(shù)據(jù)中臺首先需要的是打破企業(yè)原先的商業(yè)模式,設(shè)計一個真正線上線下融合的業(yè)務(wù)形態(tài),所以我們經(jīng)常說數(shù)據(jù)中臺是企業(yè)一把手工程。

確定了商業(yè)模式之后,新零售企業(yè)的業(yè)務(wù)形態(tài)也有很多,大家都在做不同的嘗試,例如一些生鮮業(yè)務(wù)會有XX分鐘限時達、有線下門店的企業(yè)會把線下流量導(dǎo)入到線上,同時把線下門店當做線上入口的一個倉、也有企業(yè)線上購買后可以到線下門店提貨,保證線上線下同款同價等等。當確定了這些業(yè)務(wù)形態(tài)后,我們再來聊數(shù)據(jù)中臺如何去支撐這些業(yè)務(wù),通過數(shù)據(jù)的打通來完成整個商業(yè)模式的閉環(huán)。

二 新零售企業(yè)產(chǎn)品技術(shù)架構(gòu)設(shè)計

如何基于DataWorks構(gòu)建數(shù)據(jù)中臺

業(yè)務(wù)產(chǎn)品技術(shù)架構(gòu)圖

確定業(yè)務(wù)模式后,接下來需要做純產(chǎn)品技術(shù)架構(gòu)的設(shè)計。這時候許多零售的企業(yè)會比較糾結(jié),因為發(fā)現(xiàn)做零售、門店、商超,很多傳統(tǒng)的軟件廠商有一個現(xiàn)成的軟件體系,比如說ERP、WMS,對于企業(yè)來說是不是買一套就可以了?

現(xiàn)在傳統(tǒng)的ERP軟件或者是物流軟件,有一些也做了數(shù)字化,但是很重要區(qū)別是,數(shù)據(jù)中臺做的數(shù)字化不只是為了簡單的數(shù)字化、把數(shù)據(jù)結(jié)構(gòu)化,更重要的是為上層策略層做一個非常重要的支撐,讓數(shù)據(jù)中臺對流量、物流履約、流程優(yōu)化、財務(wù)策略做一個非常好的智能化的支持。在這里可以稍微分享一個例子,我們之前也調(diào)研過一些線下有門店的大型零售商超企業(yè),他們也做線上的APP,但他們的庫存線上線下是隔離的,如果總共有100條魚,APP內(nèi)會預(yù)先分配好,線上只賣10條,賣完之后線上就沒有了,而擁有數(shù)據(jù)數(shù)據(jù)中臺之后,這100條魚線上和線下先到先得,同時可以通過算法預(yù)測做庫存預(yù)警、做折扣、做交叉銷售、做供應(yīng)鏈調(diào)整等等,比起粗暴地分成兩撥,數(shù)據(jù)中臺通過這種策略模式,基本上就把整個線下線上的數(shù)據(jù)和商品全部打通,也重構(gòu)了一些業(yè)務(wù)形態(tài),所以我們說數(shù)據(jù)中臺不是簡單地把數(shù)據(jù)結(jié)構(gòu)化。

企業(yè)如果有一定技術(shù)能力的話,建議所有核心業(yè)務(wù)系統(tǒng)都采用自研的形式,因為新零售企業(yè)需要對很多傳統(tǒng)業(yè)務(wù)要做一個全面的數(shù)字化,包括交易、門店、倉儲、運配、采購、供應(yīng)鏈、勞動力等等。如果外部采購的話,基于商業(yè)模式出發(fā),一定要讓系統(tǒng)形成閉環(huán),從交易門店、倉儲運費、采購供應(yīng)鏈、勞動力等等,不要APP、門店、電商都不同的系統(tǒng),那樣你做數(shù)據(jù)中臺的時候,數(shù)據(jù)本身的壁壘就已經(jīng)很高了。

完成整個閉環(huán)中非常重要的一點就是最右側(cè)的數(shù)據(jù)層,除了業(yè)務(wù)系統(tǒng)的設(shè)計,如果沒有統(tǒng)一的數(shù)據(jù)中臺建設(shè),是很難去支撐整個企業(yè)工程的,這也是今天會重點跟大家介紹的部分。

如何基于DataWorks構(gòu)建數(shù)據(jù)中臺

新零售數(shù)據(jù)中臺團隊介紹

在我們看來,數(shù)據(jù)中臺不僅是一種解決方案,也是一個團隊的職能。企業(yè)應(yīng)該建設(shè)一個獨立的數(shù)據(jù)中臺團隊來支持業(yè)務(wù)。對于企業(yè)來說,數(shù)據(jù)和商品、會員以及設(shè)備一樣,是非常重要的資產(chǎn)。企業(yè)數(shù)據(jù)中臺團隊的同學(xué),是資產(chǎn)的建設(shè)者、管理者和運營者,通過這些資產(chǎn)去驅(qū)動整個零售供應(yīng)鏈全鏈路、智能化的升級。通過采集、管理、建設(shè)數(shù)據(jù),讓數(shù)據(jù)更好地運用到業(yè)務(wù)上。

如何基于DataWorks構(gòu)建數(shù)據(jù)中臺

新零售數(shù)據(jù)中臺整體架構(gòu)

上圖是比較通用的數(shù)據(jù)中臺的整體架構(gòu),這部分會有一定的特殊性,也有一些通用性。

首先介紹一下通用性,整個基礎(chǔ)設(shè)施的建設(shè)基本采用的是阿里云的基礎(chǔ)設(shè)施,阿里云上的DataWorks+MaxCompute十一年來一直支持阿里巴巴集團數(shù)據(jù)中臺的建設(shè)。在整個數(shù)據(jù)分層這邊,源數(shù)據(jù)層基本上來自于業(yè)務(wù)系統(tǒng),接入層相對來說會比較復(fù)雜一點,很多企業(yè)現(xiàn)在講全渠道覆蓋,包含APP,線下,甚至一些企業(yè)還有自己的配送員、電動車,以及門店的一些IOT設(shè)備數(shù)據(jù),人力資源等,所以這里面就會出現(xiàn)很多結(jié)構(gòu)化和非結(jié)構(gòu)化的數(shù)據(jù)。通過數(shù)據(jù)加工層把非結(jié)構(gòu)化的數(shù)據(jù)進行一定的加工,最終會形成非常重要的數(shù)據(jù)資產(chǎn)層。

數(shù)據(jù)資產(chǎn)層構(gòu)建之后就會有一定的業(yè)務(wù)含義,這部分數(shù)據(jù)是可以直接被業(yè)務(wù)使用的。但是在數(shù)據(jù)資產(chǎn)層上我們會定一層數(shù)據(jù)服務(wù)層,讓數(shù)據(jù)使用起來更方便,開箱即用。到了服務(wù)這一層,可能還是無形的,從業(yè)務(wù)方來看,肯定希望業(yè)務(wù)用戶能直接去用數(shù)據(jù),而不是去到很多表里面查數(shù)據(jù)。所以在數(shù)據(jù)服務(wù)層之上,數(shù)據(jù)應(yīng)用層數(shù)據(jù)中臺團隊可以建立很多數(shù)據(jù)產(chǎn)品,通過產(chǎn)品化的方式給到業(yè)務(wù),提供真正的數(shù)據(jù)使用。產(chǎn)品形式也會比較多,在不同的端,包括PC、釘釘、掌中寶,還有很多IOT的小設(shè)備,可能就是一個小的黑白屏幕,都會有數(shù)據(jù)的透傳。并且在最右側(cè)數(shù)據(jù)中臺會有一套管理體系,通過這種管理體系,讓企業(yè)整個運營和運維可以有效地執(zhí)行起來。這個架構(gòu)圖,就是我們理解的一個偏業(yè)務(wù)型的數(shù)據(jù)中臺分層架構(gòu)圖。

如何基于DataWorks構(gòu)建數(shù)據(jù)中臺

新零售數(shù)據(jù)中臺技術(shù)架構(gòu)

基于剛才提到這種業(yè)務(wù)型的數(shù)據(jù)中臺分層架構(gòu),我們需要繼續(xù)設(shè)計一套數(shù)據(jù)中臺的技術(shù)架構(gòu)。大家如果做過大數(shù)據(jù)的話,在數(shù)據(jù)采集的時候經(jīng)常會碰到,同時有離線和實時的計算該怎么辦?離線計算我們推薦阿里云上的MaxCompute,阿里巴巴幾乎所有的離線數(shù)據(jù)都放在MaxCompute上,2020年雙11 MaxCompute每日數(shù)據(jù)處理量達到1.7EB級。實時計算我們推薦Flink,峰值每秒處理消息規(guī)模達到40億條,計算的性能也非常強大。除了計算,還要去做數(shù)據(jù)的存儲,比如實時計算Flink的數(shù)據(jù)匯總加工后,可以存儲到MaxCompute交互式分析(Hologres),來構(gòu)建我們的實時數(shù)據(jù)倉庫,MaxCompute交互式分析(Hologres)可以支持峰值寫入速度達到5.96億條,同時支持PB級數(shù)據(jù)的亞秒級查詢,以及在線搜索Elasticsearch,并且這些存儲都會變成一個個數(shù)據(jù)服務(wù)。數(shù)據(jù)服務(wù)會有指標明細,還有特征、標簽等等,這些數(shù)據(jù)可以推廣到運營最常使用的一些設(shè)備、運營平臺、釘釘移動辦公、智能化管理等,這些更多是runtime層面的。在整個數(shù)據(jù)集市運營層面,還有元數(shù)據(jù)、數(shù)據(jù)質(zhì)量、容災(zāi)管控、數(shù)據(jù)治理等等。這個技術(shù)架構(gòu)圖,更多的是當成一個技術(shù)需求架構(gòu)圖,是新零售企業(yè)技術(shù)團隊在做數(shù)據(jù)中臺的時候需要去做的一些事情。

三 基于DataWorks的新零售數(shù)據(jù)中臺解決方案

當企業(yè)的商業(yè)模式,業(yè)務(wù)產(chǎn)品技術(shù)架構(gòu),以及數(shù)據(jù)中臺的技術(shù)需求整理之后,我們就要開始做一個數(shù)據(jù)中臺的技術(shù)選型與技術(shù)調(diào)研,什么樣的產(chǎn)品什么樣的系統(tǒng)可以去支撐新零售企業(yè)整套的技術(shù)架構(gòu)。之前說到企業(yè)的業(yè)務(wù)系統(tǒng)我們建議是自研,但整個數(shù)據(jù)中臺的技術(shù)其實是可以不自研的,因為阿里云上已經(jīng)有非常成熟的產(chǎn)品體系讓我們的新零售企業(yè)去構(gòu)建自己的數(shù)據(jù)中臺。剛才我們說到了大數(shù)據(jù)計算引擎的選型,離線數(shù)倉可以選擇MaxCompute,實時數(shù)倉可以選擇實時計算Flink+MaxCompute交互式分析(Hologres),這三個產(chǎn)品同時可以無縫組合構(gòu)建一套完整的實時離線一體化數(shù)據(jù)倉庫,構(gòu)建數(shù)據(jù)中臺的數(shù)據(jù)開發(fā)與治理工具可以選擇DataWorks,DataWorks服務(wù)了阿里巴巴集團幾乎所有的業(yè)務(wù)部門,每天集團內(nèi)部有數(shù)萬名運營小二/產(chǎn)品經(jīng)理/數(shù)據(jù)工程師/算法工程師/研發(fā)等都在使用DataWorks,同時還服務(wù)大量阿里云上的用戶,下面就是DataWorks的整體架構(gòu)圖:

如何基于DataWorks構(gòu)建數(shù)據(jù)中臺

DataWorks的整體架構(gòu)圖

數(shù)據(jù)集成是構(gòu)建數(shù)據(jù)中臺的第一步,DataWorks對外提供了數(shù)據(jù)集成的能力,它有很多批量、增量、實時、整庫的數(shù)據(jù)集成,能夠支持企業(yè)多種且復(fù)雜的數(shù)據(jù)源,目前DataWorks數(shù)據(jù)集成離線同步支持50+種數(shù)據(jù)源,實時同步支持10+種數(shù)據(jù)源,無論數(shù)據(jù)源在公網(wǎng)、IDC、VPC內(nèi)等環(huán)境,都可以做到安全、穩(wěn)定、靈活、快速地數(shù)據(jù)集成。DataWorks還有一套元數(shù)據(jù)統(tǒng)一管理服務(wù),支持統(tǒng)一的任務(wù)調(diào)度、同時提供了非常豐富的一站式的數(shù)據(jù)開發(fā)工具,覆蓋了數(shù)據(jù)開發(fā)的整個生命周期,可以極大地提高企業(yè)的數(shù)據(jù)開發(fā)效率。上層還包括了數(shù)據(jù)治理、數(shù)據(jù)服務(wù)等,并且它提供了很重要的開放平臺。因為對于絕大部分企業(yè)來說,它的業(yè)務(wù)系統(tǒng)可能是自研/采購的產(chǎn)品,通過DataWorks OpenAPI可以對很多功能做二次的加工以及和各種自研系統(tǒng)、項目系統(tǒng)的集成,例如報警信息可以推送到企業(yè)自己的監(jiān)控告警系統(tǒng),目前DataWorks提供的100多個OpenAPI可以讓企業(yè)非常簡單地去實現(xiàn)這個需求。

如何基于DataWorks構(gòu)建數(shù)據(jù)中臺

基于DataWorks構(gòu)建新零售數(shù)據(jù)中臺

當我們把這個數(shù)據(jù)中臺技術(shù)需求圖與DataWorks做一個比對時,數(shù)據(jù)采集部分對應(yīng)了DataWorks提供的數(shù)據(jù)集成,基本上左邊的這些數(shù)據(jù)同步的需求DataWorks都可以滿足。在數(shù)據(jù)開發(fā)層,DataWorks通過它的DataStudio、HoloStudio和StreamStudio可以同時完成企業(yè)離線、在線、實時的數(shù)據(jù)開發(fā),并且它還提供了數(shù)據(jù)服務(wù)跟開放接口的能力,可以通過OpenAPI的方式跟企業(yè)現(xiàn)有的系統(tǒng)和產(chǎn)品做一個集成。還有很關(guān)鍵的一點,DataWorks提供了數(shù)據(jù)地圖和數(shù)據(jù)治理的能力,這兩個功能看似是邊緣功能,但是在整個企業(yè)構(gòu)建數(shù)據(jù)中臺時起到了一個非常關(guān)鍵的作用,這塊后面會繼續(xù)展開。

如何基于DataWorks構(gòu)建數(shù)據(jù)中臺

數(shù)據(jù)中臺的目標

前面更多地可以看成是數(shù)據(jù)中臺的準備過程,了解企業(yè)的業(yè)務(wù),做了產(chǎn)品系統(tǒng)的設(shè)計,并且做了一個技術(shù)選型,接下來我們需要確定企業(yè)數(shù)據(jù)中臺建設(shè)的目標,目標不代表KPI,它也有可能是使命或者初衷。數(shù)據(jù)中臺建設(shè)的目標是,要建立一個數(shù)據(jù)豐富(全鏈路、多維度)、質(zhì)量可靠(口徑標準,結(jié)果準確),運行穩(wěn)定(產(chǎn)出及時、無故障)的一個中間層。很多人會說這是數(shù)據(jù)集市,沒關(guān)系,它就是個中間層。還有一點是數(shù)據(jù)中臺要為上層業(yè)務(wù)提供可靠的數(shù)據(jù)服務(wù)、數(shù)據(jù)產(chǎn)品及業(yè)務(wù)應(yīng)用。這就限定了它不是一個簡單的數(shù)據(jù)倉庫,也不是一個簡單的數(shù)據(jù)集市,而是一個數(shù)據(jù)中臺,是可被業(yè)務(wù)去不斷使用的數(shù)據(jù)中臺。如果企業(yè)只是把數(shù)據(jù)同步加工,放到MaxCompute或者開源的Hadoop或者一個數(shù)據(jù)庫里面,那它還只是個倉。我們定義的數(shù)據(jù)中臺是可被業(yè)務(wù)直接去使用的,甚至是要給業(yè)務(wù)帶來業(yè)務(wù)價值的,才叫數(shù)據(jù)中臺。

定義這樣一個目標之后,我們要開始做一個分步拆解,一些業(yè)務(wù)團隊在提業(yè)務(wù)需求的時候,只會告訴數(shù)據(jù)團隊要一個銷售額的數(shù)據(jù),但是這個銷售額還有限制條件,例如在什么時間段?是否包含退款?是否限制地域等等,所以數(shù)據(jù)中臺首先要做一個指標體系的設(shè)計,并且這個指標體系應(yīng)該在中臺團隊產(chǎn)品化,第二步因為業(yè)務(wù)去使用的不是一個表的字段,所以需要一個數(shù)據(jù)模型設(shè)計的支撐,讓企業(yè)把數(shù)據(jù)變得更標準,第三步基于我們設(shè)計好的模型,我們還要去做數(shù)據(jù)處理任務(wù)的開發(fā)。最后我們要把這些數(shù)據(jù)通過數(shù)據(jù)服務(wù)的方式開放出去,讓業(yè)務(wù)去使用,數(shù)據(jù)服務(wù)的形式不限于 Table、API和Report,甚至可以是一個產(chǎn)品或者其他的任何一個東西。

如何基于DataWorks構(gòu)建數(shù)據(jù)中臺

數(shù)據(jù)集市整體模型架構(gòu) - 總體分層

如何基于DataWorks構(gòu)建數(shù)據(jù)中臺

數(shù)據(jù)集市整體模型架構(gòu) - 功能定位

上圖是大家在網(wǎng)上看到比較多的關(guān)于數(shù)據(jù)模型或者數(shù)據(jù)集市構(gòu)建的分層圖——ODS、DWD、DWS和ADS。雖然有很多概念和理念,但是每個人對這幾層的理解是不一樣的,我們要對這幾層有非常嚴格清晰的定義,每一層要有每層自己的特點和職責。在我們看來,簡單概述地說:

  • ADS一定要是面向業(yè)務(wù)的,不是面向開發(fā)的,這部分數(shù)據(jù)讓業(yè)務(wù)能最短的時間去理解,甚至直接使用。

  • DWS必須是指標,也是剛才前面講的指標體系的一個承載體,都由DWS去做,DWS匯總基本上就是ADS的支撐。

  • DWD就是明細層,明細層怎么建呢?我們建議采用的是維度建模的方式,企業(yè)有維表,有事實表,維表也有很多層級維度,比如枚舉維度,事實表有周期快照。當然在這里有一個點就是DWD的字段必須是可被直接理解的,不要有二義性,一旦有二義性的時候,DWS使用的時候會有問題,會導(dǎo)致整個上游應(yīng)用都有問題。

  • ODS基本上大家理解應(yīng)該都保持一致,就是業(yè)務(wù)數(shù)據(jù)直接同步過來。但是現(xiàn)在有一些架構(gòu)的演變,大家喜歡在ODS做一個初步的ETL處理,這樣會導(dǎo)致ODS的數(shù)據(jù)跟企業(yè)業(yè)務(wù)的數(shù)據(jù)不一致。其實我們建議是不這樣做,原因很簡單,我們要保證ODS跟業(yè)務(wù)庫保持一致,這樣當出現(xiàn)問題的時候,我們能很快定位到問題的原因。一旦做了ETL,有可能ETL的過程是有bug的,會導(dǎo)致兩邊數(shù)據(jù)不一致。所以如果企業(yè)是嚴格要求從業(yè)務(wù)庫的數(shù)據(jù)到ODS不允許做任何的邏輯的處理,那么出現(xiàn)問題的時候,只能是中間件或者是其他的任何存儲出了問題導(dǎo)致的,不應(yīng)該是業(yè)務(wù)邏輯導(dǎo)致的。

四 基于DataWorks構(gòu)建新零售數(shù)據(jù)中臺

如何基于DataWorks構(gòu)建數(shù)據(jù)中臺

DataWorks數(shù)據(jù)開發(fā)平臺

前面更多講述數(shù)據(jù)中臺建設(shè)的一些思想、設(shè)計、架構(gòu)、目標及要求,接下來我和大家聊一下如何使用DataWorks構(gòu)建數(shù)據(jù)中臺以及使用DataWorks平臺的一些心得。DataWorks這個平臺不僅僅服務(wù)阿里云上的客戶,從2009年開始就同時服務(wù)阿里巴巴集團幾乎所有的業(yè)務(wù)部門。所以它的整體產(chǎn)品設(shè)計很多是偏向于開放的、通用的、靈活的。這個時候企業(yè)在使用DataWorks時會由于過于靈活或者是沒有標準等而出現(xiàn)一系列的問題,接下來的內(nèi)容就會針對我們的一些經(jīng)驗和大家分享一些心得。

如何基于DataWorks構(gòu)建數(shù)據(jù)中臺

如何基于DataWorks構(gòu)建數(shù)據(jù)中臺

數(shù)據(jù)開發(fā) - 數(shù)據(jù)同步

  • 建議所有業(yè)務(wù)庫的數(shù)據(jù)都是統(tǒng)一同步hm_ods項目進行統(tǒng)一存儲管理

  • 從節(jié)約存儲考慮,同一份數(shù)據(jù)只能同步一份。

  • 從數(shù)據(jù)回溯與審計需要考慮,數(shù)據(jù)生命周期設(shè)置為永久保存。

數(shù)據(jù)同步是構(gòu)建數(shù)據(jù)中臺的第一步,如果數(shù)據(jù)進不了倉,數(shù)據(jù)中臺就沒辦法構(gòu)建。我們在做數(shù)據(jù)同步的時候,會有幾個要求,比如企業(yè)的所有業(yè)務(wù)數(shù)據(jù)都是統(tǒng)一同步到一個項目,并且只同步一份,不允許重復(fù)同步,這樣的話方便管理,減少成本,同時保證了數(shù)據(jù)不要有二義性。數(shù)據(jù)源出問題了,那后邊數(shù)據(jù)就都有錯,所以數(shù)據(jù)中臺一定要保證數(shù)據(jù)源100%正確。然后從數(shù)據(jù)回溯與審計考慮,數(shù)據(jù)生命周期設(shè)置的是一個永久保存,哪怕業(yè)務(wù)系統(tǒng)因為一些線上庫的流量問題,會有一些歸檔、刪除,但當他們想再使用歷史數(shù)據(jù)的時候,可以通過ODS這層原封不動地再還原回去。

如何基于DataWorks構(gòu)建數(shù)據(jù)中臺

數(shù)據(jù)開發(fā) - 數(shù)據(jù)加工代碼開發(fā)

  • 數(shù)據(jù)處理過程就是業(yè)務(wù)邏輯的實現(xiàn)過程。

  • 既要保證業(yè)務(wù)邏輯的正確性,又要保證數(shù)據(jù)產(chǎn)出的穩(wěn)定性、時效性。

第二就是數(shù)據(jù)開發(fā),數(shù)據(jù)開發(fā)這部分是很考驗個人能力的,基本上大家都是使用SQL。我們自己對于數(shù)據(jù)開發(fā)這部分的心得簡單來說就是數(shù)據(jù)處理過程是業(yè)務(wù)邏輯的實現(xiàn),既要保證業(yè)務(wù)邏輯的正確性,也要保證數(shù)據(jù)產(chǎn)出的穩(wěn)定性、時效性和合理性。DataWorks進行數(shù)據(jù)開發(fā)的編輯器,除了提供比較好的coding能力以外,也提供了一些處理流程的可視化的方式,幫助企業(yè)去做一些code review,甚至部分校驗,這個功能在我們?nèi)粘J褂弥惺欠浅S袔椭摹?/p>

如何基于DataWorks構(gòu)建數(shù)據(jù)中臺

數(shù)據(jù)開發(fā) - 代碼功能示例

  • 業(yè)務(wù)邏輯會盡量收口在數(shù)據(jù)明細層,目的是保證了數(shù)據(jù)的一致性,也簡化了下游的使用。

  • 源頭上的變化,也可以通過代碼或格式等的轉(zhuǎn)換保證明細層結(jié)構(gòu)的穩(wěn)定性,避免給下游帶來過多的變更。

  • 好的模型,也需要與上游業(yè)務(wù)系統(tǒng)協(xié)同開發(fā),一要業(yè)務(wù)系統(tǒng)有合理的設(shè)計,二是變更能及時的感知。

整個數(shù)據(jù)開發(fā)的過程,因為我本身也是做Java的,每一種編程都有一定的編程范式,在整個數(shù)據(jù)開發(fā)的過程中也去抽象了幾個步驟。

首先是代碼轉(zhuǎn)換,這個代碼轉(zhuǎn)換主要是干什么用的?剛才講過業(yè)務(wù)系統(tǒng)很多是為了完成一個業(yè)務(wù)流程,會有很多個性化的處理,尤其是大家做互聯(lián)網(wǎng)業(yè)務(wù)的時候,為了解決一些性能問題或者是filter的問題,會做一些Json字段、媒體字段、分隔符等等,這樣的內(nèi)容會出現(xiàn)二義性。我們在開發(fā)中會有代碼轉(zhuǎn)換,比如說把一些枚舉的東西轉(zhuǎn)成一個實際看得懂的東西,0到底是什么?2是什么?或者a是什么?還有個格式轉(zhuǎn)換,企業(yè)有一些業(yè)務(wù)系統(tǒng),它很難標準,譬如說時間,有的用的是timestamp,有的是存字符串,有的是存yymm這些,雖然它們都代表時間,但是格式不一樣,在數(shù)據(jù)集市的構(gòu)建過程中,它要求里面的數(shù)據(jù)格式必須是一致的,我們會去把非標準的數(shù)據(jù)格式通過格式轉(zhuǎn)換的方式變成一個標準的格式。

第二是業(yè)務(wù)判斷,業(yè)務(wù)判斷這里邊基本上就是通過條件的方式得出一個業(yè)務(wù)結(jié)果。舉個例子,年輕人在業(yè)務(wù)系統(tǒng)里面肯定不會有一個叫“年輕人”這樣的字段或業(yè)務(wù)邏輯,如果有年齡數(shù)據(jù),在梳理的時候可以判斷小于30歲的人叫年輕人,這個就是我們說的業(yè)務(wù)判斷。

第三是數(shù)據(jù)連接,基本上很簡單,就是一個表關(guān)聯(lián)去補數(shù)據(jù)。

第四是數(shù)據(jù)聚合,企業(yè)在做DWS的時候會大量用到數(shù)據(jù)聚合的這部分

第五是數(shù)據(jù)過濾,我們經(jīng)常會碰到一些無效的數(shù)據(jù),我們通過數(shù)據(jù)過濾這個方式把這些無效的數(shù)據(jù)給處理掉。

第六是條件選擇,這個條件選擇基本上也就是一些where的東西,跟數(shù)據(jù)過濾稍微有點相似。

最后是業(yè)務(wù)解析。業(yè)務(wù)解析是企業(yè)最經(jīng)常用到的,因為現(xiàn)在NoSQL或者MySQL也支持了,甚至有一些業(yè)務(wù)團隊用了Mongo,那一個大字段里邊有很多業(yè)務(wù)表示。我們這幾年在數(shù)據(jù)集市做DWD的時候,一定要把這種Json字段或者map字段的格式全部解析成固定的列字段。因為我們剛才說過它的內(nèi)容必須要一致的,讓用戶直接可以看到。在這里面分享個心得,就是業(yè)務(wù)邏輯會盡量收口在數(shù)據(jù)明細層,目的是保證數(shù)據(jù)的一致性,簡化下游使用。源頭上的變化,也可以通過代碼或格式等轉(zhuǎn)換,保證明細層結(jié)構(gòu)的穩(wěn)定性,避免給下游帶來更多的變化。好的模型也需要上游業(yè)務(wù)系統(tǒng)協(xié)同開發(fā),一要業(yè)務(wù)系統(tǒng)有合理的設(shè)計,二要變更能及時地感知,所以說數(shù)據(jù)中臺的建設(shè)不是數(shù)據(jù)團隊一個團隊的事情,也要跟業(yè)務(wù)團隊去做聯(lián)動和共創(chuàng)。

如何基于DataWorks構(gòu)建數(shù)據(jù)中臺

數(shù)據(jù)開發(fā) - 任務(wù)調(diào)度配置

剛才講的這些部分更多的是開發(fā)階段,如果DataWorks只完成這些的話,我們認為它就是一個IDE,但是DataWorks作為一站式大數(shù)據(jù)開發(fā)治理的平臺,核心的一點是要去保證平臺的運行,如何去保證企業(yè)做數(shù)據(jù)開發(fā)的代碼能運行起來?那就是通過DataWorks的任務(wù)調(diào)度。一個企業(yè)的新零售業(yè)務(wù)是非常復(fù)雜的,生鮮有30分鐘送達、電商有次日達、三日達,還有一些預(yù)售預(yù)購等等。這些如果是簡單的調(diào)度系統(tǒng)可能就支持不了,DataWorks比較好的一點是,它提供了非常靈活的任務(wù)調(diào)度周期選擇,比如說月、周、日,并且能夠支持雙11每日1500萬任務(wù)的穩(wěn)定調(diào)度,從調(diào)度周期靈活性和穩(wěn)定性來看都非常好。最開始我們設(shè)計企業(yè)的新零售業(yè)務(wù)是一個閉環(huán),它每個業(yè)務(wù)是有相關(guān)性的,反過來說企業(yè)的數(shù)據(jù)任務(wù)也是有相關(guān)性的,這個時候整個的任務(wù)調(diào)度鏈路是非常復(fù)雜的。

在整個過程里面,我們也有很多嘗試、創(chuàng)新,也踩過了很多坑,這邊就跟大家分享一下。DataWorks任務(wù)節(jié)點未起調(diào)或者在錯誤的時間起調(diào)都可能出現(xiàn)數(shù)據(jù)缺失或者是錯誤,這里就要保證企業(yè)數(shù)據(jù)開發(fā)對于每個線上任務(wù)的任何問題都要及時處理,因為每個問題都會造成一個數(shù)據(jù)的問題。合理的調(diào)度策略既可以保障數(shù)據(jù)產(chǎn)出的正確性,也可以保障數(shù)據(jù)產(chǎn)出的及時性,我們希望一天產(chǎn)出,那就不要把它變成每小時產(chǎn)出,產(chǎn)生12次,就按一天就可以了,如果是三天我們就設(shè)置三天的調(diào)度。

如何基于DataWorks構(gòu)建數(shù)據(jù)中臺

數(shù)據(jù)運維&治理 - 數(shù)據(jù)質(zhì)量監(jiān)控

  • 數(shù)據(jù)質(zhì)量監(jiān)控的目的是保障數(shù)據(jù)資產(chǎn)產(chǎn)出的正確性。

  • 監(jiān)控的范疇包括表大小變化、表行數(shù)變化、字段枚舉值變化(如新增“外賣”類務(wù)類型)、主鍵沖突(同一SKU出現(xiàn)兩行)、非法格式(如email格式)等。

  • 異常值會觸發(fā)報警或中斷數(shù)據(jù)處理過程,讓值班人員有機會介入。

通過這幾步,正常情況下,我們的一個項目或者一個需求,按照這種方式去完成,我們就認為一個數(shù)據(jù)開發(fā)工程師的任務(wù)結(jié)束了。但是一般情況下不是這個樣子,因為數(shù)據(jù)中臺是一個偏商業(yè)化的事情,所以說它一旦出問題,影響是特別大的。如果說集團有集團核心系統(tǒng)、部門核心系統(tǒng),業(yè)務(wù)線有核心系統(tǒng)、非核心系統(tǒng),不同的核心系統(tǒng)需要有不同的保障,還有p1、p2、p3、p4的方式去定義故障等級,數(shù)據(jù)業(yè)務(wù)也同理。數(shù)據(jù)業(yè)務(wù)跟正常業(yè)務(wù)系統(tǒng)不太一樣的是,數(shù)據(jù)中臺團隊是依托了DataWorks來做整個線上大數(shù)據(jù)業(yè)務(wù)任務(wù)的穩(wěn)定性保障。其中DataWorks這邊提供了很重要的一個模塊,就是數(shù)據(jù)質(zhì)量監(jiān)控。數(shù)據(jù)質(zhì)量監(jiān)控可以讓企業(yè)更及時地去發(fā)現(xiàn)一些問題,當業(yè)務(wù)有影響的時候,保證我們第一時間就知道(因為有的時候業(yè)務(wù)使用還是有一定的延遲性的,數(shù)據(jù)團隊經(jīng)常遇到的就是業(yè)務(wù)出現(xiàn)問題過來找你才知道)。數(shù)據(jù)質(zhì)量的監(jiān)控,目的是保障數(shù)據(jù)產(chǎn)出的正確性,并且監(jiān)控范圍一定要比較全,不僅限于表大小的變化,函數(shù)的變化,字段枚舉值和一些主鍵的沖突,甚至一些非法格式,并且異常值會觸發(fā)報警或中斷數(shù)據(jù)處理過程,這時候值班人員要第一時間介入。

如何基于DataWorks構(gòu)建數(shù)據(jù)中臺

數(shù)據(jù)運維&治理 - 業(yè)務(wù)基線管理

  • 基線的目的是保障數(shù)據(jù)資產(chǎn)產(chǎn)出的及時性。

  • 優(yōu)先級決定了系統(tǒng)硬件資源的保障力度,也決定了運維人員值班的保障力度。

  • 重要任務(wù)都納入了基線管理;核心任務(wù)優(yōu)先級為最高級別8級。

上面講的是監(jiān)控的問題,但是一旦監(jiān)控多了就會導(dǎo)致監(jiān)控泛濫,會有很多預(yù)警報警出來,DataWorks也提供了另一種能力,就是任務(wù)基線的管理。我剛才講過業(yè)務(wù)有分級,企業(yè)的數(shù)據(jù)業(yè)務(wù)也有一些重要和非重要的任務(wù),我們通過這種基線的方式去把這些任務(wù)進行一個隔離?;€這塊我們的經(jīng)驗就是:基線是保障數(shù)據(jù)資產(chǎn)的及時產(chǎn)出,優(yōu)先級決定了系統(tǒng)硬件資源的保障力度,也決定了運營人員值班的保障力度,最重要的業(yè)務(wù)一定要放8級基線,這樣會保證你的最重要的任務(wù)第一時間產(chǎn)出。另外DataWorks有一個很好的功能——回刷工具,當我的基線出問題或者破線的時候,可以通過回刷工具快速地把數(shù)據(jù)回刷出來。并且如果你設(shè)置了DataWorks的智能監(jiān)控,這個功能會通過一些基線下目前的任務(wù)狀態(tài)和歷史的運行時長等,通過算法的形式去幫你提前預(yù)估出是否存在破線的風(fēng)險,比如一個數(shù)據(jù)正常是晚上12點產(chǎn)出的,在這之前有個數(shù)據(jù)應(yīng)該是晚上6點產(chǎn)出,設(shè)置完智能監(jiān)控之后,如果之前晚上6點產(chǎn)出數(shù)據(jù)的任務(wù)在今晚7點都未產(chǎn)出,并且系統(tǒng)通過算法判斷晚上12點依舊無法正常產(chǎn)出,智能監(jiān)控在7點的時候就會發(fā)出一個告警,讓技術(shù)同學(xué)進行提前干預(yù),不用等到晚上12點數(shù)據(jù)真正產(chǎn)出延時時才開始干預(yù),這種智能化的監(jiān)控與風(fēng)險的預(yù)估對于企業(yè)業(yè)務(wù)的穩(wěn)定性來說是非常有用的。

如何基于DataWorks構(gòu)建數(shù)據(jù)中臺

數(shù)據(jù)運維&治理 - 數(shù)據(jù)資產(chǎn)治理

  • 主要目標是優(yōu)化存儲與計算,降低成本,提升資源利用效率。

  • 技術(shù)團隊有多個project,治理需要技術(shù)團隊一起配合完成。

  • 手段有無用應(yīng)用下線,表生命周期管理、重復(fù)計算治理、暴力掃描治理等手段。

做好數(shù)據(jù)質(zhì)量的監(jiān)控與基線,基本上就保證了企業(yè)的大數(shù)據(jù)任務(wù)和業(yè)務(wù)的穩(wěn)定、正常地運行,還有就是數(shù)據(jù)資產(chǎn)的治理。阿里巴巴是提倡數(shù)據(jù)的公司,它做轉(zhuǎn)變的一個非常大的里程碑就是阿里巴巴在數(shù)據(jù)方面存儲和計算的硬件成本超過了業(yè)務(wù)系統(tǒng)的硬件成本。這也導(dǎo)致了阿里巴巴的CTO會去把數(shù)據(jù)資產(chǎn)治理作為非常核心的任務(wù)。DataWorks是整個阿里巴巴集團數(shù)據(jù)使用的體量最大的平臺,甚至是一個唯一的平臺,也提供了數(shù)據(jù)資產(chǎn)的模塊叫UDAP,這里面基本上是可以通過多方面多維度,從項目到表甚至到個人,全局查看今天整體資源使用情況是什么樣的,并且給使用者提供了一個健康分的概念。這個健康分可以綜合地看到每個業(yè)務(wù)部門內(nèi)每個個人的排名情況。做治理最簡單的方式就是先把頭部打掉,我們先治理頭部健康分最低的,然后把健康分拉上來,整個水平就下來了。同時UDAP提供了很多數(shù)據(jù)可視化的工具,可以讓你很快地看到治理的效果,在這方面我也有一些心得分享給大家。

首先主要目標是優(yōu)化存儲與計算,降低成本,提升資源使用率;技術(shù)團隊會自己建很多項目空間,數(shù)據(jù)中臺團隊需要與技術(shù)團隊共建,一起去完成數(shù)據(jù)治理。一些比較好用的手段就是無用的應(yīng)用要下線、表生命周期管理、重復(fù)計算治理、還有很重要的是計算資源暴力掃描,是需要被嚴格禁止的。UDAP里面的一些功能目前在DataWorks的資源優(yōu)化模塊也能夠?qū)崿F(xiàn),比如一些重復(fù)表、重復(fù)數(shù)據(jù)開發(fā)與數(shù)據(jù)集成任務(wù)的治理等等。

如何基于DataWorks構(gòu)建數(shù)據(jù)中臺

數(shù)據(jù)運維&治理 - 數(shù)據(jù)安全管理

  • 數(shù)據(jù)安全有四層保障:平臺(Maxcompute)級、項目(Project)級、表級、字段級。

  • 外包人員除了安全規(guī)章學(xué)習(xí)與考試外,還需要特別審批及簽保密協(xié)議。

  • 員工離職權(quán)限會自動進行權(quán)限回收。

做完以上這些,我們認為數(shù)據(jù)中臺該做的事情就差不多了,最后還有一點就是數(shù)據(jù)安全管理。隨著互聯(lián)網(wǎng)的發(fā)展,中國基本持續(xù)每一年都會出一個相關(guān)的網(wǎng)絡(luò)法,比如說電子商務(wù)法、網(wǎng)絡(luò)安全法等等,最近應(yīng)該是草擬數(shù)據(jù)安全法。作為一家企業(yè),對法律的遵守是特別重要的。DataWorks作為阿里大數(shù)據(jù)最統(tǒng)一的數(shù)據(jù)入口和出口,做了很多數(shù)據(jù)安全管理的手段。它可以從引擎層面進行一個管控、也可以通過項目層面進行管控,同時可以到表層面,甚至到字段層面。在字段層面,每個字段有等級,比如說有一些高等級字段的權(quán)限必須部門負責人或者是總裁層面審批才可以使用的,再比如說有一些即使審批通過了,但還是有一定風(fēng)險的數(shù)據(jù),像身份證號碼,手機號碼等,DataWorks數(shù)據(jù)保護傘會提供一種技術(shù)叫數(shù)據(jù)脫敏,這些敏感、具有風(fēng)險的數(shù)據(jù)被拿走是被脫敏過的,不影響使用者的統(tǒng)計或者分析,但是使用者是不可見的。

阿里巴巴集團有一套統(tǒng)一的數(shù)據(jù)管理方法,它跟組織架構(gòu)是打通的,員工離職或者轉(zhuǎn)崗,他的權(quán)限會自動收回。在任何企業(yè)包括阿里,人員變動是非常頻繁的,通過這樣的功能與體系,企業(yè)能保證在數(shù)據(jù)安全的前提下更好地應(yīng)用數(shù)據(jù)。

五 基于DataWorks構(gòu)建數(shù)據(jù)中臺的價值

如何基于DataWorks構(gòu)建數(shù)據(jù)中臺

數(shù)據(jù)中臺如何支撐業(yè)務(wù)

之前講的都是基于DataWorks來構(gòu)建新零售數(shù)據(jù)中臺,最早我們提到數(shù)據(jù)中臺一定要服務(wù)業(yè)務(wù),現(xiàn)在我也介紹一下數(shù)據(jù)中臺如何為業(yè)務(wù)服務(wù)的一些方式。一家企業(yè)它用數(shù)據(jù)的過程是由淺而深的過程,首先大家都一樣,最開始我們只是看數(shù)據(jù),我有什么數(shù)據(jù),然后通過數(shù)據(jù)去看一些問題,做一些人工的輔助和決策,但是新零售的很多業(yè)務(wù)的擴張是特別快的,一年開100多家店,覆蓋全國200多個城市等等,當它的業(yè)務(wù)形態(tài)發(fā)生這樣的變化后,通過簡單的數(shù)據(jù)報表和數(shù)據(jù)可視化,是無法再支撐這個一年開100多家店的業(yè)務(wù)了。所以說企業(yè)這時候也可以做很多精細化的管控,比如說品類診斷、庫存健康,告訴這個業(yè)務(wù)你現(xiàn)在有哪些問題,而不是讓他們用報表去發(fā)現(xiàn)問題。

比如一些生鮮業(yè)務(wù)跟電商業(yè)務(wù)有一個非常不一樣的點,生鮮這種新零售業(yè)務(wù)受自然因素的影響特別大,譬如說天氣或者是節(jié)假日,甚至一個交通事故都會影響到生鮮的業(yè)務(wù),因為庫存問題導(dǎo)致貨損。針對這種情況,企業(yè)基于數(shù)據(jù)中臺可以做很多預(yù)測類的應(yīng)用,比如銷量預(yù)測。生鮮的銷量預(yù)測可以要求到小時,每個小時都要做迭代,甚至還可以做一些仿真系統(tǒng),當出現(xiàn)比如天氣突然發(fā)生變化的時候,通過仿真系統(tǒng)預(yù)測到或者感知到有什么樣的風(fēng)險,并做出一定調(diào)整。再到后面生鮮會有日日鮮的一些商品(商品當天就要賣出),每個運營人員、銷售人員每天有很多事情要做,這么多門店的這么多種日日鮮商品,靠人是絕對沒有辦法高效感知并做出調(diào)整的。如果我們把幾百張報表全部干掉,把這些所有通過人看數(shù)據(jù)發(fā)現(xiàn)問題的場景,全部集中到業(yè)務(wù)系統(tǒng)里面。當數(shù)據(jù)中臺發(fā)現(xiàn)日日鮮的商品已經(jīng)賣不出去了,距離關(guān)門只有三個小時了,需要一個打折,這時候不需要人參與,通過數(shù)據(jù)中臺的數(shù)據(jù)的預(yù)測與算法自動觸發(fā)打折,把這個商品賣出去。這些BI跟AI結(jié)合在一起的應(yīng)用是可以讓數(shù)據(jù)中臺真正產(chǎn)生價值,企業(yè)也可以根據(jù)目前不同的數(shù)據(jù)應(yīng)用階段,設(shè)計不同的數(shù)據(jù)應(yīng)用產(chǎn)品,讓數(shù)據(jù)真正賦能業(yè)務(wù)。

看完上述內(nèi)容,你們對如何基于DataWorks構(gòu)建數(shù)據(jù)中臺有進一步的了解嗎?如果還想了解更多知識或者相關(guān)內(nèi)容,請關(guān)注億速云行業(yè)資訊頻道,感謝大家的支持。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI