數(shù)據(jù)庫和數(shù)據(jù)倉庫這幾個(gè)字看起來都差不多,不就多個(gè)倉字嘛,又不是多了蒼老師?
從本質(zhì)上來說,數(shù)據(jù)庫和數(shù)據(jù)倉庫都是數(shù)據(jù)的集合。沒什么不同。
但是它們的定位確是不一樣。數(shù)據(jù)庫是服務(wù)于事務(wù)處理的(OLTP),數(shù)據(jù)倉庫是服務(wù)于商業(yè)數(shù)據(jù)分析的(OLAP)。
用戶在前端進(jìn)行的操作,產(chǎn)生了事務(wù)和數(shù)據(jù)的變化,數(shù)據(jù)庫要對這部分的數(shù)據(jù)進(jìn)行增加、刪除和修改。所以數(shù)據(jù)庫的操作是相對簡單的讀寫,只作用于相對少量的數(shù)據(jù)。由于數(shù)據(jù)庫操作的主要對象的表中的事件記錄,對其進(jìn)行增刪改,對應(yīng)的行式存儲(chǔ)就是最適合數(shù)據(jù)庫的存儲(chǔ)方式。
基于以上特征,數(shù)據(jù)庫一般采用的軟件為MySQL,Oracle,SQLServer等關(guān)系型數(shù)據(jù)庫進(jìn)行數(shù)據(jù)存儲(chǔ)?;?NF原則,搭建E-R表格,結(jié)構(gòu)較為復(fù)雜,存儲(chǔ)緊致少冗余,對讀和寫都有優(yōu)化的數(shù)據(jù)結(jié)構(gòu)。
而使用數(shù)據(jù)倉庫的人主要是管理和運(yùn)營人員,通過對歷史數(shù)據(jù)的分析和洞察來做出相應(yīng)的商業(yè)決策。所以數(shù)據(jù)倉庫要求數(shù)據(jù)很全,需要把所有的數(shù)據(jù)整合到一起,從某些維度進(jìn)行深入的分析。由于數(shù)據(jù)倉庫主要是基于某些維度對大量的數(shù)據(jù)進(jìn)行查詢,那么列式存儲(chǔ)最能提高查詢效率。
基于以上特征,數(shù)據(jù)倉庫一般采用Hive,Greenplum,AWS Redshift等分布式數(shù)據(jù)庫。在搭建數(shù)據(jù)倉庫時(shí)則根據(jù)星型模型或雪花模型創(chuàng)建事實(shí)表和維度表?;谑聦?shí)表和維度表查出面向各個(gè)業(yè)務(wù)主題的數(shù)據(jù),然后可視化地展現(xiàn)出來。因此數(shù)據(jù)倉庫的表結(jié)構(gòu)相對簡單,存儲(chǔ)松散多冗余,一般只對讀取做優(yōu)化。
