數據庫和數據倉庫的區別
數據庫:傳統的關系型數據庫的應用,主要是基本的、日常的事務處理,更關注業務交易處理(OLTP)
數據倉庫:數據倉庫支持復雜的分析操作,側重決策支持,並且提供直觀易懂的查詢效果,更關注數據分析層面(OLAP)
隨着業務指數級的增長,數據量陡增,從最初粗放的數據分析逐步演化為角色和場景都非常精細化的集群分析。這類非常具體,且能夠對公司決策起到關鍵性作用的數據,很難從業務數據庫中調取出來,主要原因是:
1、業務數據庫中的數據結構是為了完成交易設計的,不是為了查詢和分析的便利設計的
2、業務數據庫大多數是讀寫優化的,對於大量數據的讀(查詢指標,一般是只讀類型的數據查詢)的支持不足
數據倉庫的作用在於:
1、數據結構的設計更偏向於查詢和分析
2、只讀優化的數據庫,對於數據寫入的速度要求不高,只需要做大量數據的復雜查詢的速度夠快就可以了。
數據模型上的區別:
數據庫:主要遵從范式模型(1NF,2NF,3NF,等等),從而盡可能減少數據冗余,保證數據引用的完整性。
數據倉庫:強調數據分析的效率,復雜查詢的速度,數據之間的相關性分析。數據倉庫多使用多維模型,提高數據分析的效率。
產品實現上的區別:
數據庫:通常使用行式存儲,如Oracle,Microsoft sql server等
數據倉庫:通常使用列式存儲,如SAP IQ,Hive等