ROLAP(relational OLAP),明細(xì)數(shù)據(jù)、聚合后的數(shù)據(jù)都保存在關(guān)系型的數(shù)據(jù)庫(kù)中。這種方式查詢效率最低,每次查詢都需要計(jì)算,效率高不高完全靠數(shù)據(jù)庫(kù)。數(shù)據(jù)庫(kù)需要持續(xù)調(diào)優(yōu)。
HOLAP(hybrid OLAP),明細(xì)數(shù)據(jù)保留在關(guān)系型數(shù)據(jù)庫(kù)的事實(shí)表中,但是聚合后的數(shù)據(jù)保存在cube中。
MOLAP(multidimensional OLAP),將明細(xì)數(shù)據(jù)和聚合后的數(shù)據(jù)均保存在cube中,在查詢性能上有很大提高,其實(shí)就是空間換時(shí)間。需要額外購(gòu)買產(chǎn)品,而且會(huì)而外增加管理維護(hù)成本。
我們?cè)瓉?lái)在某大行里面試過(guò)多次Cube,雖然都知道MOLAP效率快,但是因?yàn)樵缙诎姹荆ìF(xiàn)在不知道是否改善)權(quán)限、數(shù)據(jù)刷新、模型不穩(wěn)定維度經(jīng)常變化以及產(chǎn)品功能原因,屢試屢敗。我們最終方案是ROLAP,采用greenplum搭建了128臺(tái)機(jī)器的集群作為訪問(wèn)數(shù)據(jù)庫(kù),底層全部存儲(chǔ)明細(xì)數(shù)據(jù),前端采用cognos query studio 作為自由拖拽。實(shí)現(xiàn)了靈活查詢與效率之間的一個(gè)相互平衡和制約,查詢效率不會(huì)太高,但是業(yè)務(wù)更關(guān)注的是能夠出數(shù)據(jù)而不是效率本身,當(dāng)然也感謝業(yè)務(wù)部門的包容。而且咨詢過(guò)同業(yè)經(jīng)驗(yàn),基本都拋棄了CUBE,采用ROLAP。
基于明細(xì)數(shù)據(jù)的多維模型、雪花模型能夠支持業(yè)務(wù)靈活用數(shù)的問(wèn)題,但是性能問(wèn)題是一大頭痛的事情,ROLAP開(kāi)發(fā)簡(jiǎn)單但是效率完全依靠數(shù)據(jù)庫(kù)本身,當(dāng)數(shù)據(jù)量到一定程度后很難保證性能,所以在模型之后又出現(xiàn)了大量為了解決性能而開(kāi)發(fā)的報(bào)表物理表(寬表)。MOLAP固然能解決效率方面很多的問(wèn)題,但是相對(duì)ROLAP也會(huì)帶來(lái)產(chǎn)品本身的管理運(yùn)維成本的增加,而且屢試屢敗的經(jīng)驗(yàn)確實(shí)留下了陰影。
套用一句話,我們要的是金融服務(wù)而不是銀行,時(shí)至今日我們一年還有幾次步入銀行柜臺(tái),但是銀行生意照樣紅火我們每天也離不開(kāi)金融服務(wù)。其實(shí)不管是ROLAP還是MOLAP,我們要的是查詢效率和業(yè)務(wù)期待之間的平衡,而不在乎后臺(tái)的實(shí)現(xiàn)技術(shù)本身。是否有一種產(chǎn)品,既具備ROLAP開(kāi)發(fā)設(shè)計(jì)、使用的靈活性,又能夠很好解決查詢效率問(wèn)題?同時(shí)支持橫向擴(kuò)展,支持海量數(shù)據(jù)的大并發(fā)查詢。