有人認(rèn)為,多維的數(shù)據(jù)分類體系已經(jīng)夠用了,標(biāo)簽就是一個(gè)“雞肋”;也有人認(rèn)為標(biāo)簽體系有有利于大數(shù)據(jù)的萃取和分析,提供畫像能力,實(shí)現(xiàn)精準(zhǔn)推薦,必須是數(shù)據(jù)中臺(tái)的標(biāo)配。
如果“標(biāo)簽體系”確有爭議的話,那么今天介紹的這個(gè)功能一定沒有爭議,它絕對(duì)是數(shù)據(jù)中臺(tái)的真正標(biāo)配,它就是——數(shù)據(jù)服務(wù)。
— 01 —
數(shù)據(jù)服務(wù)的類別相當(dāng)廣泛,有提供數(shù)據(jù)傳輸能力的叫做數(shù)據(jù)傳輸服務(wù),有提供數(shù)據(jù)存儲(chǔ)能力的叫做數(shù)據(jù)存儲(chǔ)服務(wù),有執(zhí)行各種類型分析的叫做數(shù)據(jù)分析服務(wù),還有提供數(shù)據(jù)安全管理的叫做數(shù)據(jù)安全服務(wù)等等。這些都叫數(shù)據(jù)服務(wù),但這些數(shù)據(jù)服務(wù)強(qiáng)調(diào)的是能力,更準(zhǔn)確的定義是“Data as a Service——數(shù)據(jù)即服務(wù)”,但這不是我們今天要講的數(shù)據(jù)中臺(tái)的數(shù)據(jù)服務(wù)!數(shù)據(jù)中臺(tái)的數(shù)據(jù)服務(wù)到底是什么?數(shù)據(jù)中臺(tái)的概念是由阿里巴巴提出來的,我們來看看“中臺(tái)鼻祖”怎么說。在阿里巴巴數(shù)據(jù)中臺(tái)全景圖中,統(tǒng)一數(shù)據(jù)服務(wù)也叫OneService ,即由數(shù)據(jù)中臺(tái)提供統(tǒng)一的數(shù)據(jù)接入和數(shù)據(jù)查詢服務(wù)。阿里數(shù)據(jù)中臺(tái)的OneService提供了三項(xiàng)數(shù)據(jù)服務(wù):我的理解:不同系統(tǒng)之間使用服務(wù)的方式進(jìn)行交互,數(shù)據(jù)服務(wù)為數(shù)據(jù)和應(yīng)用之間建立了一座“溝通的橋梁”,這座橋梁的存在形式是API。可以把它想象成一個(gè)電源插座,例如,只需要你的吹風(fēng)機(jī)有一個(gè)匹配的插頭,并將其插入,電流就會(huì)流向你的吹風(fēng)機(jī),就像數(shù)據(jù)流向你的數(shù)據(jù)應(yīng)用一樣。
數(shù)據(jù)中臺(tái)為什么需要數(shù)據(jù)服務(wù)?網(wǎng)上的很多文章中,喜歡將數(shù)據(jù)中臺(tái)用“廚師做菜”來形象比喻。廚師做菜一般有幾個(gè)步驟:買菜、洗菜擇菜、制定菜單、炒菜。這幾個(gè)步驟在數(shù)據(jù)中臺(tái)的數(shù)據(jù)加工流程中被稱為:數(shù)據(jù)采集、數(shù)據(jù)清洗、數(shù)據(jù)建模、數(shù)據(jù)分析/數(shù)據(jù)應(yīng)用。數(shù)據(jù)采集:跟廚師做菜一樣,巧婦難為無米之炊,需要做幾道好菜,首先得有原材料,那么數(shù)據(jù)采集/數(shù)據(jù)接入就是買菜的過程。數(shù)據(jù)清洗:買回來菜需要摘洗干凈,才能下鍋,數(shù)據(jù)清洗就是摘菜洗菜的過程,是需要把臟數(shù)據(jù)清洗掉。數(shù)據(jù)建模:菜摘洗好了,但炒什么菜要需要根據(jù)客人下的菜單來做。數(shù)據(jù)建模就像對(duì)為客人制定菜單一樣,例如:客人喜歡什么菜?魚香肉絲還是宮保雞丁,口味是甜一點(diǎn),辣一點(diǎn)還是清淡一點(diǎn)等問題都要描述清楚并傳遞給“廚師”。數(shù)據(jù)建模就是將數(shù)據(jù)消費(fèi)者的需求轉(zhuǎn)化為計(jì)算機(jī)能夠理解的語言。數(shù)據(jù)分析/數(shù)據(jù)應(yīng)用:根據(jù)客人的“菜單”要求,炒菜裝盤。好了,看到這里有人不禁要問:說了這么多,數(shù)據(jù)服務(wù)在哪里?數(shù)據(jù)中臺(tái)到底為什么需要數(shù)據(jù)服務(wù)?在這個(gè)“廚師做菜”的過程中,有一個(gè)不能忽略的角色,不知道你有沒有發(fā)現(xiàn),這個(gè)角色就是“服務(wù)員”。他的任務(wù)是幫助客戶點(diǎn)菜,并將炒好的菜端到客人的桌上。而數(shù)據(jù)中臺(tái)的“服務(wù)員”就是數(shù)據(jù)服務(wù),英文名字:OneService。想象一下,你正坐在餐廳的一張桌子旁,那里有可供選擇的菜單。但如果沒有服務(wù)員,就會(huì)缺少的是將你的菜單傳達(dá)給廚房并將你的食物送回餐桌的關(guān)鍵環(huán)節(jié)。這就是“服務(wù)員”(數(shù)據(jù)服務(wù))的用武之地,接受數(shù)據(jù)消費(fèi)者的請求,并告訴系統(tǒng)做什么,將做好的數(shù)據(jù)服務(wù)以API的方式提供給數(shù)據(jù)消費(fèi)者。另外,在整個(gè)過程中,數(shù)據(jù)服務(wù)還有一個(gè)作用,它屏蔽了底層數(shù)據(jù)的技術(shù)細(xì)節(jié),數(shù)據(jù)消費(fèi)者不需要關(guān)心“這些數(shù)據(jù)來自哪里,哪個(gè)庫,哪張表,數(shù)據(jù)庫類型是什么等”問題,只需要關(guān)心“這些數(shù)據(jù)能否滿足我的需要”就行了。就如同你去餐廳吃飯,不用關(guān)心菜是從哪買回來的,誰是配菜的,誰是炒菜的等這些問題一樣,只需要關(guān)心這個(gè)菜合不合你的口味就行了。
數(shù)據(jù)服務(wù)能解決哪些問題?在傳統(tǒng)的數(shù)據(jù)集成方案中,往往需要將數(shù)據(jù)從一個(gè)系統(tǒng)導(dǎo)出/導(dǎo)入,或復(fù)制到另一個(gè)系統(tǒng)當(dāng)中。隨著企業(yè)數(shù)據(jù)應(yīng)用規(guī)模的不斷擴(kuò)大,需要在幾十個(gè)甚至上百個(gè)系統(tǒng)中進(jìn)行數(shù)據(jù)集成,傳統(tǒng)的數(shù)據(jù)集成方式難度越來越大,暴露的問題也越來越多。1、數(shù)據(jù)“搬家”造成的數(shù)據(jù)不一致問題傳統(tǒng)數(shù)據(jù)集成需要將數(shù)據(jù)從一個(gè)系統(tǒng)復(fù)制到另一個(gè)系統(tǒng)中,過程中由于網(wǎng)絡(luò)、接口、程序、任務(wù)以及其他的一些不確定因素都會(huì)導(dǎo)致數(shù)據(jù)在“搬家”的過程中“丟失”,從而造成數(shù)據(jù)不一致問題。而通過數(shù)據(jù)中臺(tái)提供的數(shù)據(jù)API交付數(shù)據(jù),大部分情況下不需要數(shù)據(jù)“落地”,強(qiáng)調(diào)使用權(quán)而不是擁有權(quán),這樣就大大減少了數(shù)據(jù)在流向下游系統(tǒng)過程中造成不一致問題。
數(shù)據(jù)中臺(tái)會(huì)根據(jù)企業(yè)數(shù)據(jù)的類型、數(shù)據(jù)量大小、數(shù)據(jù)的應(yīng)用需求等,設(shè)計(jì)相應(yīng)的不同數(shù)據(jù)接入和存儲(chǔ)方案。例如:通過MySQL、Oracle接入數(shù)據(jù)量相對(duì)較小的數(shù)據(jù),通過Greenplum接入數(shù)據(jù)量大且需要多維分析的數(shù)據(jù),通過Hbase接入大量的keyValue數(shù)據(jù),以及通過ES建立數(shù)據(jù)索引提升數(shù)據(jù)的查詢效率等等。這種情況下,如果按每種數(shù)據(jù)接入方式暴露數(shù)據(jù)的話,無疑是一個(gè)非常復(fù)雜事情。而通過數(shù)據(jù)中臺(tái)將各類型數(shù)據(jù)封裝為統(tǒng)一的數(shù)據(jù)API,對(duì)外提供接口,能夠屏蔽數(shù)據(jù)接入多樣性帶來的數(shù)據(jù)集成復(fù)雜、效率低下等問題。3、數(shù)據(jù)被哪些應(yīng)用訪問了無法監(jiān)控傳統(tǒng)的數(shù)據(jù)項(xiàng)目中,即使用了元數(shù)據(jù)這樣的工具,也無法實(shí)現(xiàn)數(shù)據(jù)的采集、匯總、清洗、處理、應(yīng)用的全鏈路血緣分析。尤其是數(shù)據(jù)平臺(tái)到數(shù)據(jù)應(yīng)用的鏈路幾乎全部是割裂的,數(shù)據(jù)平臺(tái)通過導(dǎo)出/導(dǎo)入或數(shù)據(jù)復(fù)制的方式為數(shù)據(jù)應(yīng)用提供數(shù)據(jù),數(shù)據(jù)一旦進(jìn)入到下游系統(tǒng)中,數(shù)據(jù)平臺(tái)就無法監(jiān)控其使用情況了。而數(shù)據(jù)中臺(tái)提供的統(tǒng)一數(shù)據(jù)服務(wù)API,為數(shù)據(jù)應(yīng)用和數(shù)據(jù)中臺(tái)搭建了一座橋梁。數(shù)據(jù)API只有通過授權(quán)才能被訪問,在給數(shù)據(jù)應(yīng)用授權(quán)以及應(yīng)用程序訪問數(shù)據(jù)API的時(shí)候,可以“標(biāo)簽”的形式,將數(shù)據(jù)訪問鏈路通知給元數(shù)據(jù)中心,從而打通了數(shù)據(jù)中臺(tái)到數(shù)據(jù)應(yīng)用的鏈路,形成了數(shù)據(jù)的全生命周期血緣。
4、上游數(shù)據(jù)變更,影響下游數(shù)據(jù)應(yīng)用在很多數(shù)據(jù)項(xiàng)目中,還有一種情況比較常見:數(shù)據(jù)應(yīng)用直接調(diào)用數(shù)據(jù)平臺(tái)的數(shù)據(jù)庫來訪問數(shù)據(jù)。這就會(huì)導(dǎo)致,一旦上游數(shù)據(jù)發(fā)生變更就會(huì)對(duì)下游的數(shù)據(jù)應(yīng)用造成較大影響。而數(shù)據(jù)中臺(tái)提供統(tǒng)一的數(shù)據(jù)API供數(shù)據(jù)應(yīng)用調(diào)用,實(shí)現(xiàn)了數(shù)據(jù)中臺(tái)與數(shù)據(jù)應(yīng)用的解耦。在數(shù)據(jù)服務(wù)內(nèi)部建立與與各數(shù)據(jù)源建立映射,上游數(shù)據(jù)發(fā)生變更,只需要調(diào)整數(shù)據(jù)服務(wù)的映射即可,不會(huì)對(duì)數(shù)據(jù)應(yīng)用的使用造成影響。
數(shù)據(jù)服務(wù)應(yīng)具備哪些功能?在數(shù)據(jù)中臺(tái)架構(gòu)中數(shù)據(jù)服務(wù)層位于數(shù)據(jù)中臺(tái)上層,連接數(shù)據(jù)消費(fèi)層,將已整合的數(shù)據(jù)以服務(wù)的形式提供給數(shù)據(jù)消費(fèi)者,以獲得更好的性能和體驗(yàn)。數(shù)據(jù)服務(wù)層具備的功能如下:跨源數(shù)據(jù)服務(wù):數(shù)據(jù)中臺(tái)接入數(shù)據(jù)的多樣性,決定了數(shù)據(jù)中臺(tái)的技術(shù)架構(gòu)需要由多個(gè)大數(shù)據(jù)組件組成,例如:Hive、HBASE、GP、ES、Redis、MySQL、Oracle等等,而業(yè)務(wù)上對(duì)數(shù)據(jù)的使用可能是跨多個(gè)數(shù)據(jù)庫的。數(shù)據(jù)服務(wù)層提供的跨源數(shù)據(jù)服務(wù),屏蔽了底層數(shù)據(jù)源的技術(shù)差異,可以從不同數(shù)據(jù)源提取數(shù)據(jù),并按照業(yè)務(wù)需要進(jìn)行編排,形成統(tǒng)一API進(jìn)行對(duì)外共享。主題數(shù)據(jù)服務(wù):按照不同的業(yè)務(wù)主題,組織形成統(tǒng)一的數(shù)據(jù)API。數(shù)據(jù)中臺(tái)繼承了數(shù)據(jù)倉庫面向主題的思想,將位于不同數(shù)據(jù)中間存儲(chǔ)的同一業(yè)務(wù)主題的數(shù)據(jù)整合到一起,屏蔽多數(shù)據(jù)源與多物理表,形成標(biāo)準(zhǔn)的數(shù)據(jù)服務(wù)供外部使用。例如:銷售主題,需要將企業(yè)的批發(fā)、零售、線上、線下、代理等等各個(gè)渠道的銷售數(shù)據(jù)匯集起來。一站式查詢:數(shù)據(jù)服務(wù)最終將用戶訪問的API 轉(zhuǎn)化為底層對(duì)各種數(shù)據(jù)源的訪問,實(shí)現(xiàn)對(duì)數(shù)據(jù)中臺(tái)數(shù)據(jù)的一站式查詢,提供數(shù)據(jù)檢索、聯(lián)機(jī)分析、實(shí)時(shí)查詢等,提升數(shù)據(jù)查詢的效率。全鏈路打通:數(shù)據(jù)和應(yīng)用的分離會(huì)導(dǎo)致數(shù)據(jù)血緣無法完整追溯,數(shù)據(jù)服務(wù)不僅提供了連接數(shù)據(jù)和應(yīng)用能力,還通過服務(wù)授權(quán)以及訪問監(jiān)控等功能,將數(shù)據(jù)API的訪問情況實(shí)時(shí)寫入元數(shù)據(jù)中心,形成完整的數(shù)據(jù)血緣。訂閱交付能力:數(shù)據(jù)API構(gòu)建完成,并不需要數(shù)據(jù)消費(fèi)者重復(fù)構(gòu)建集成通道,而是通過授權(quán)“訂閱”的方式,讓數(shù)據(jù)消費(fèi)者通過接口快速使用數(shù)據(jù)。API網(wǎng)關(guān)服務(wù):API網(wǎng)關(guān)服務(wù)使用云原生技術(shù)提供了服務(wù)API的統(tǒng)一管理和監(jiān)控能力,包括:服務(wù)注冊、服務(wù)自動(dòng)發(fā)現(xiàn)、認(rèn)證授權(quán)、流量控制、超時(shí)熔斷、安全控制、監(jiān)控分析等。
數(shù)據(jù)中臺(tái)的數(shù)據(jù)服務(wù)該如何構(gòu)建?為了使數(shù)據(jù)中臺(tái)具備快速響應(yīng)前端業(yè)務(wù)需求的能力,主流的數(shù)據(jù)中臺(tái)均采用了云原生技術(shù)來構(gòu)建數(shù)據(jù)服務(wù)層,實(shí)現(xiàn)數(shù)據(jù)服務(wù)的快速開發(fā)、有序落地。同時(shí),數(shù)據(jù)服務(wù)的設(shè)計(jì)開發(fā)還應(yīng)注意以下事項(xiàng):
顆粒度問題:服務(wù)拆分的越細(xì)則復(fù)用性越好,但如果只考慮服務(wù)重用,大量的細(xì)顆粒度服務(wù)將很難管理并且勢必會(huì)對(duì)整體性能帶來影響。服務(wù)的設(shè)計(jì)需要從業(yè)務(wù)需求、管理難以程度、性能特性等方面綜合考量。標(biāo)準(zhǔn)化問題:服務(wù)的開發(fā)采用Restful API技術(shù),該技術(shù)具有結(jié)構(gòu)清晰、易于理解、方便擴(kuò)展等特點(diǎn),且接口規(guī)范標(biāo)準(zhǔn),不論前端應(yīng)用是java、.net、C#還是PHP都能夠調(diào)用。就像設(shè)計(jì)一個(gè)插座,一定要具備普適性,這樣不論你的吹風(fēng)機(jī)插頭是美標(biāo)的、歐標(biāo)的還是國標(biāo)均的都能夠適配。數(shù)據(jù)服務(wù)層(OneService)改變了傳統(tǒng)的數(shù)據(jù)集成和交付方式,所有整合到數(shù)據(jù)中臺(tái)的數(shù)據(jù)都通過數(shù)據(jù)服務(wù)提供,數(shù)據(jù)服務(wù)對(duì)外暴露的不是數(shù)據(jù)而是接口,數(shù)據(jù)消費(fèi)者不用直接獲取數(shù)據(jù),而是通過接口服務(wù)獲取。數(shù)據(jù)服務(wù)不是簡單的對(duì)外暴露一個(gè)API就行了,從功能層面,數(shù)據(jù)服務(wù)還包括了跨數(shù)據(jù)源服務(wù)、主題數(shù)據(jù)服務(wù)、一站式查詢服務(wù)、訂閱式交付、全鏈路打通等能力;在技術(shù)層面,數(shù)據(jù)服務(wù)采用了云原生技術(shù),具備了服務(wù)的動(dòng)態(tài)發(fā)現(xiàn)、自動(dòng)部署、自動(dòng)監(jiān)控、服務(wù)治理等能力。這樣看來,數(shù)據(jù)服務(wù)層無疑是數(shù)據(jù)中臺(tái)不可或缺的標(biāo)配,你說呢?歡迎點(diǎn)亮在看,并留言討論。(歡迎大家加入數(shù)據(jù)工匠知識(shí)星球獲取更多資訊。)
我們的使命:發(fā)展數(shù)據(jù)治理行業(yè)、普及數(shù)據(jù)治理知識(shí)、改變企業(yè)數(shù)據(jù)管理現(xiàn)狀、提高企業(yè)數(shù)據(jù)質(zhì)量、推動(dòng)企業(yè)走進(jìn)大數(shù)據(jù)時(shí)代。
我們的愿景:打造數(shù)據(jù)治理專家、數(shù)據(jù)治理平臺(tái)、數(shù)據(jù)治理生態(tài)圈。
我們的價(jià)值觀:凝聚行業(yè)力量、打造數(shù)據(jù)治理全鏈條平臺(tái)、改變數(shù)據(jù)治理生態(tài)圈。
了解更多精彩內(nèi)容
長按,識(shí)別二維碼,關(guān)注我們吧!
數(shù)據(jù)工匠俱樂部
微信號(hào):zgsjgjjlb
專注數(shù)據(jù)治理,推動(dòng)大數(shù)據(jù)發(fā)展。