//
有贊大數(shù)據(jù)實(shí)踐: 敏捷型數(shù)據(jù)倉(cāng)庫(kù)的構(gòu)建及其應(yīng)用 - Bin Hong - 有贊技術(shù)團(tuán)隊(duì)
http://tech.youzan.com/you-zan-big-data-practice/
有贊大數(shù)據(jù)實(shí)踐: 敏捷型數(shù)據(jù)倉(cāng)庫(kù)的構(gòu)建及其應(yīng)用
http://mp.weixin.qq.com/s?__biz=MzA5NzkxMzg1Nw==&mid=2653162106&idx=1&sn=e658a14035d6710be085f05a3fbc5ac1&chksm=8b493714bc3ebe02dd72a326446502ce7ab9dfccd4b4793ccfbbfde9d9458d3efffdfc20154e&mpshare=1&scene=1&srcid=0303IIbjmB3vv08ulPOus6S8#rd
前言
互聯(lián)網(wǎng)公司一般發(fā)展迅速. 一方面, 業(yè)務(wù)飛速發(fā)展, 當(dāng)前應(yīng)用的形式和模型每天都在變化; 企業(yè)的產(chǎn)品也在經(jīng)歷不斷的下線上線過(guò)程. 數(shù)據(jù)倉(cāng)庫(kù)如何擁抱變化, 是難點(diǎn)之一.
互聯(lián)網(wǎng)的運(yùn)營(yíng)人員從了解經(jīng)營(yíng)狀況轉(zhuǎn)化為精細(xì)化運(yùn)營(yíng), 這就于要求數(shù)據(jù)倉(cāng)庫(kù)具有提供高效明細(xì)數(shù)據(jù)能力, 數(shù)據(jù)倉(cāng)庫(kù)如何在龐大數(shù)據(jù)量的前提下, 實(shí)現(xiàn)滿足不同層次的數(shù)據(jù)提出和分析, 是難點(diǎn)之二.
數(shù)據(jù)經(jīng)過(guò)ETL最終到達(dá)使用數(shù)據(jù)者手里; 提取數(shù)據(jù)和提出數(shù)據(jù)的需求往往來(lái)自不同的部門(mén)和出于不同的目的. 這一般會(huì)導(dǎo)致數(shù)據(jù)口徑不一致, 數(shù)據(jù)含義模糊, 甚至數(shù)據(jù)正確性很難校驗(yàn). 數(shù)據(jù)倉(cāng)庫(kù)如何保證數(shù)據(jù)口徑一致, 數(shù)據(jù)路徑可追溯性, 是難點(diǎn)之三.
數(shù)據(jù)倉(cāng)庫(kù)的應(yīng)用領(lǐng)域除了各個(gè)業(yè)務(wù)部門(mén)還包括技術(shù)部門(mén)本身. 由于海量數(shù)據(jù)處理, 互聯(lián)網(wǎng)的技術(shù)架構(gòu)越來(lái)越依賴大數(shù)據(jù)平臺(tái)的支持. 一個(gè)點(diǎn)上平臺(tái)每天都會(huì)有數(shù)以萬(wàn)記的店鋪和商品更新, 數(shù)以億計(jì)的用戶日志, 訂單數(shù)據(jù)等. 這些數(shù)據(jù)在毫無(wú)保留的通過(guò)消息隊(duì)列匯總到數(shù)據(jù)倉(cāng)庫(kù)中. 如果使用數(shù)據(jù)倉(cāng)庫(kù)進(jìn)行再生產(chǎn)是技術(shù)架構(gòu)重點(diǎn)考慮的事情. 數(shù)據(jù)倉(cāng)庫(kù)擁有其他數(shù)據(jù)平臺(tái)無(wú)法比擬的橫向擴(kuò)展和迭代計(jì)算能力, 可以直接或者間接面向用戶提供數(shù)據(jù)服務(wù). 這也是大數(shù)據(jù)的機(jī)遇之一.
數(shù)據(jù)倉(cāng)庫(kù)設(shè)計(jì)
總體架構(gòu)
存儲(chǔ)層 主要解決ETL問(wèn)題, 如何正確的埋點(diǎn), 數(shù)據(jù)穩(wěn)定正確的傳輸, 提供可靠的存儲(chǔ)計(jì)算環(huán)境等等. 這部分內(nèi)容比較復(fù)雜, 本文不重點(diǎn)闡述.
數(shù)據(jù)倉(cāng)庫(kù)層 主要提供數(shù)據(jù)模型和數(shù)據(jù)工具兩個(gè)內(nèi)容. 數(shù)據(jù)模型解決數(shù)據(jù)可用的問(wèn)題, 數(shù)據(jù)工具解決數(shù)據(jù)易用的問(wèn)題. 本文會(huì)重點(diǎn)介紹數(shù)據(jù)模型的設(shè)計(jì)方法和數(shù)據(jù)工具的作用.
數(shù)據(jù)分析層 主要解決各種角色如何使用數(shù)據(jù)倉(cāng)庫(kù)的問(wèn)題. 后面有章節(jié)舉例說(shuō)明每個(gè)分析工具的優(yōu)勢(shì)和適用范圍.
數(shù)據(jù)倉(cāng)庫(kù)實(shí)例
數(shù)據(jù)源主要有兩種來(lái)源, 文件和DB. 通過(guò)消息隊(duì)列收集到hadoop平臺(tái). 數(shù)據(jù)倉(cāng)庫(kù)的第一層是近源數(shù)據(jù)層, 這一層基本上和數(shù)據(jù)源保持一樣的字段結(jié)構(gòu). 我們看一下一個(gè)例子. 這個(gè)例子闡述我們?nèi)绾螛?gòu)造"訂單商品中間層".
業(yè)務(wù)層有數(shù)十個(gè)基本表. 他們通過(guò)收集工具, 消息隊(duì)列導(dǎo)入近源數(shù)據(jù)層中. 這個(gè)過(guò)程需要做如下幾件事情:
將物理分片的分布式DB映射成一個(gè)Hive表
根據(jù)表的內(nèi)容選擇合適的Hive分區(qū)鍵
對(duì)于緩慢變化維進(jìn)行處理, 讓數(shù)據(jù)表可以反映變化
對(duì)于日志進(jìn)行基本的處理映射成Hive表
近源數(shù)據(jù)層不做如下事情:
臟數(shù)據(jù)處理;
數(shù)據(jù)表間一致性處理;
不同業(yè)務(wù)表的合并.
我們對(duì)于近源數(shù)據(jù)層的定位是可以"快速"的構(gòu)建基礎(chǔ)數(shù)據(jù)平臺(tái). 不做業(yè)務(wù)相關(guān)的處理可以讓這部分的工作專(zhuān)注在大數(shù)據(jù)架構(gòu)正確性和穩(wěn)定性的問(wèn)題.
近源數(shù)據(jù)層出現(xiàn)以后, 實(shí)際上我們已經(jīng)可以開(kāi)始主要的數(shù)據(jù)分析工作了. 但是我們引入了"中間層", 它的定位是"操作簡(jiǎn)單, 執(zhí)行快速, 屏蔽錯(cuò)誤, 統(tǒng)一口徑".
這個(gè)過(guò)程主要完成如下幾個(gè)事情:
合并不同業(yè)務(wù)為統(tǒng)一過(guò)程; 業(yè)務(wù)數(shù)據(jù)有很多獨(dú)立的市場(chǎng)或者版本, 他們客戶和用戶不同, 但是工作過(guò)程是一樣的. 再比如app和pc的日志獨(dú)立記錄, 但是可以在一定程度上合并.
屏蔽臟數(shù)據(jù), 比如典型的測(cè)試數(shù)據(jù).
冗余字段. 把常用的join操作在中間層封裝.
我們看一下訂單寬表的實(shí)現(xiàn)過(guò)程. 訂單寬表是是以訂單為主鍵的表. 它包含幾方面的信息:
基本的訂單統(tǒng)計(jì), 主要是訂單主要信息表提供;
訂單的聚類(lèi)分析, 比如訂單的城市分布, 年齡分布分析, 主要是訂單詳細(xì)信息表提供;
訂單風(fēng)險(xiǎn)分析, 這就依靠維權(quán)訂單表來(lái)提供;
等等
這樣我們產(chǎn)生的訂單寬表在一定程度上滿足絕大多數(shù)的數(shù)據(jù)分析問(wèn)題.
首先, 是數(shù)據(jù)口徑的問(wèn)題, 計(jì)算寬表的時(shí)候會(huì)根據(jù)業(yè)務(wù)需求生成很多冗余字段, 比如對(duì)于疑似刷單交易, 很多業(yè)務(wù)如果都實(shí)現(xiàn)一遍的話, 勢(shì)必會(huì)導(dǎo)致口徑問(wèn)題, 在設(shè)計(jì)訂單寬表的時(shí)候我們根據(jù)風(fēng)控模型加入一個(gè)字段是否為空殼交易. 這樣在統(tǒng)計(jì)時(shí)候各方的口徑都會(huì)一致. 同樣臟數(shù)據(jù)問(wèn)題也是通過(guò)這種方式解決.
其次, 多表join問(wèn)題, 訂單寬表一定程度上聚合常用的字段, 滿足80%的數(shù)據(jù)分析需求. 加上合理的分區(qū)設(shè)計(jì), 基本上查詢是非炒迮伲快速的.
最后需要說(shuō)明的是, 我們沒(méi)有為所有近源數(shù)據(jù)表都封裝中間層. 購(gòu)物車(chē)信息我們就沒(méi)有完全封裝, 因?yàn)樗麄兊姆治霾怀S? 訂單寬表的設(shè)計(jì)需要做一個(gè)折中. 一方面設(shè)計(jì)完備的數(shù)據(jù)倉(cāng)庫(kù)是不現(xiàn)實(shí)的, 另一方面訂單寬表的前提是足夠常用, 對(duì)于不常用的數(shù)據(jù)我們的數(shù)據(jù)平臺(tái)是支持直接操作的. 這符合互聯(lián)網(wǎng)設(shè)計(jì)產(chǎn)品的一般思路.
基礎(chǔ)指標(biāo)層
基礎(chǔ)指標(biāo)層放映了對(duì)一個(gè)實(shí)體的基本衡量, 是BI分析的基礎(chǔ). 如上圖所示, 在訂單寬表的基礎(chǔ)上我們提取出 消費(fèi)者指標(biāo)表, 商戶指標(biāo)表, 商品指標(biāo)表 等. 比如在商品指標(biāo)表中, 我們會(huì)針對(duì)商品的銷(xiāo)量, 維權(quán)數(shù)等對(duì)商品做基本的畫(huà)像, 這樣應(yīng)用就可以非常方便的篩選合適的商品.
分層的好處
我們可以看到, 從 近源層 到 指標(biāo)層 層次越高易用性越強(qiáng), 層次越低, 靈活性就越強(qiáng). 這樣的設(shè)計(jì)可以保證緊急的分析可以快速響應(yīng), 同時(shí)穩(wěn)定的數(shù)據(jù)可以通過(guò)高層次的數(shù)據(jù)模型高質(zhì)量保證.
同時(shí), 我們意識(shí)到數(shù)倉(cāng)模型是迭代的, 逐步完善的過(guò)程. 數(shù)據(jù)分析的工作不斷的反饋到數(shù)倉(cāng)建設(shè)中.
數(shù)倉(cāng)工具
有了可供操作的數(shù)據(jù)模型. 基本上我們可以解決數(shù)據(jù)倉(cāng)庫(kù)的主要問(wèn)題. 數(shù)據(jù)倉(cāng)庫(kù)另外一個(gè)問(wèn)題是溯源問(wèn)題.
一方面溯源有利于我們清晰的了解數(shù)據(jù)的血緣關(guān)系, 方便數(shù)據(jù)問(wèn)題的追查.
另外一方面, 是數(shù)據(jù)質(zhì)量的問(wèn)題. 想建立一個(gè)穩(wěn)定的數(shù)據(jù)質(zhì)量體系保證數(shù)據(jù)倉(cāng)庫(kù)常年穩(wěn)定有效實(shí)踐過(guò)程中非常困難. 基礎(chǔ)設(shè)施的問(wèn)題, 業(yè)務(wù)的變遷, 臟數(shù)據(jù)的產(chǎn)生都會(huì)導(dǎo)致正在使用的數(shù)據(jù)倉(cāng)庫(kù)的質(zhì)量問(wèn)題. 數(shù)據(jù)倉(cāng)庫(kù)另外一個(gè)要求是隨時(shí)可以跑全量數(shù)據(jù).
數(shù)據(jù)地圖可以用于查看所有報(bào)表的路徑和執(zhí)行過(guò)程. 這樣我們可以追查特定字段的數(shù)據(jù)來(lái)源, 廣泛用于對(duì)賬和對(duì)數(shù).
數(shù)據(jù)地圖可以提供數(shù)據(jù)任務(wù)間的依賴關(guān)系, 從而進(jìn)行快速的全局?jǐn)?shù)據(jù)的修補(bǔ). 舉個(gè)例子, 如果我們?cè)?0.30日發(fā)現(xiàn)9.1日的日志里面存在大量的攻擊日志(無(wú)效日志)導(dǎo)致很多中間層, 報(bào)表數(shù)據(jù)不準(zhǔn), 我們只需要把近源數(shù)據(jù)表修復(fù), 然后設(shè)定開(kāi)始和結(jié)束的日期, 所有依賴它的任務(wù)都會(huì)重新執(zhí)行.
數(shù)據(jù)倉(cāng)庫(kù)另外一個(gè)組件是元數(shù)據(jù)管理系統(tǒng). 它的主要作用:
提供幫助文檔, 給出所有可用表格的規(guī)格和口徑說(shuō)明;
規(guī)范報(bào)表的口徑, 避免口徑歧義.
數(shù)據(jù)倉(cāng)庫(kù)與數(shù)據(jù)分析
互聯(lián)網(wǎng)的運(yùn)營(yíng)人員從了解經(jīng)營(yíng)狀況轉(zhuǎn)化為精細(xì)化運(yùn)營(yíng). 精細(xì)化 首先體現(xiàn)在深度. 傳統(tǒng)的高度匯總的知識(shí)性數(shù)據(jù)不能滿足目前的日常需求, 更需要細(xì)粒度的探索性數(shù)據(jù). 其次精細(xì)化體現(xiàn)在廣度上面, 需要BI支持不僅僅是管理層或者決策人員. 普通的產(chǎn)品運(yùn)營(yíng), 市場(chǎng)運(yùn)營(yíng), 產(chǎn)品經(jīng)理都會(huì)分析數(shù)據(jù)分析產(chǎn)品的受眾, 分布等數(shù)據(jù).
我們提供4種不同的工具來(lái)滿足BI服務(wù).
即席查詢系統(tǒng)
多維分析系統(tǒng)
搜索分析系統(tǒng)
固定報(bào)表系統(tǒng)
即席查詢系統(tǒng)
即席查詢系統(tǒng) 的使用者是專(zhuān)業(yè)的數(shù)據(jù)分析人員. 它的定位是數(shù)據(jù)倉(cāng)庫(kù)的操作平臺(tái).這是使用最廣泛的系統(tǒng), 因?yàn)樗恍枰_(kāi)發(fā)任何工作. 數(shù)據(jù)倉(cāng)庫(kù)ready后就可以使用. 數(shù)據(jù)倉(cāng)庫(kù)的良好設(shè)計(jì)和數(shù)據(jù)字典的文檔作用使得即席查詢系統(tǒng)非常容易上手.
這里我們強(qiáng)調(diào)一下BI過(guò)程和數(shù)據(jù)倉(cāng)庫(kù)設(shè)計(jì)的互動(dòng)性. 對(duì)于重要的數(shù)據(jù)中間層, 我們提供基本的BI基礎(chǔ)表. 比如訂單指標(biāo)表和商品指標(biāo)表.
接著上面的例子, 我看一下BI過(guò)程如何利用數(shù)據(jù)倉(cāng)庫(kù)的. 假如我們需要分析店鋪的各項(xiàng)指標(biāo).
這些指標(biāo)可以非常迅速的從訂單寬表中算出來(lái). 不要考慮復(fù)雜的交易異常, 臟數(shù)據(jù)等問(wèn)題.
另外由于店鋪指標(biāo), 用戶指標(biāo)等這些常用的BI表又可以作為基礎(chǔ)指標(biāo)中間層沉淀下來(lái), 用于更高緯度的數(shù)據(jù)分析.
因此我們看到數(shù)據(jù)倉(cāng)庫(kù)數(shù)據(jù)整合的3個(gè)層次:
近源數(shù)據(jù)層作為數(shù)據(jù)源, 主要是不常用的, 簡(jiǎn)單的數(shù)據(jù).
數(shù)據(jù)中間層, 使用頻率很高的基于主題的數(shù)據(jù).
基礎(chǔ)指標(biāo)中間層, 基于數(shù)據(jù)中間層的基礎(chǔ)聚合, 使用頻率更高. 簡(jiǎn)化復(fù)雜BI過(guò)程.
多維分析系統(tǒng)
多維分析系統(tǒng) 的使用者是一般運(yùn)營(yíng)人員. 它是特定的中間層圖形化表達(dá). 多維分析系統(tǒng)實(shí)現(xiàn)的是對(duì)某些指標(biāo)的特定維度的聚合分析.
多維分析系統(tǒng)我們是基于kylin引擎做的, 是一種多維度聯(lián)機(jī)查詢系統(tǒng). 對(duì)于每個(gè)主題(比如訂單主題)提供基于維度篩選和各種聚合功能(比如最大, 最小, 求和等). 并通過(guò)表格和圖形化方式展示.
接著上面的例子. 我們打算做一個(gè)訂單主題的多維分析系統(tǒng). OLAP模型如下:
這樣我們就可以輕松的回答如下幾個(gè)問(wèn)題.
各種支付方式在每個(gè)省的分布式怎樣的?
多維分析系統(tǒng)的缺點(diǎn)是沒(méi)有即系查詢系統(tǒng)靈活. 由于他需要預(yù)加載數(shù)據(jù)對(duì)于維度特別高的查詢支持也不是很好.
搜索分析系統(tǒng)
搜索分析是基于對(duì)于緯度建立索引的查詢系統(tǒng). 他可以滿足對(duì)于不同指標(biāo)的多級(jí)篩選, 直到篩選出合適的候選集. 如下是一個(gè)例子.
我們需要對(duì)商品池進(jìn)行篩選. 由于我們對(duì)商品的關(guān)鍵屬性建立的索引, 首先可以根據(jù)銷(xiāo)量和維權(quán)數(shù)篩選出優(yōu)質(zhì)高效(A類(lèi)), 優(yōu)質(zhì)精品(B類(lèi)), 劣質(zhì)(C類(lèi))商品; 再在A類(lèi)商品的基礎(chǔ)上根據(jù)其他屬性(品類(lèi), 客單價(jià), 受眾人群)等篩選出本次的目標(biāo)商品集.
在這個(gè)過(guò)程中我們可以感受到, 搜索分析系統(tǒng)給我們的數(shù)據(jù)分析者一個(gè)很大的迭代篩選的平臺(tái), 可以通過(guò)不斷的嘗試和反饋, 提高自己的選品的質(zhì)量.
固定報(bào)表系統(tǒng)
固定報(bào)表 一般是針對(duì)特征的數(shù)據(jù)需求. 這是最常見(jiàn)的BI需求. 比如我們的GMV報(bào)表, 店鋪報(bào)表. 在固定報(bào)表的基礎(chǔ)上的地動(dòng)儀系統(tǒng)可以很好的支持我們的數(shù)據(jù)異常點(diǎn). 比如如果每周一的訂單數(shù)據(jù)都在100w單左右(舉例), 如果突然一個(gè)周一變成200w單, 就可以發(fā)出報(bào)警.
我們來(lái)對(duì)比以下常用的BI工具.
工具名稱(chēng)
基本技術(shù)
適用人群
速度
靈活性
適用場(chǎng)景
即席查詢
hive
- 數(shù)據(jù)分析人員2. 有能力的運(yùn)營(yíng)人員
慢:10m~1h
強(qiáng)
所有數(shù)據(jù)分析場(chǎng)景
OLAP系統(tǒng)
olap
產(chǎn)品經(jīng)理, 運(yùn)營(yíng)人員
較快: 10s~10min
中
特定主體的多維分析
搜索引擎
倒排索引
- 目的性強(qiáng)
快: 10s以下
中
根據(jù)條件的主題檢索
報(bào)表系統(tǒng)
mysql
報(bào)表相關(guān)人員
快: 10s以下
低
特定業(yè)務(wù)數(shù)據(jù)的查閱
數(shù)據(jù)倉(cāng)庫(kù)在信息檢索中的應(yīng)用
數(shù)據(jù)倉(cāng)庫(kù)不僅在用于BI, 數(shù)據(jù)倉(cāng)庫(kù)實(shí)際上充當(dāng)著企業(yè)數(shù)據(jù)總線的作用. hadoop為存儲(chǔ)介質(zhì)的數(shù)據(jù)倉(cāng)庫(kù)簡(jiǎn)化了信息檢索的成本. 包括數(shù)據(jù)的獲取, 計(jì)算和加載.
信息檢索系統(tǒng)應(yīng)該和業(yè)務(wù)數(shù)據(jù)解耦. 我們回歸一下傳統(tǒng)的信息檢索系統(tǒng)的構(gòu)建過(guò)程. 傳統(tǒng)的搜索工具一般都是基于倒排索引的, 或者kv的的系統(tǒng), 一般都是單機(jī)模式 + 代理的分布式方案.
傳統(tǒng)的搜索引擎, kv引擎等數(shù)據(jù)與業(yè)務(wù)數(shù)據(jù)高度耦合. 業(yè)務(wù)數(shù)據(jù)一般存儲(chǔ)在DB中, 我們經(jīng)歷過(guò)搜索引擎數(shù)據(jù)丟失的情況, 我們不得小心翼翼的與業(yè)務(wù)方配合追查, 一不小心一個(gè)sql就把業(yè)務(wù)服務(wù)器整垮了.
數(shù)據(jù)無(wú)法保證完全性. 搜索引擎是一個(gè)龐大的系統(tǒng), 數(shù)據(jù)經(jīng)過(guò)很多環(huán)節(jié)才進(jìn)入索引, 一般都是批處理或者實(shí)時(shí)構(gòu)建. 補(bǔ)一個(gè)步驟都需要保證數(shù)據(jù)正確性. 否則索引數(shù)據(jù)就不準(zhǔn). 由于索引數(shù)據(jù)的非常寶貴. 搜索團(tuán)隊(duì)還要花費(fèi)很多功力研究如何備份索引, 以防止以外丟失.
搜索數(shù)據(jù)與業(yè)務(wù)數(shù)據(jù)不一致. 對(duì)數(shù)據(jù)是任何兩個(gè)部分在處理同一份數(shù)據(jù)時(shí)候都會(huì)經(jīng)歷的問(wèn)題.
我們還是以訂單相關(guān)的業(yè)務(wù)為例. 通過(guò)"訂單", "維權(quán)", "購(gòu)物車(chē)", "狀態(tài)變更"等基本事務(wù)過(guò)程產(chǎn)生相關(guān)的DB和日志數(shù)據(jù); 我在在這些基本的數(shù)據(jù)上搭建"訂單檢索", "訂單導(dǎo)出", "數(shù)據(jù)報(bào)表"等信息檢索的業(yè)務(wù). 和左側(cè)的業(yè)務(wù)不同, 這些業(yè)務(wù)不需要交互和事務(wù), 是一個(gè)"一寫(xiě)多讀"的功能模塊.
由于日志和DB是基于技術(shù)通用性設(shè)計(jì)的, 沒(méi)有考慮各個(gè)業(yè)務(wù)的需求. 各個(gè)業(yè)務(wù)勢(shì)必會(huì)有各自不同的業(yè)務(wù)處理代碼. 比如訂單檢索和數(shù)據(jù)報(bào)表在理論上應(yīng)該是可以進(jìn)行精確的"對(duì)數(shù)"的. 但是由于各自的業(yè)務(wù)代碼是獨(dú)立的, 因此在數(shù)據(jù)一致性方面會(huì)遇到問(wèn)題.
搜索引擎的搭建是一個(gè)龐大的工程, 首先我們要通過(guò)消息隊(duì)列訂閱所有的數(shù)據(jù), 然后我們?cè)跇I(yè)務(wù)處理層將數(shù)據(jù)進(jìn)行整合, 然后建立索引. 這里我們會(huì)遇到橫向擴(kuò)展的問(wèn)題. 我們不得不根據(jù)一個(gè)合適的主鍵講消息隊(duì)列的數(shù)據(jù)分流, 分別建立索引.
我們發(fā)現(xiàn)全量索引是昂貴的. 全量索引意味著導(dǎo)表, 我們不得不提供專(zhuān)門(mén)為搜索引擎使用的備庫(kù), 如果數(shù)據(jù)庫(kù)本身是分片的, 那么每片我們都要導(dǎo)入.
如果我們引入大數(shù)據(jù)平臺(tái), 就可以完全把搜索引擎和DB解耦.
數(shù)據(jù)平臺(tái)是基礎(chǔ)數(shù)據(jù)的完全鏡像.
數(shù)據(jù)平臺(tái)非常的皮實(shí). 不僅可以隨時(shí)拉去海量數(shù)據(jù)不影響業(yè)務(wù), 而且可以通過(guò)批量計(jì)算和迭代計(jì)算進(jìn)行復(fù)雜的數(shù)據(jù)處理.
大數(shù)據(jù)有逐漸成熟的解決方案體系. 包括批處理, nosql, 和搜索引擎(solr和elasticsearch).
我們看一下以數(shù)據(jù)倉(cāng)庫(kù)為中心的架構(gòu).
數(shù)據(jù)倉(cāng)庫(kù)充當(dāng)業(yè)務(wù)數(shù)據(jù)層. 數(shù)據(jù)倉(cāng)庫(kù)封裝了重要的數(shù)據(jù)口徑. 讓業(yè)務(wù)處理更加關(guān)注上層的業(yè)務(wù),不需要關(guān)注通用的數(shù)據(jù)處理和封裝.
大數(shù)據(jù)平臺(tái)讓各種數(shù)據(jù)引擎執(zhí)行過(guò)程簡(jiǎn)單可靠. 大數(shù)據(jù)以透明拓展性和高度可計(jì)算性著稱(chēng), 但是傳統(tǒng)的搜索引擎, 本質(zhì)上是單機(jī)程序, 他們的分布式解決方案需要代理層. 如何讓他們享受大數(shù)據(jù)的優(yōu)勢(shì), 很多人給出解決方案. 我們這里給出基于hadoop-elasticsearch的方案, 主要不是介紹相應(yīng)的技術(shù)細(xì)節(jié)而是強(qiáng)調(diào)我們的思路.
搜索算法可以有更多發(fā)揮空間. 基于數(shù)據(jù)倉(cāng)庫(kù)的算法平臺(tái), 充分spark等迭代計(jì)算的優(yōu)勢(shì), 可以提供搜索引擎很多算法組件, 比如商品的質(zhì)量度, 商品的類(lèi)目, 反作弊數(shù)據(jù)等.
小結(jié)
我們介紹了大數(shù)據(jù)平臺(tái)下的數(shù)據(jù)倉(cāng)庫(kù). 數(shù)據(jù)倉(cāng)庫(kù)在設(shè)計(jì)上盡可能簡(jiǎn)單, 配合BI和信息檢索的應(yīng)用迭代優(yōu)化. 為了保證數(shù)據(jù)倉(cāng)庫(kù)的可用性, 我們引入數(shù)據(jù)字典, 數(shù)據(jù)地圖等工具. 在數(shù)據(jù)倉(cāng)庫(kù)上面, 我們搭建了幾種BI工具, 即席查詢, olap, 數(shù)據(jù)報(bào)表和搜索引擎, 根據(jù)不同的需求方和場(chǎng)景給出不同的解決方案. 最后我們介紹了數(shù)據(jù)倉(cāng)庫(kù)在信息檢索領(lǐng)域的應(yīng)用, 我們看到利用大數(shù)據(jù)平臺(tái)的分布式能力, 強(qiáng)大的業(yè)務(wù)整合能力, 給我們的信息檢索帶來(lái)很大的業(yè)務(wù)和技術(shù)上的便利.
數(shù)據(jù)是一個(gè)企業(yè)最重要的資產(chǎn)之一, 如何利用數(shù)據(jù)價(jià)值變得越來(lái)越重要. 一個(gè)優(yōu)秀的大數(shù)據(jù)平臺(tái)的建設(shè)是一個(gè)重要的前提. 大數(shù)據(jù)平臺(tái)越來(lái)越像一個(gè)企業(yè)的數(shù)據(jù)總線: 是所有數(shù)據(jù)的入口, 同時(shí)也是所有數(shù)據(jù)的出口. 像很多企業(yè)正在努力的一樣, 我們希望能夠構(gòu)建一個(gè)靈活可靠的數(shù)據(jù)倉(cāng)庫(kù). 它像一個(gè)企業(yè)的基礎(chǔ)設(shè)施一樣, 我們可以利用它提供的數(shù)據(jù)上, 工具上的服務(wù)來(lái)搭建我們需要的數(shù)據(jù)平臺(tái), 滿足業(yè)務(wù)需求.
關(guān)于作者
洪斌, 有贊大數(shù)據(jù)團(tuán)隊(duì)負(fù)責(zé)人, 專(zhuān)注大數(shù)據(jù)和數(shù)據(jù)挖掘相關(guān)技術(shù). 歡迎交流.