淺談快速發(fā)展中的企業(yè)存在的數(shù)據(jù)污染問(wèn)題
引言
公司由粗獷式發(fā)展轉(zhuǎn)向精細(xì)化運(yùn)營(yíng)的過(guò)程中,數(shù)據(jù)決策支持發(fā)揮著至關(guān)重要的作用。而在傳統(tǒng)行業(yè)里,由于數(shù)據(jù)量相對(duì)較?。粯I(yè)務(wù)系統(tǒng)變更相對(duì)規(guī)律;系統(tǒng)架構(gòu)相對(duì)簡(jiǎn)單;數(shù)據(jù)來(lái)源相對(duì)單一等原因,從而使數(shù)據(jù)的計(jì)算過(guò)程更加簡(jiǎn)單,計(jì)算結(jié)果更加準(zhǔn)確。而作為業(yè)務(wù)與技術(shù)高速發(fā)展的京東,用常規(guī)的架構(gòu)設(shè)計(jì)無(wú)法滿(mǎn)足公司對(duì)數(shù)據(jù)高 質(zhì)量的要求。如何在保障業(yè)務(wù)高速發(fā)展的同時(shí),將數(shù)據(jù)倉(cāng)庫(kù)的數(shù)據(jù)污染降低到最???我們重點(diǎn)來(lái)說(shuō)說(shuō)引起數(shù)據(jù)污染的原因以及解決方案。
業(yè)務(wù)系統(tǒng)的數(shù)據(jù)源多樣化
隨著技術(shù)的發(fā)展,不同的業(yè)務(wù)系統(tǒng)由不同的團(tuán)隊(duì)開(kāi)發(fā)與維護(hù),造成了公司多樣化的數(shù)據(jù)存儲(chǔ)方式,如SQL SERVER、ORACLE、MYSQL、HBASE、DB2、XML、文本等數(shù)十種數(shù)據(jù)結(jié)構(gòu),于是就要求數(shù)據(jù)中心支持異構(gòu)數(shù)據(jù)源的數(shù)據(jù)同步,并將數(shù)據(jù)存儲(chǔ)為可相互關(guān)聯(lián)的統(tǒng)一數(shù)據(jù)結(jié)構(gòu),數(shù)據(jù)源越多,數(shù)據(jù)的交換成本和維護(hù)成本就越高。這一階段數(shù)據(jù)的主要污染集中在不同數(shù)據(jù)源之間的數(shù)據(jù)一致性。
業(yè)務(wù)系統(tǒng)架構(gòu)頻繁變更
傳統(tǒng)行業(yè)的優(yōu)勢(shì)是業(yè)務(wù)系統(tǒng)相對(duì)成熟且穩(wěn)定,而互聯(lián)網(wǎng)行業(yè)的架構(gòu)大幅度升級(jí)如家常便飯,有時(shí)是迫于業(yè)務(wù)的快速發(fā)展,有時(shí)候是為了改變而改變,所有改變中最為痛苦的就是新老系統(tǒng)并行運(yùn)行,其中部分業(yè)務(wù)仍在老系統(tǒng)A上運(yùn)行,而部分業(yè)務(wù)在新系統(tǒng)B上運(yùn)行,這一階段的數(shù)據(jù)污染主要體現(xiàn)在:
1)新老系統(tǒng)數(shù)據(jù)不一致的差異解釋
2)新老系統(tǒng)數(shù)據(jù)庫(kù)結(jié)構(gòu)的不統(tǒng)一,導(dǎo)致數(shù)據(jù)中心的數(shù)據(jù)抽取不穩(wěn)定且后續(xù)業(yè)務(wù)的解釋異常復(fù)雜。
數(shù)據(jù)庫(kù)設(shè)計(jì)復(fù)雜化
傳 統(tǒng)行業(yè)依靠?jī)?yōu)秀的大型硬件配置來(lái)支撐海量數(shù)據(jù)的查詢(xún),除非必要情況一般采用單一表的數(shù)據(jù)存儲(chǔ),而在互聯(lián)網(wǎng)行業(yè)通過(guò)分庫(kù)分表來(lái)解決業(yè)務(wù)的可擴(kuò)展性,對(duì)于數(shù)據(jù)中心來(lái)講,業(yè)務(wù)系統(tǒng)的分庫(kù)規(guī)則的多樣化,在數(shù)據(jù)集中時(shí)面臨巨大的挑戰(zhàn)。對(duì)于京東來(lái)講,庫(kù)房數(shù)據(jù)的質(zhì)量保障是我所接觸到的所有場(chǎng)景中最為復(fù)雜的,有幾個(gè)特 點(diǎn):
1)庫(kù)房分布地域不同,網(wǎng)絡(luò)環(huán)境好壞不一
2)各庫(kù)房根據(jù)業(yè)務(wù)不同,數(shù)據(jù)庫(kù)結(jié)構(gòu)不盡相同
3)當(dāng)?shù)貛?kù)房系統(tǒng)維護(hù)人員工作習(xí)慣不統(tǒng)一
這三點(diǎn)對(duì)倉(cāng)庫(kù)生產(chǎn)基地?cái)?shù)據(jù)的質(zhì)量提出了非常高的挑戰(zhàn)。
業(yè)務(wù)系統(tǒng)的人員數(shù)據(jù)質(zhì)量意識(shí)單薄
由于長(zhǎng)期的業(yè)務(wù)開(kāi)發(fā)更加關(guān)注業(yè)務(wù)系統(tǒng)流程,功能方面的可用性,對(duì)于滯后于業(yè)務(wù)系統(tǒng)的數(shù)據(jù)統(tǒng)計(jì)、數(shù)據(jù)分析與數(shù)據(jù)挖掘關(guān)注較少,且不屬于職能范疇,因此粗糙的前期數(shù)據(jù)設(shè)計(jì)會(huì)給后端的數(shù)據(jù)消費(fèi)帶來(lái)極高的成本:
1)業(yè)務(wù)系統(tǒng)為保障數(shù)據(jù)的展現(xiàn)實(shí)效性,將商品的描述信息全部存儲(chǔ)為XML,后端的消費(fèi)時(shí)需要解析XML,這沒(méi)有技術(shù)難點(diǎn),但這種靈活的存儲(chǔ)方式使得XML的結(jié)構(gòu)變更非常容易,后端解析很難保證一致性。所以,在設(shè)計(jì)時(shí)應(yīng)該存儲(chǔ)XML,同時(shí)將商品屬性信息進(jìn)行格式化存儲(chǔ),后端采用結(jié)構(gòu)化的統(tǒng)一數(shù)據(jù)。這樣X(jué)ML與格式化的數(shù)據(jù)由同一個(gè)團(tuán)隊(duì)提供,在一定程度上保障了數(shù)據(jù)源的穩(wěn)定。
2)大量的數(shù)據(jù)分析要求數(shù)據(jù)的變化有歷史記錄,從而發(fā)現(xiàn)用戶(hù)的有效行為,但有些系統(tǒng)沒(méi)有存儲(chǔ)表變更歷史或者變更日志,從而導(dǎo)致變化的數(shù)據(jù)無(wú)法追溯;更有甚者直接登錄到數(shù)據(jù)庫(kù)進(jìn)行數(shù)據(jù)的調(diào)整操作,違規(guī)的數(shù)據(jù)修改,會(huì)給后端帶來(lái)嚴(yán)重的數(shù)據(jù)污染。
解決方案-數(shù)據(jù)質(zhì)量管理框架
1)質(zhì)量信息采集:獲取數(shù)據(jù)信息
2)質(zhì)量規(guī)則管理:數(shù)據(jù)驗(yàn)證規(guī)則,包含系統(tǒng)規(guī)則、技術(shù)規(guī)則、業(yè)務(wù)規(guī)則
3)質(zhì)量診斷與控制:大數(shù)據(jù)監(jiān)控平臺(tái)
4)質(zhì)量評(píng)估與報(bào)告:定期完成質(zhì)量報(bào)告
5)問(wèn)題分析與處理:發(fā)現(xiàn)問(wèn)題,分析問(wèn)題,解決問(wèn)題
解決方案-數(shù)據(jù)質(zhì)量系統(tǒng)架構(gòu)
1)數(shù)據(jù)源:
a、線(xiàn)上業(yè)務(wù)庫(kù):生產(chǎn)業(yè)務(wù)系統(tǒng)數(shù)據(jù)
b、外部數(shù)據(jù)庫(kù):外圍系統(tǒng)對(duì)接數(shù)據(jù)
c、日志文件:操作流點(diǎn)擊日志文件(非結(jié)構(gòu)化數(shù)據(jù))
2)應(yīng)用服務(wù)層:數(shù)據(jù)處理核心層
a、規(guī)則引擎:主要包括規(guī)則庫(kù)存儲(chǔ)和質(zhì)量檢測(cè),負(fù)責(zé)質(zhì)量規(guī)則維護(hù)和檢測(cè)處理,保證數(shù)據(jù)抽取質(zhì)量
b、抽取引擎:主要包括匹配抽取和整合抽取,保證數(shù)據(jù)更快抽取。
3)用戶(hù)交互層:
a、數(shù)據(jù)源維護(hù):主要包括SQL SERVER、ORACLE、MYSQL、HBASE等數(shù)據(jù)源的維護(hù)
b、規(guī)則維護(hù):質(zhì)量校驗(yàn)規(guī)則維護(hù)
c、問(wèn)題診斷:質(zhì)量問(wèn)題分析和解決
d、質(zhì)量報(bào)告:數(shù)據(jù)質(zhì)量定期報(bào)告
小結(jié)
以 前有一句話(huà)來(lái)形容業(yè)務(wù)系統(tǒng)的架構(gòu)對(duì)數(shù)據(jù)質(zhì)量的影響:垃圾進(jìn)去,垃圾出來(lái),雖然形容的不夠貼切,但一定程度上反映了數(shù)據(jù)來(lái)源的質(zhì)量決定了數(shù)據(jù)倉(cāng)庫(kù)數(shù)據(jù)污染的程度。那么問(wèn)題來(lái)了,是否可以***的保障數(shù)據(jù)倉(cāng)庫(kù)的質(zhì)量呢?答案是肯定的,但這要花費(fèi)很大的代價(jià),即數(shù)據(jù)質(zhì)量的高低與資源的消費(fèi)成本成正比。
因此個(gè)人認(rèn)為,除了在質(zhì)量監(jiān)控系統(tǒng)的自動(dòng)化上面進(jìn)行優(yōu)化和減少人工干預(yù)外,還需要達(dá)成共識(shí),20%的數(shù)據(jù)滿(mǎn)足了80%的企業(yè)級(jí)數(shù)據(jù)需求,二八原則在這里同樣適用。
在快速迭代的業(yè)務(wù)系統(tǒng)時(shí)期,數(shù)據(jù)污染是必然的,所以即使嚴(yán)格的審計(jì)報(bào)告也會(huì)有大量差異的解釋工作,即做到數(shù)據(jù)污染的可追述、可證明即可滿(mǎn)足企業(yè)數(shù)據(jù)需求。