資料庫 與 資料倉儲的本質區別是什麼?

2021-09-06 15:29:24 字數 1247 閱讀 7834

資料庫 與 資料倉儲的本質區別是什麼?

資料庫:傳統的關係型資料庫的主要應用,主要是基本的、日常的事務處理,例如銀行交易。

資料倉儲:資料倉儲系統的主要應用主要是olap(on-line analytical processing),支援複雜的分析操作,側重決策支援,並且提供直觀易懂的查詢結果。

我嘗試著再補充些具體的事例來說明,這樣更可以幫助大家更好理解一些。

舉個最常見的例子,拿電商行業來說好了。基本每家電商公司都會經歷,從只需要業務資料庫到要資料倉儲的階段。

電商早期啟動非常容易,入行門檻低。找個外包團隊,做了乙個可以下單的網頁前端 + 幾台伺服器 + 乙個mysql,就能開門迎客了。這好比手工作坊時期。

第二階段,流量來了,客戶和訂單都多起來了,普通查詢已經有壓力了,這個時候就需要公升級架構變成多台伺服器和多個業務資料庫(量大+分庫分表),這個階段的業務數字和指標還可以勉強從業務資料庫裡查詢。初步進入工業化。

第三個階段,一般需要 3-5 年左右的時間,隨著業務指數級的增長,資料量的會陡增,公司角色也開始多了起來,開始有了 ceo、cmo、cio,大家需要面臨的問題越來越複雜,越來越深入。高管們關心的問題,從最初非常粗放的:「昨天的收入是多少」、「上個月的 pv、uv 是多少」,逐漸演化到非常精細化和具體的使用者的集群分析,特定使用者在某種使用場景中,例如「20~30歲女性使用者在過去五年的第一季度化妝品類商品的購買行為與公司進行的**活動方案之間的關係」。

這類非常具體,且能夠對公司決策起到關鍵性作用的問題,基本很難從業務資料庫從調取出來。原因在於:

1.業務資料庫中的資料結構是為了完成交易而設計的,不是為了而查詢和分析的便利設計的。

2.業務資料庫大多是讀寫優化的,即又要讀(檢視商品資訊),也要寫(產生訂單,完成支付)。因此對於大量資料的讀(查詢指標,一般是複雜的唯讀型別查詢)是支援不足的。

而怎麼解決這個問題,此時我們就需要建立乙個資料倉儲了,公司也算開始進入資訊化階段了。資料倉儲的作用在於:資料結構為了分析和查詢的便利;唯讀優化的資料庫,即不需要它寫入速度多麼快,只要做大量資料的複雜查詢的速度足夠快就行了。那麼在這裡前一種業務資料庫(讀寫都優化)的是業務性資料庫,後一種是分析性資料庫,即資料倉儲。

最後總結一下:

資料庫 比較流行的有:mysql, oracle, sqlserver等。

資料倉儲 比較流行的有:aws redshift, greenplum, hive等。

這樣把資料從業務性的資料庫中提取、加工、匯入分析性的資料庫就是傳統的 etl 工作。現在也有一些新的方法,這展開說又是另一件事情了,有機會再詳細說說。

資料庫 與 資料倉儲的本質區別是什麼?

畢業這一年多,聽著數倉,數倉的,總是在納悶 數倉不也是放在資料庫裡的嘛?資料庫 傳統的關係型資料庫的主要應用,主要是基本的 日常的事務處理,例如銀行交易。資料倉儲 資料倉儲系統的主要應用主要是olap on line analytical processing 支援複雜的分析操作,側重決策支援,並且...

資料庫與資料倉儲的本質區別

著作權歸作者所有。有兩個層面 角度來回答這個有趣的問題 1,邏輯層面 概念層面 資料庫和資料倉儲其實是一樣的或者及其相似的,都是通過某個資料庫軟體,基於某種資料模型來組織 管理資料。但是,資料庫通常更關注業務交易處理 oltp 而資料倉儲更關注資料分析層面 olap 由此產生的資料庫模型上也會有很大...

資料庫 與 資料倉儲的本質區別

資料庫 傳統的關係型資料庫的主要應用,主要是基本的 日常的事務處理,例如銀行交易。資料倉儲 資料倉儲系統的主要應用主要是olap on line analytical processing 支援複雜的分析操作,側重決策支援,並且提供直觀易懂的查詢結果。我嘗試著再補充些具體的事例來說明,這樣更可以幫助...