?
導(dǎo)讀
本文的主題:
系統(tǒng)性的介紹數(shù)據(jù)中臺(tái)提供的服務(wù)類型丧凤,詳細(xì)講解最重要的Data API部分刹淌。
適合的讀者:
希望系統(tǒng)性掌握數(shù)據(jù)中臺(tái)核心數(shù)據(jù)服務(wù)底層邏輯結(jié)構(gòu)的數(shù)據(jù)中臺(tái)建設(shè)者
核心內(nèi)容和關(guān)鍵字:數(shù)據(jù)中臺(tái)圃验,數(shù)據(jù)服務(wù)檀头,Data API
長(zhǎng)度:5000字
閱讀時(shí)間:30分鐘
數(shù)據(jù)中臺(tái)的核心是數(shù)據(jù)服務(wù)
數(shù)據(jù)中臺(tái)是“數(shù)據(jù)服務(wù)工廠”宜鸯,所以腾供,數(shù)據(jù)服務(wù)是數(shù)據(jù)中臺(tái)的核心能力仆邓。
那么,數(shù)據(jù)中臺(tái)都提供哪些數(shù)據(jù)服務(wù)呢台腥?
業(yè)界常用的數(shù)據(jù)服務(wù)包括五種類型宏赘,Data API,Event Hub黎侈,Database察署,F(xiàn)ile,Terminal & APP峻汉。
什么是數(shù)據(jù)服務(wù)
現(xiàn)在行業(yè)里講的Data as a Service (DaaS)贴汪,在Wiki中則特制基于SOAP的API服務(wù)脐往。
data as a service is enabled by software as a service (SaaS).[1] Like all "as a service" (aaS) technology, DaaS builds on the concept that its data product can be provided to the user on demand,[2] regardless of geographic or organizational separation between provider and consumer. Service-oriented architecture (SOA), and the widespread use of API, has rendered the platform on which the data resides as irrelevant.[3]
廣義的數(shù)據(jù)服務(wù)則可以理解為,為業(yè)務(wù)提供數(shù)據(jù)的服務(wù)扳埂。
數(shù)據(jù)服務(wù)是一個(gè)行業(yè)业簿,廣為人知的數(shù)據(jù)服務(wù)提供商有以下的幾類:
金融數(shù)據(jù)服務(wù)
金融數(shù)據(jù)服務(wù)是目前商業(yè)化程度最高,最成熟的行業(yè)數(shù)據(jù)服務(wù)阳懂。全球有眾多的金融數(shù)據(jù)服務(wù)公司梅尤,比較有名的有Bloomberg,Wind岩调,湯森路透等巷燥,而在國(guó)內(nèi),典型的金融數(shù)據(jù)服務(wù)機(jī)構(gòu)就包括中國(guó)外匯交易中心号枕。
拿外匯交易中心為例缰揪,它提供的服務(wù)主要有:市場(chǎng)數(shù)據(jù),市場(chǎng)公告葱淳,指標(biāo)數(shù)據(jù)钝腺,數(shù)據(jù)服務(wù),而典型的數(shù)據(jù)服務(wù)類型分成了以下幾類:信息產(chǎn)品服務(wù)赞厕、數(shù)據(jù)接口服務(wù)艳狐、媒體數(shù)據(jù)服務(wù)、信息商數(shù)據(jù)服務(wù)坑傅。
公開數(shù)據(jù)服務(wù)
公開數(shù)據(jù)服務(wù)是將一些公共用途的數(shù)據(jù)以服務(wù)的形式提供出來(lái)僵驰,供所有的用戶使用。類似于國(guó)家統(tǒng)計(jì)局唁毒,政府公開數(shù)據(jù)等蒜茴。
拿上海市公共數(shù)據(jù)開放平臺(tái)做例子:
上海市公共數(shù)據(jù)開放平臺(tái),提供了三類數(shù)據(jù)服務(wù):
數(shù)據(jù)產(chǎn)品浆西,數(shù)據(jù)接口粉私,數(shù)據(jù)應(yīng)用。
數(shù)據(jù)產(chǎn)品:
一般是指可以下載的數(shù)據(jù)集近零,比如CSV/DOC格式存在的诺核。例如:
數(shù)據(jù)接口:
通過(guò)特定的技術(shù)手段去調(diào)用其他系統(tǒng),獲得數(shù)據(jù)的接口久信。
數(shù)據(jù)應(yīng)用:
數(shù)據(jù)應(yīng)用是指一個(gè)特定領(lǐng)域的數(shù)據(jù)及數(shù)據(jù)使用的應(yīng)用系統(tǒng)窖杀,在上海公共數(shù)據(jù)平臺(tái)中,數(shù)據(jù)應(yīng)用關(guān)聯(lián)到一個(gè)完整的獨(dú)立的APP裙士。
知識(shí)數(shù)據(jù)服務(wù)
萬(wàn)方數(shù)據(jù)是典型的知識(shí)數(shù)據(jù)服務(wù)的類型入客,提供學(xué)術(shù)研究類知識(shí)的數(shù)據(jù)服務(wù)。主要服務(wù)類型根據(jù)領(lǐng)域不同會(huì)有所差別,如下圖所示:
那么什么是數(shù)據(jù)服務(wù)呢桌硫?
我個(gè)人覺(jué)得夭咬,通過(guò)某一種或多種方式提供數(shù)據(jù),就是數(shù)據(jù)服務(wù)铆隘。
我們先梳理一下歷史上數(shù)據(jù)服務(wù)的五種類型卓舵。
數(shù)據(jù)服務(wù)的五種類型
從提供數(shù)據(jù)的技術(shù)方式上,我們可以將數(shù)據(jù)服務(wù)分為以下五種類型膀钠。
Data API
這是最常用的一種數(shù)據(jù)服務(wù)的形式掏湾,用戶通過(guò)請(qǐng)求/響應(yīng)來(lái)訪問(wèn)數(shù)據(jù)。優(yōu)勢(shì)是很容易公布/訂閱這些API接口托修。這類數(shù)據(jù)接口服務(wù)一般包括參數(shù)忘巧,返回值,接口樣本睦刃,接口地址等。
常用的Data API是REST形式十酣。
Event HUB
Event Hub的定義是:
An event investor is a component or service that sits between event publishers and event consumers to decouple the production of an event stream from the consumption of those events.
通過(guò)消息隊(duì)列(MQ)的方式涩拙,提供事件消息的數(shù)據(jù)服務(wù),典型的架構(gòu)如下圖所示:
Database
數(shù)據(jù)庫(kù)是最早的提供數(shù)據(jù)的服務(wù)形式耸采,比如數(shù)據(jù)湖兴泥,當(dāng)用戶需要數(shù)據(jù)的時(shí)候,直接提供一個(gè)數(shù)據(jù)庫(kù)訪問(wèn)鏈接給到用戶虾宇,從而直接訪問(wèn)這個(gè)數(shù)據(jù)庫(kù)里的數(shù)據(jù)搓彻。
目前企業(yè)的業(yè)務(wù)部門對(duì)于其他數(shù)據(jù)的訪問(wèn)形式,數(shù)據(jù)庫(kù)是很重要的一種嘱朽,典型的場(chǎng)景就是業(yè)務(wù)部門在開發(fā)業(yè)務(wù)應(yīng)用的時(shí)候旭贬,需要數(shù)據(jù),那么直接問(wèn)數(shù)據(jù)部門要數(shù)據(jù)庫(kù)的訪問(wèn)權(quán)限搪泳,然后自己基于這個(gè)數(shù)據(jù)庫(kù)去做數(shù)據(jù)開發(fā)稀轨,在系統(tǒng)中直接調(diào)用這些數(shù)據(jù)。
這樣的數(shù)據(jù)庫(kù)服務(wù)形式的優(yōu)點(diǎn)是靈活岸军,但是缺點(diǎn)也很明顯奋刽,沒(méi)有權(quán)限劃分,需要業(yè)務(wù)部門有專業(yè)的數(shù)據(jù)開發(fā)能力艰赞,并且無(wú)法追溯佣谐,最重要的是,當(dāng)多個(gè)業(yè)務(wù)部門都利用這種方式訪問(wèn)和使用數(shù)據(jù)的時(shí)候方妖,會(huì)產(chǎn)生很多份數(shù)據(jù)拷貝狭魂,也就是企業(yè)數(shù)據(jù)不一致的重要的原因。
File
當(dāng)數(shù)據(jù)量比較大,或者沒(méi)有比較好的訪問(wèn)通道的時(shí)候趁蕊,數(shù)據(jù)文件也是一種提供服務(wù)的形式坞生。比如,通過(guò)FTP文件服務(wù)器等掷伙。
Terminal & APP
前面四種數(shù)據(jù)服務(wù)形式的本質(zhì)都是提供某一種形式的數(shù)據(jù)集是己,而Terminal & APP的形式,則不僅包括數(shù)據(jù)集任柜,還包括使用卒废,訪問(wèn)數(shù)據(jù)的方法和流程。
此類典型的樣例就是大智慧宙地,同花順這樣的證券交易APP摔认。
總結(jié)
我們從實(shí)時(shí)性,數(shù)據(jù)量宅粥,訪問(wèn)頻率参袱,可審計(jì)性,安全性等多個(gè)維度來(lái)對(duì)比以上五類數(shù)據(jù)服務(wù)秽梅。
在目前抹蚀,數(shù)據(jù)中臺(tái)的語(yǔ)境里,主要趨勢(shì)是Data API企垦,所以环壤,我們下面重點(diǎn)來(lái)剖析Data API。
數(shù)據(jù)訪問(wèn)的兩種形式
以上的五種數(shù)據(jù)服務(wù)類型钞诡,根據(jù)訪問(wèn)的形式郑现,都可以分為兩類:推(Push)和拉(Pull)
Push(推)
數(shù)據(jù)供應(yīng)端主動(dòng)推送數(shù)據(jù)到數(shù)據(jù)消費(fèi)端,典型的代表有事件訂閱和數(shù)據(jù)庫(kù)同步荧降。
比如接箫,物料主數(shù)據(jù)變化的時(shí)候,將最新的數(shù)據(jù)推送給所有的數(shù)據(jù)消費(fèi)者系統(tǒng)誊抛。
這樣的形式是從供應(yīng)方的視角來(lái)處理的列牺,所以不論數(shù)據(jù)消費(fèi)者是否需要這些數(shù)據(jù),也不論消費(fèi)者對(duì)于這些數(shù)據(jù)的使用場(chǎng)景是怎樣的拗窃,對(duì)于數(shù)據(jù)供應(yīng)方來(lái)講瞎领,都是無(wú)差別的推數(shù)據(jù)過(guò)去,哪怕消費(fèi)者使用的頻率很低随夸。
這樣的優(yōu)勢(shì)是九默,實(shí)時(shí)性很強(qiáng),只要數(shù)據(jù)在源頭發(fā)生了變化宾毒,都會(huì)第一時(shí)間推送給數(shù)據(jù)消費(fèi)方驼修。
但是劣勢(shì)也很明顯:
第一,推送數(shù)據(jù)產(chǎn)生了很多的資源浪費(fèi),無(wú)差別的推送乙各,存儲(chǔ)
第二墨礁,往往數(shù)據(jù)消費(fèi)方需要二次加工這些推送來(lái)的數(shù)據(jù),才能使用
第三耳峦,消費(fèi)者是否使用恩静,如何使用,不好管理蹲坷,無(wú)法跟蹤
Pull(拉)
數(shù)據(jù)消費(fèi)方驶乾,根據(jù)自己的需要,從數(shù)據(jù)供應(yīng)端拉數(shù)據(jù)回來(lái)循签,這樣的典型服務(wù)類型包括:
Data API级乐,文件下載,和Terminal&APP县匠。
Pull是典型的的精益的形式风科,按需使用數(shù)據(jù),用什么獲取什么聚唐,什么時(shí)候用丐重,什么時(shí)候獲取,用哪部分?jǐn)?shù)據(jù)獲取那部分?jǐn)?shù)據(jù)杆查。
從數(shù)據(jù)消費(fèi)者的視角來(lái)看
從數(shù)據(jù)消費(fèi)者的視角來(lái)看,消息隊(duì)列(Event)模式的數(shù)據(jù)利用如下圖所示:
只有當(dāng)數(shù)據(jù)應(yīng)用方能夠直接使用這個(gè)數(shù)據(jù)消息的時(shí)候臀蛛,應(yīng)用開發(fā)團(tuán)隊(duì)才不需要二次開發(fā)這個(gè)數(shù)據(jù)亲桦,否則應(yīng)用開發(fā)團(tuán)隊(duì)需要在本地的存儲(chǔ)中再次存儲(chǔ)一遍這個(gè)數(shù)據(jù),并且構(gòu)建后端API浊仆,進(jìn)一步加工這個(gè)數(shù)據(jù)客峭。這樣帶來(lái)了前端應(yīng)用利用數(shù)據(jù)的復(fù)雜性,也帶來(lái)了一致性的問(wèn)題抡柿。
采用數(shù)據(jù)API的方式提供服務(wù)的場(chǎng)景如下圖所示:
在數(shù)據(jù)處理和加工方與數(shù)據(jù)應(yīng)用方之間加入一層舔琅,數(shù)據(jù)服務(wù)層,從而可以提高靈活性和復(fù)用性洲劣,這樣讓數(shù)據(jù)應(yīng)用放可以直接使用數(shù)據(jù)服務(wù)而不再做任何加工處理备蚓,也能夠保證不同數(shù)據(jù)應(yīng)用使用同一個(gè)數(shù)據(jù)服務(wù),提高數(shù)據(jù)的一致性囱稽。
關(guān)于CQRS(命令查詢責(zé)任分離)
CQRS是對(duì)應(yīng)于CRUD的一種數(shù)據(jù)處理模式郊尝,使用與用于讀取信息的模型不同的模型來(lái)更新信息,是Greg Young提出來(lái)的战惊。
詳見(jiàn)老馬的博客:CQRS流昏。
從整個(gè)數(shù)據(jù)利用的趨勢(shì)來(lái)看,Data API是數(shù)據(jù)中臺(tái)未來(lái)主要的服務(wù)形式,所以下面重點(diǎn)剖析Data API况凉。
Data API剖析
什么是API谚鄙,在維基百科的解釋如下:
An application programming interface (API) is an interface or communication protocol between different parts of a computer program intended to simplify the implementation and maintenance of software.
一個(gè)應(yīng)用程序接口是兩個(gè)不同的計(jì)算機(jī)程序之間的接口或通信協(xié)議,目的是為了簡(jiǎn)化軟件的開發(fā)和維護(hù)刁绒。
An API may be for a web-based system, operating system, database system, computer hardware, or software library.
一個(gè)API可以是Web系統(tǒng)闷营,操作系統(tǒng),數(shù)據(jù)系統(tǒng)膛锭,計(jì)算機(jī)硬件或者是軟件類庫(kù)粮坞。
An API specification can take many forms, but often includes specifications for routines, data structures, object classes, variables, or remote calls. POSIX, Windows API and ASPI are examples of different forms of APIs. Documentation for the API usually is provided to facilitate usage and implementation.
一個(gè)API可以以多種形式存在,但是通常會(huì)包括特殊的路由規(guī)則初狰,數(shù)據(jù)結(jié)構(gòu)莫杈,對(duì)象,變量或者遠(yuǎn)程調(diào)用奢入。POSIX筝闹,Windows和ASPI是不同的API形式。API通常會(huì)提供文檔和實(shí)現(xiàn)形式腥光。
而关顷,數(shù)據(jù)API是提供數(shù)據(jù)的應(yīng)用程序接口。在數(shù)據(jù)已經(jīng)成為企業(yè)的核心資產(chǎn)的趨勢(shì)下武福,數(shù)據(jù)API已經(jīng)成為了一種業(yè)務(wù)模式议双,比如,已經(jīng)有非常多的數(shù)據(jù)API市場(chǎng)用來(lái)聚集捉片,生產(chǎn)和消費(fèi)平痰,交易各種數(shù)據(jù)API。
Data API的本質(zhì)
Data API本質(zhì)上就是一個(gè)遠(yuǎn)傳調(diào)用伍纫。
典型的包括:
API的三種類型
常用的API主要分為三種類型:
業(yè)務(wù)命令A(yù)PI
業(yè)務(wù)API以Command (命令)為主宗雇,實(shí)際上就是一個(gè)業(yè)務(wù)行為,包括Request/Response莹规,也可以沒(méi)有Response的內(nèi)容赔蒲,是為了執(zhí)行一個(gè)業(yè)務(wù)指令。
比如良漱,創(chuàng)建訂單舞虱,創(chuàng)建用戶。
智能計(jì)算API
智能API是為了對(duì)數(shù)據(jù)進(jìn)行計(jì)算债热,是對(duì)于輸入?yún)?shù)的加工砾嫉,返回計(jì)算的結(jié)果。
比如計(jì)算最優(yōu)路徑窒篱,計(jì)算推薦價(jià)格等焕刮。
數(shù)據(jù)查詢API
數(shù)據(jù)API是對(duì)于已有數(shù)據(jù)的查詢舶沿,可以帶各種條件。
比如查詢用戶信息配并,獲取用戶畫像括荡,獲取產(chǎn)品清單等。
數(shù)據(jù)中臺(tái)提供的API以智能API和數(shù)據(jù)API為主溉旋,我們下面重點(diǎn)分析數(shù)據(jù)API畸冲。
數(shù)據(jù)API的剖析
數(shù)據(jù)API的執(zhí)行過(guò)程
數(shù)據(jù)API的執(zhí)行過(guò)程可以歸納為三步:
請(qǐng)求,執(zhí)行和返回結(jié)果观腊。
這與數(shù)據(jù)庫(kù)層的操作來(lái)說(shuō)是能夠?qū)?yīng)上的邑闲,如下圖所示:
數(shù)據(jù)API的兩種形式
數(shù)據(jù)API可以分為兩種形式:
- 搜索API
用戶可以有一定的自主權(quán),從而能夠靈活的組織查詢邏輯梧油,去獲取數(shù)據(jù)苫耸。
- 模板API
用戶只能根據(jù)確定的參數(shù)來(lái)訪問(wèn)數(shù)據(jù),靈活度低儡陨。
數(shù)據(jù)API的三大成功要素
不論哪一種數(shù)據(jù)API褪子,一個(gè)好的數(shù)據(jù)API需要具備以下三個(gè)成功要素。
快速靈活
因?yàn)闃I(yè)務(wù)用戶很多骗村,用戶的需求變化也快嫌褪,所以,好的數(shù)據(jù)API應(yīng)該有一定的靈活性胚股,從而能夠按需快速響應(yīng)前端的需求笼痛。
準(zhǔn)確一致
數(shù)據(jù)的準(zhǔn)確性,一致性是數(shù)據(jù)API的基線琅拌。
安全合規(guī)
提供安全合規(guī)的數(shù)據(jù)晃痴,確保數(shù)據(jù)的隱私,分級(jí)和和合規(guī)财忽,也是數(shù)據(jù)API必須保證的。
所以泣侮,我們歸納出一個(gè)高質(zhì)量的數(shù)據(jù)API的邏輯結(jié)構(gòu)如下:
要包括靈活的參數(shù)解析即彪,安全的數(shù)據(jù)權(quán)限,快速的數(shù)據(jù)緩存活尊,根據(jù)數(shù)據(jù)合規(guī)和區(qū)域特性隶校,制定不同的數(shù)據(jù)存儲(chǔ)的架構(gòu),并且要有有效的日志追蹤體系蛹锰,從而保障數(shù)據(jù)服務(wù)的質(zhì)量(SLA)深胳。
以上這所有的,一切都是數(shù)據(jù)中臺(tái)中铜犬,數(shù)據(jù)API平臺(tái)組件應(yīng)該提供的基礎(chǔ)能力舞终。
那么一個(gè)好的數(shù)據(jù)API平臺(tái)應(yīng)該是怎樣的呢轻庆?
請(qǐng)關(guān)注《凱哥講數(shù)據(jù)中臺(tái)》系列
推薦閱讀-2019 凱哥講數(shù)據(jù)中臺(tái)
#凱哥講數(shù)據(jù)中臺(tái)#從招行組織結(jié)構(gòu)調(diào)整看傳統(tǒng)數(shù)據(jù)管理部門急需的五大轉(zhuǎn)型
#凱哥講數(shù)據(jù)中臺(tái)#數(shù)據(jù)中臺(tái)的使命、愿景敛劝、本質(zhì)和六大核心能力
凱哥講數(shù)據(jù)中臺(tái):數(shù)據(jù)中臺(tái)賦能企業(yè)數(shù)字化轉(zhuǎn)型的四個(gè)關(guān)鍵成功因素
#凱哥講數(shù)據(jù)#深度解讀美國(guó)聯(lián)邦數(shù)據(jù)戰(zhàn)略行動(dòng)計(jì)劃
八問(wèn)數(shù)據(jù)中臺(tái):關(guān)于數(shù)據(jù)中臺(tái)你想知道的都在這里上陕!
Data First的時(shí)代,利用數(shù)據(jù)產(chǎn)生商業(yè)模式創(chuàng)新的五種方法
數(shù)據(jù)驅(qū)動(dòng)的數(shù)字化轉(zhuǎn)型:從流程驅(qū)動(dòng)到數(shù)據(jù)驅(qū)動(dòng)
加入凱哥講數(shù)字化的知識(shí)星球
第一時(shí)間獲取最新行業(yè)洞見(jiàn),數(shù)字化報(bào)告解讀