文章大部分內(nèi)容摘錄自極客數(shù)據(jù)中臺(tái)課程:https://time.geekbang.org/column/article/220290
一、前言
數(shù)據(jù)開發(fā)職業(yè)規(guī)劃:熟練的使用數(shù)據(jù)中臺(tái)支撐技術(shù)體系內(nèi)的工具,熟悉數(shù)據(jù)中臺(tái)模式下數(shù)據(jù)研發(fā)的流程,對指標(biāo)定義、維度建模、數(shù)據(jù)質(zhì)量稽核監(jiān)控、成本的管理、數(shù)據(jù)安全、數(shù)據(jù)服務(wù)化等內(nèi)容要有深入的掌握。
課程收獲很多,數(shù)據(jù)規(guī)范化流程終于看見文字描述。課程定義的是數(shù)據(jù)中臺(tái),其實(shí)數(shù)據(jù)倉庫也可以借鑒??戳酥螅芏鄦栴}都知道改進(jìn)方向。
二、正文
要建設(shè)數(shù)據(jù)中臺(tái)包括三部分:方法論、數(shù)據(jù)中臺(tái)支撐技術(shù)、組織架構(gòu)。該課程主要講解的是方法論。
2016 年,阿里巴巴就提出了數(shù)據(jù)中臺(tái)建設(shè)的核心方法論:OneData 和 OneService,經(jīng)過這么多年,很多公司都進(jìn)行了實(shí)踐,但你很難找出一個(gè)準(zhǔn)確的定義去描述這些方法論。下面是該課程老師結(jié)合他在網(wǎng)易數(shù)據(jù)中臺(tái)建設(shè)的經(jīng)驗(yàn),對方法論進(jìn)行了系統(tǒng)化的定義
1、OneData:所有的數(shù)據(jù)只加工一次
- 數(shù)據(jù)中臺(tái)就是要形成一個(gè)公共數(shù)據(jù)層,消滅這些跨部門的小數(shù)倉,實(shí)現(xiàn)數(shù)據(jù)的復(fù)用,所以強(qiáng)調(diào)數(shù)據(jù)只加工一次,不會(huì)因?yàn)椴煌膽?yīng)用場景,不同的部門數(shù)據(jù)重復(fù)加工。
- 小部門不產(chǎn)生數(shù)據(jù),數(shù)據(jù)由公司的數(shù)據(jù)團(tuán)隊(duì)提供。但是數(shù)據(jù)團(tuán)隊(duì)會(huì)存在數(shù)據(jù)重復(fù)加工。如:開發(fā)不熟悉已開發(fā)的表、為得到某個(gè)數(shù)據(jù)而重復(fù)開發(fā);指標(biāo)重復(fù)開發(fā)計(jì)算;同業(yè)務(wù)數(shù)據(jù)、業(yè)務(wù)字段重復(fù)計(jì)算。
如何實(shí)現(xiàn)數(shù)據(jù)只加工一次?

感悟:
我認(rèn)為onedata(數(shù)據(jù)只加工一次),更要約束數(shù)據(jù)團(tuán)隊(duì),數(shù)據(jù)常存在多次加工的情況。在“數(shù)據(jù)中臺(tái)”課程中給了數(shù)據(jù)團(tuán)隊(duì)如何做到數(shù)據(jù)只加工一次的方法。主要是通過:元數(shù)據(jù)管理、指標(biāo)定義、維度建模、數(shù)據(jù)質(zhì)量稽核監(jiān)控、成本的管理來實(shí)現(xiàn)的。
如何實(shí)現(xiàn)數(shù)據(jù)只加工一次,看大標(biāo)題分主題域管理、命名規(guī)范定義、指標(biāo)一致、數(shù)據(jù)模型服用、數(shù)據(jù)完善,不清楚具體如何實(shí)現(xiàn)的,在下面的課程學(xué)習(xí)。
2、OneService
OneService,數(shù)據(jù)即服務(wù),強(qiáng)調(diào)數(shù)據(jù)中臺(tái)中的數(shù)據(jù)應(yīng)該是通過 API 接口的方式被訪問
為什么數(shù)據(jù)一定要通過 API 接口的方式被訪問,不通過 API 接口,直接提供數(shù)據(jù)表給用戶又存在哪些問題呢?
如果你是數(shù)據(jù)應(yīng)用開發(fā),當(dāng)你要開發(fā)一個(gè)數(shù)據(jù)產(chǎn)品時(shí),首先要把數(shù)據(jù)導(dǎo)出到不同的查詢引擎上:
- 數(shù)據(jù)量小的使用 MySQL;
- 大的可能用到 HBase;
- 需要多維分析的可能需要 Greenplum;
- 實(shí)時(shí)性要求高的需要用到 Redis;
總的來說,不同的查詢引擎,應(yīng)用開發(fā)需要定制不同的訪問接口
如果你是一個(gè)數(shù)據(jù)開發(fā),當(dāng)某個(gè)任務(wù)無法按時(shí)產(chǎn)出,發(fā)生異常時(shí),想要了解這個(gè)表可能會(huì)影響到下游的哪些應(yīng)用或者報(bào)表,但是卻發(fā)現(xiàn)單純依賴表與表的血緣無法觸及應(yīng)用,根本無法知道最后的這些表被哪些應(yīng)用訪問。與此同時(shí),當(dāng)你想下線一張表時(shí),因?yàn)椴恢勒l訪問了這張表,無法實(shí)施,最終造成了“上線容易,下線難”的窘境。
而 API 接口一方面對應(yīng)用開發(fā)屏蔽了底層數(shù)據(jù)存儲(chǔ),使用統(tǒng)一標(biāo)準(zhǔn)的 API 接口查詢數(shù)據(jù),提高了數(shù)據(jù)接入的速度。另一方面,對于數(shù)據(jù)開發(fā),提高了數(shù)據(jù)應(yīng)用的管理效率,建立了表到應(yīng)用的鏈路關(guān)系。
感悟:
在工作中OneService這方面的困惑比較少,我們都是定制化的服務(wù),都是給固定的需求使用。后期除了數(shù)據(jù)只加工一次外,也需要分析誰使用了這部分?jǐn)?shù)據(jù)。
