1. 程式人生 > >淺析資料庫(DB)、操作資料儲存(ODS)和資料倉庫(DW)的區別與聯絡

淺析資料庫(DB)、操作資料儲存(ODS)和資料倉庫(DW)的區別與聯絡

文章背景:

相信大部分剛接觸上面三個概念的同學,都多多少少會有些迷惑,現在我就給大家簡單分析下這三者的關係,希望大家對這三者的概念理解有所幫助吧。

本文主要從下面兩類關係來敘述上面三者的關係:

  1. 資料庫(DB)和資料倉庫(DW)的區別與聯絡
  2. 操作資料儲存(ODS)和資料倉庫(DW)的區別與聯絡

資料庫與資料倉庫的區別與聯絡

資料庫與資料倉庫基礎概念:

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

資料倉庫:資料倉庫系統的主要應用主要是OLAP(On-Line Analytical Processing),支援複雜的分析操作,側重決策支援,並且提供直觀易懂的查詢結果。

OLTP和OLAP概念補充:

資料處理大致可以分成兩大類:聯機事務處理OLTP(on-line transaction processing)、聯機分析處理OLAP(On-Line Analytical Processing)。

OLTP是傳統的關係型資料庫的主要應用,主要是基本的、日常的事務處理,例如銀行交易。 
OLAP是資料倉庫系統的主要應用,支援複雜的分析操作,側重決策支援,並且提供直觀易懂的查詢結果。

OLTP 系統強調資料庫記憶體效率,強調記憶體各種指標的命令率,強調繫結變數,強調併發操作; 
OLAP 系統則強調資料分析,強調SQL執行市場,強調磁碟I/O,強調分割槽等。

OLTP與OLAP的區別

舉一個具體的例子:(轉自知乎作者:陳誠),個人覺得例子描述的很清晰

舉個最常見的例子,拿電商行業來說好了。

基本每家電商公司都會經歷,從只需要業務資料庫到要資料倉庫的階段。

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

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

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

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

  1. 業務資料庫中的資料結構是為了完成交易而設計的,不是為了而查詢和分析的便利設計的。
  2. 業務資料庫大多是讀寫優化的,即又要讀(檢視商品資訊),也要寫(產生訂單,完成支付)。因此對於大量資料的讀(查詢指標,一般是複雜的只讀型別查詢)是支援不足的。

而怎麼解決這個問題,此時我們就需要建立一個數據倉庫了,公司也算開始進入資訊化階段了。資料倉庫的作用在於:

  1. 資料結構為了分析和查詢的便利;
  2. 只讀優化的資料庫,即不需要它寫入速度多麼快,只要做大量資料的複雜查詢的速度足夠快就行了。

那麼在這裡前一種業務資料庫(讀寫都優化)的是業務性資料庫,後一種是分析性資料庫,即資料倉庫。

常見產品:

  1. 資料庫比較流行的有:MySQL,Oracle,SqlServer,DB2等

  2. 資料倉庫比較流行的有:AWS Redshift,Greenplum,Hive等

操作資料儲存與資料倉庫的區別與聯絡

基礎概念:(抓住重點:DW是反映歷史變化,ODS是反映當前變化)

資料倉庫(Data Warehouse):是一個面向主題的(Subject Oriented)、整合的(Integrated)、相對穩定的(Non-Volatile)、反映歷史變化(Time Variant)的資料集合,用於支援管理決策(Decision Making Support)。

時效:T+1

操作資料儲存(ODS):是一個面向主題的、整合的、可變的、當前的細節資料集合,用於支援企業對於即時性的、操作性的、整合的全體資訊的需求。

ODS是資料倉庫體系結構中的一個可選部分,是DB與DW之間的中間層,ODS具備資料倉庫的部分特徵和OLTP系統的部分特徵。

時效:實時

ODS概念的由來

ODS儲存了運營系統(如OLTP(聯機事務處理)系統)近實時的詳細資料。ODS的概念最早是由“資料倉庫之父”——Bill Inmon提出的。ODS最初引入是為了尋找能滿足快速載入和資料整合的效能要求,並且減少面向分析需求的變更和擴充對生產系統影響的解決方案,這一解決方案便是在生產系統和EDW之間增加一個數據整合層(也叫做資料緩衝層)即ODS。具有資料整合層的作用,是提出ODS概念的主要出發點。隨著技術的發展,近年來ODS被賦予的功能和作用也得到了延伸,目前業界普遍認同的觀點是:ODS為企業原始運營資料儲存提供了一個整合平臺,它的資訊來自於不同的運營型應用系統。通過資料介面,在資料整合業務規則作用下,進入ODS的資訊是可靠的、可信的。

ODS的工作過程

生產系統中的運營資料通過ETL(抽取、轉換、裝載)過程進人到ODS中,生產系統之間準實時的資料交換由ODS系統完成,ODS系統同時還將整合好的生產系統下的運營資料通過ETL等方式傳送到EDW中,完成運營資料從操作環境進人到分析環境的過程。

ODS是EDW的一個有益的補充和擴充套件。

兩者相同點:

  • ODS與EDW都是企業資料架構中的獨立系統,兩個系統都不是直接產生運營資料的系統,兩個系統中的資料都是由操作環境的資料經過抽取、轉換、載入(ETL)的過程而來,還要進行進一步的清理、整合等工作(EDW的資料可由ODS載入裝入)。

  • ODS與EDW一樣都既有細粒度的資料。也有根據不同維度彙總的彙總資料。

  • ODS與EDW上均提供基於跨系統整合後資料的報表類應用。

兩者不同之處:(主要從10個方面來敘述)

雖然ODS與EDW具有一些相似之處.但兩者卻是完全不同的實體,下面從多個角度對比兩者的不同之處。

(1) 使用角色

  • ODS主要面向營業、渠道等一線生產人員和一線管理人員,為了實現準實時、跨系統的運營細節資料的查詢,以獲得細粒度的運營資料展現,例如渠道人員查詢客戶的全檢視資訊由ODS提供資料支撐。

  • EDW主要面向專業分析人員、輔助決策支援人員等,為了實現基於歷史資料的統計分析和資料探勘,以獲得客戶深層次的特徵和市場發展的規律,例如專業分析人員的經營狀況趨勢分析由EDW提 供支撐。

(2) 資料來源

  • ODS需要的大部分運營資料直接來源生產系統。 ODS中的部分分析結果資料來源於EDW,例如客戶 洞察資訊等。

  • EDW需要的運營資料,如果在ODS中已存在,EDW則直接從ODS獲取這部分資料。EDW需要的運營資料,如果在ODS中沒有,EDW則直接從生產系統獲取這部分資料。

(3) 資料獲取效能和及時性

  • ODS支援OLTP型別的資料更新,資料更新時間短,資料可實現準實時更新,效能與及時性都高於EDW 。

  • EDW中的資料一般通過批量載入進入,資料更新速度慢,無法實現準實時更新,資料更新時間不足以支援實時的報表和事件監控需求。

(4) 資料架構

  • ODS以關注生產運營過程的統計與監控為主的生產視角主題域方式來組織資料。ODS提供操作資料的統計,主要提供應用需要的細粒度運營資料。ODS中也存在部分粗粒度彙總資料,但彙總的維度少且簡單。

  • EDW關注對歷史資料的深層次分析與挖掘.從分析與挖掘的需要出發按不同主題維度來彙總與組織資料。EDW提供歷史資料的展示和分析,主要提供多層粗粒度彙總資料.彙總的維度多且複雜。

(5) 資料共享能力

  • ODS為其他生產系統提供運營資料的準實時資料共享服務。

  • EDW一般不為生產系統提供此類準實時的資料共享服務。系統中的資料只供本系統分析與挖掘應用使用。

(6) 系統提供應用資料查詢

  • ODS提供生產環境下的資料查詢,查詢的交易量較小,不耗費太多資源,有確定的完成速度。而EDW提供分析環境下的查詢,查詢單元量較大,消耗的資源很多,完成的速度也不確定。

  • ODS提供生產環境下實時性較高的生產經營報表,動態報表。而EDW提供分析環境下的主題分析與挖掘報表,固態報表。

  • ODS提供面向少量維度的細粒度資料的統計,而EDW提供面向多個維度的多層粗粒度資料的主題統計、分析及深層次的挖掘。

  • ODS提供績效管理和統計、資料質量審計和監控管理等功能。 EDW提供趨勢分析、客戶消費行為分析和評估等功能。

(7) 資料儲存

  • 客戶等關鍵實體資料。ODS長久儲存當前資料,EDW長久儲存當前與歷史資料。
  • 詳單資料。ODS儲存1個月到3個月;EDW儲存2年。
  • 彙總資料。ODS儲存3年;EDW儲存5年。
  • 其他資料。ODS儲存13個月;EDW儲存3年。

(8) 系統技術特徵

  • ODS主要面對大併發使用者數、小資料量的訪問,EDW主要面對小併發使用者數、大資料量的訪問。

  • ODS資料庫優化同時側重索引和分割槽技術;EDW資料庫優化主要側重分割槽技術。

  • ODS支援OLTP型別和OLAP(聯機分析處理)型別的資料操作,EDW支援OLAP型別的資料操作。

(9) 系統可靠性

  • ODS參與運營.必須保證可靠性。
  • 相對ODS,EDW可以允許有更多的離線時間。

(10) 系統開放性

  • 因為需要與大量不同硬體、資料庫配置的系統相互交換資料。ODS要求比較高的系統開放性。
  • EDW一般只獲取資料,而不提供給其他應用系統以多種模式直接訪問,解決方案上也可採用相對封閉的資料庫、軟硬體平臺。

ETL概念補充:

ETL是資料抽取(Extract)、清洗(Cleaning)、轉換(Transform)、裝載(Load)的過程。是構建資料倉庫的重要一環,使用者從資料來源抽取出所需的資料,經過資料清洗,最終按照預先定義好的資料倉庫模型,將資料載入到資料倉庫中去。

舉一個簡單的例子:ETL開發工作流程

ETL開發流程圖

個人理解的聯絡: