一、傳統數據庫
每個人家里都會有冰箱,冰箱是用來干什么的?冰箱是用來存放食物的地方。同樣的,數據庫是存放大量數據的地方。數據庫 (Database)是按照數據結構來組織、存儲和管理數據的倉庫。它具有數據結構化,數據共享度高,冗余度低,易於擴展,數據獨立性高等特點。數據庫是為捕獲數據而設計的,它是面向事務的設計。它注重對事務的處理,比如對業務數據的增刪改查,對業務數據的查詢等等。數據庫一般存儲業務數據,常常作為實時業務系統的后台,一般存儲着在線交易數據等等的數據
二、數據倉庫
數據倉庫是出於分析性報告和決策支持的目的而創建,它在我們已有的數據庫(它是對數據的存儲)的基礎之上,增加了對數據的OLAP(On-Line Analytical Processing),支持復雜的數據分析操作,更側重決策支持,提供直觀易懂的查詢結果,大概意思就是在數據庫已經大量存在數據的情況下,為了進一步方便地挖掘數據資源,對數據庫中的歷史數據進行遷移,細分,整理,分析。數據倉庫存儲的一般是歷史數據,常常是為了做離線數據分析
三、數據庫與數據倉庫的區別:
1.數據庫與數據倉庫的區別實際講的是 OLTP 與 OLAP 的區別。
OLTP(On-Line Transaction Processing),也叫操作型處理,也可以稱面向交易的處理系統,它是傳統的數據庫的主要應用,主要是基本的日常事務處理,通常對少數記錄進行增刪改查與查詢等等,如銀行交易
OLAP(On-Line Analytical Processing),也叫分析型處理,是數據倉庫系統的主要應用,支持復雜的分析操作,一般針對某些主題歷史數據進行分析,支持管理決策,提供直觀易懂的查詢結果
2.以銀行業務為例。數據庫是事務系統的后台,客戶在銀行做的每筆交易都會寫入數據庫,被記錄下來,這樣,可以簡單地理解為用數據庫記賬。而數據倉庫是分析系統的數據平台,它從事務系統獲取數據,並做匯總、加工,分析來為決策者提供決策的依據。比如,某銀行分行一個月發生多少交易,該分行當前的存款余額是多少。如果存款又多,消費交易又多,那么該地區就有必要設立ATM了。顯然,銀行的交易是巨大的,通常以百萬甚至千萬次來計算。事務系統是實時的,這就要求時效性, 客戶存一筆錢需要幾十秒是無法忍受的,這就要求數據庫只能存儲很短一段時間的數據。而分析系統是以后的,它要提供關注時間段內所有的有效數據。這些數據是海量的,匯總計算起來也要慢一些,但是,只要能夠提供有效的數據分析報表和支持管理決策就達到目的。
參考:
數據倉庫和數據庫的區別是什么?-mysql教程-PHP中文網
4.Hive中的ODS、 DWD、 DWS、 ADS 數倉分層 - 理想三旬_z - 博客園 (cnblogs.com)