前言
2010年左右,還是在上學的時候,學過一門課程叫《數據倉庫與數據挖掘》,那還是屬于傳統數據的時代,我們會討論什么是數據倉庫?什么是數據集市?數據倉庫和數據庫有什么區別?等等,當我還在苦苦學習這些之時,大數據時代悄然到來,并迅速改變著各行各業。如今,十年風云際會,大數據早已成了行業繞不開的話題,這其中我們或多或少會接觸到很多新興的概念,例如數據湖、數據中臺等,通過一些碎片化的學習,也是大概知道這些概念的意思,但要系統的說出這些概念之間的區別,深刻的了解其內涵,對我而言,恐怕還是困難的。所以,最近我系統的學習并總結了這些概念的含義和區別,寫成本篇文章,分享給和我一樣對此困惑并感興趣的同學,希望理清這些概念的內涵和異同能對日后的工作有所幫助。
本篇文章將大體按照傳統數據到大數據時代發展的時間軸介紹其中所涉及的數據概念,并以數據倉庫為核心通過兩兩對比的方式總結其中的異同。本文屬于綜述性的概念科普文章,對其中所涉及到的方法論不做過多的闡述,感興趣的同學可以查閱相關資料學習,后續,若時間允許,將陸續推出相關方法論系列介紹,同時歡迎有興趣的同事和我一起完成。
?
1 概念介紹
本文主要介紹如下幾個數據概念:
數據庫
數據庫是“按照數據結構來組織、存儲和管理數據的倉庫”。是一個長期存儲在計算機內的、有組織的、有共享的、統一管理的數據集合。
數據庫是以一定方式儲存在一起、能與多個用戶共享、具有盡可能小的冗余度、與應用程序彼此獨立的數據集合,可視為電子化的文件柜——存儲電子文件的處所,用戶可以對文件中的數據進行新增、查詢、更新、刪除等操作。——百度百科
數據集市
是企業級數據倉庫的一個子集,他主要面向部門級業務,并且只面向某個特定的主題,按照多維的方式進行存儲,包括定義維度需要計算的指標維度的層次等,生成面向決策分析需求的數據立方體。——wikipedia
數據倉庫
是一個面向主題的、集成的、相對穩定的、反映歷史變化的數據集合用于支持管理決策。其主要功能是將組織透過資訊系統之聯機事務處理(OLTP)經年累月所積累的大量資料,透過數據倉庫理論所特有的資料存儲架構,作一有系統的分析整理,以利各種分析方法如聯機分析處理(OLAP)、數據挖掘(Data Mining)之進行,并進而支持如決策支持系統(DSS)、主管資訊系統(EIS)之創建,幫助決策者能快速有效的自大量資料中,分析出有價值的資訊,以利決策擬定及快速回應外在環境變動,幫助構建商業智能(BI)。——《Building the data warehouse》W.H.Inmon
數據湖
數據湖是以其自然格式存儲的數據的系統或存儲庫,同行是對象blob或文件。數據湖通常是企業所有數據的單一存儲,包括源系統數據的原始副本,以及用于報告、可視化、分析和機器學習等任務的轉換數據。數據湖可以包括來自關系數據庫(行和列)的結構化數據,半結構化數據(CSV,日志,XML,JSON),非結構數據(電子郵件、文檔、PDF)和二進制數據(圖像、音頻、視頻)。——wikipedia
數據平臺
數據平臺是在大數據基礎上出現的融合了結構化和非結構化數據的數據基礎平臺,為業務提供服務的方式主要是直接提供數據集。——網絡博客
數據中臺
????“以全域大數據建設為中心,技術上覆蓋整個大數據從采集、加工、服務、消費的全鏈路的各個環節,對內對外提供服務。豐富的大數據生態組件,構成了阿里的核心數據能力,通過大數據生態組件,可以迅速的提升數據應用的迭代能力,人人都有可能成為大數據專家。”——《阿里巴巴全域數據建設》,阿里巴巴數據技術及產品部高級技術專家張磊,2017杭州云棲大會-阿里大數據分論壇
“數據中臺是聚合和治理跨域數據,將數據抽象封裝成服務,提供給前臺以業務價值的邏輯概念。”——《數據中臺已成下一風口,它會顛覆數據工程師的工作嗎?》,ThoughtWorks數據和智能總監史凱
????通俗的來看,以上六個數據概念按順序整體呈現從小到大(指囊括的數據范圍和層次),從后端到前臺演變的趨勢,這也反映出數據行業價值的轉變。從前,IT是業務的后端,而數據是后端的后端,數據要往前走面臨著巨大挑戰,人們很難看到數據和價值的關系。如今,DT時代,數據通過中臺直接面向業務來創造價值,數據的價值可以得到最直接的體現。
2 對比介紹
數據倉庫作為數據行業發展時間軸上一以貫之的概念,它的存在見證了數據行業的發展,本文將以數據倉庫為核心與其他五個概念的特性進行對比分析:
?
- 數據倉庫VS數據庫
一般來說,傳統數據庫是為存儲而生,而數據倉庫很明顯,是為分析而生。
傳統數據庫包括增刪改查,但數據倉庫注重查詢。而傳統數據庫的主要任務是執行聯機事務處理(OLTP)。主要負責日常操作。而數據倉庫系統在數據分析和決策方面為用戶或“知識工人”提供服務,可以以不同的格式組織和提供數據,以便應付不同的需求,這種系統稱作聯機分析處理(OLAP)。
? | 數據倉庫 | 數據庫 |
面向對象 | 面向市場的,用于知識工人的數據分析 | 面向顧客的,用戶操作員,客戶和信息技術人員的事務和查詢處理 |
數據內容 | 管理大量歷史數據,提供匯總和聚集機制,而且在不同的粒度層上存儲和管理信息 | 管理當前數據。一般這種數據比較瑣碎,很難用于決策 |
數據設計 | 系統采用星形或雪花模型和面向主題的數據庫設計 | 采用實體聯系數據模型和面向應用的數據庫設計 |
數據視圖 | 經常需要跨越數據庫模式的不同版本 | 關注一個企業或部門內部的當前數據,不涉及歷史數據或不同單位的數據 |
訪問模式 | 大部分是只讀操作 | 主要由短的原子事務組成,一般需要并發控制和恢復機制 |
?
相信數據倉庫和數據庫的區別,大家都已經有所了解,這里就不做過多的解釋了。
- 數據倉庫VS數據集市
數據集市不同于數據倉庫,一般是服務于某幾個部門。數據倉庫向各個數據集市提供數據,且一般來講,數據倉庫的表設計符合規范化設計,而數據集市一般使用維度建模。一般有兩種類型的數據集市——獨立性和從屬性。獨立性數據集市直接從操作型環境獲取數據,從屬性數據集市從企業級數據倉庫獲取數據。
從屬性數據集市結構如下圖所示:
?
?上圖所示的以數據倉庫為基礎的決策支持環境,要求數據倉庫能夠滿足所有最終用戶的需求。然而,最終用戶的需求是不斷變化的,而且各種類型的用戶對信息的需求也不一樣,這就要求數據倉庫存儲的數據具有充分的靈活性,能夠適應各類用戶的查詢和分析。另一方面,最終用戶對信息的需求必須易于訪問,能夠在較高的性能上獲得結果。但是,靈活性和性能對數據倉庫而言,是一對矛盾體。為了適應靈活性的要求,數據倉庫需要存儲各種歷史數據,以規范化的模式存儲(一般是第3范式)。于是,對于特定的用戶,TA所需要的信息就需要在許多張很大的表上連接后得到結果,這樣就無法滿足用戶對快速訪問的性能需求。為了解決靈活性和性能之間的矛盾,數據倉庫體系結構中增加了數據集市,數據集市存儲為特定用戶需求而預先計算好的數據,從而滿足用戶對性能的需求。
獨立型數據集市的存在會給人造成一種錯覺,似乎可以先獨立地構建數據集市,當數據集市達到一定的規模可以直接轉換為數據倉庫,然而這是不正確的,多個獨立的數據集市的累積并不能形成一個企業級的數據倉庫,這是由數據倉庫和數據集市本身的特點決定的。如果脫離集中式的數據倉庫,獨立的建立多個數據集市,企業只會又增加了一些信息孤島,仍然不能以整個企業的視圖分析數據,數據集市為各個部門或工作組所用,各個集市之間又會存在不一致性。當然,獨立型數據集市是一種既成事實,為滿足特定用戶的需求而建立的一種分析型環境,但是,從長遠的觀點看,是一種權宜之計,必然會被企業級的數據倉庫所取代。
數據倉庫和數據集市的區別總結如下:
? | 數據倉庫 | 數據集市 |
數據來源 | 遺留系統、OLTP系統、外部數據 | 數據倉庫 |
范圍 | 企業級 | 部門級或工作組級 |
主題 | 企業主題 | 部門或特殊的分析主題 |
數據粒度 | 最細的粒度 | 較粗的粒度 |
數據結構 | 規范化結構(第3范式) | 星型模式、雪片模式或混合模式 |
歷史數據 | 大量的歷史數據 | 適度的歷史數據 |
優化 | 處理海量數據 ?數據探索 | 便于訪問和分析 ?快速查詢 |
索引 | 高度索引 | 高度索 |
????上文中提到諸多數據建模方法,如規范化建模、維度建模(星型模式、雪片模式、混合模式等)屬于具體方法論范疇,感興趣的同學可以查閱相關資料,便于對以上概念進行更深刻的理解。
- 數據倉庫VS數據湖
相較而言,數據湖是較新的技術,擁有不斷演變的架構。數據湖存儲任何形式(包括結構化和非結構化)和任何格式(包括文本、音頻、視頻和圖像)的原始數據。根據定義,數據湖不會接受數據治理,但專家們都認為良好的數據管理對預防數據湖轉變為數據沼澤不可或缺。數據湖在數據讀取期間創建模式。與數據倉庫相比,數據湖缺乏結構性,而且更靈活;它們還提供了更高的敏捷性。值得一提的是,數據湖非常適合使用機器學習和深度學習來執行各種任務,比如數據挖掘和數據分析,以及提取非結構化數據等。
? | 數據倉庫 | 數據湖 |
類型 | 結構化數據,而且這些數據必須與數據倉庫事先定義的模型吻合 | 所有類型數據,如結構化數據、半結構化、非結構化數據等,數據的類型依賴于數據源系統的原始數據格式 |
目的 | 處理結構化數據,將他們或者轉換為多維數據,或者轉換為報表,以滿足后續的高級報表及數據分析需求 | 非常適合深度分析,包括高級數據分析、機器學習、深度學習等 |
特點 | 高性能、可重復性、持續使用 | 便于探索、創新、靈活性高 |
數據湖和數據倉庫的差別很明顯,然而在企業中兩者的作用是互補的,不應認為數據湖的出現是為了取代數據倉庫。
- 數據倉庫VS數據平臺
因數據倉庫具有歷史性,其中存儲的數據大多是結構化數據,數據平臺的出現解決了數據倉庫不能處理非結構化數據和報表開發周期長的問題。
? | 數據倉庫 | 數據平臺 |
數據類型 | 結構化數據 | 所有類型數據,如結構化數據、半結構化、非結構化數據等 |
服務方式 | 為業務提供服務的方式主要是分析報表 | 為業務提供的方式主要是直接提供數據集 |
在以上的解讀中,數據平臺和數據湖好像存在諸多相似性,這二者的區別個人認為應該從數據加工的角度理解,數據湖更著重對原始數據的存儲,數據平臺則同數據倉庫一樣,需對原始數據進行清洗、轉換等數據處理后進行統一規范存儲。
大數據時代,數據平臺一般被稱之為大數據平臺。狹義上的大數據平臺和傳統數據平臺的功能一致,只是技術架構和數據容量方面的不同,但廣義的大數據平臺通常被賦予更多的使命,它不僅存儲多樣化的數據類型,還具有報表分析等數據倉庫的功能,以及其他數據分析挖掘方面的高級功能。
- 數據倉庫VS數據中臺
先說說數據中臺,從數據中臺的眾多定義中我們可以總結出如下一些特點或目標:
- 采集并致力跨域數據
采集并加工“企業內外割裂的數據”,“治理跨域數據”,消除數據孤島。
- 形成數據資產層
經過加工的數據,“實現數據資產化”形成“企業數據資產管理中樞”。各類人員可以直接從數據中臺選用需要的數據。
- 增強“數據應用”迭代能力
提供組件化的加工能力,能夠快速形成業務需要的數據產品,“可以迅速的提升數據應用的迭代能力”。
- 形成API化的數據服務
形成數據資產并封裝成API服務后,應用和中臺之間無縫銜接,形成高度自動化的數據應用流程。業務人員即使不了解大數據技術,也能實施數據驅動型的工作,“人人都有可能成為大數據專家。”
- 業務為驅動的數據服務
數據中臺的目的是為前臺業務提供服務,因此對數據的計算、加工都是以滿足業務需求為目標。脫離場景的數據中臺是不合理的。
數據倉庫也好,傳統的數據平臺也好,其出發點應該說更是一個支撐性的技術系統,即一定要去考慮我有什么數據,然后我才能干什么,因此特別強調數據質量和元數據管理,而數據中臺的第一出發點可不是數據,而是業務,一開始不用看你系統里面有什么數據,而是去解決你的業務問題需要什么樣的數據服務。
在具體的技術處理環節,二者也有明顯不同,數據的預處理流程正在從傳統的ETL結構向ELT轉變。傳統的數據倉庫集成處理架構是ETL結構,這是構建數據倉庫的重要一環,即用戶從數據源抽取出所需的數據,經過數據清洗,將數據加載到數據倉庫中去。而大數據背景下的架構體系是ELT結構,其根據上層的應用需求,隨時從數據中臺中抽取想要的原始數據進行建模分析。
概括地說,二者的關鍵區別有以下幾方面:
? | 數據倉庫/數據平臺 | 數據中臺 |
建設思想 | 以數據為驅動,自下向上 | 以業務為驅動,自上向下 |
服務方式 | 提供相關數據集或分析報表 | API化(或其他共享方式)的數據服務 |
業務距離 | 距離業務遠,用于支持管理決策分析,業務價值無法直接體現 | 距離業務近,加速企業從數據到業務價值的過程 |
使用場景 | 主要用于分析型場景 | 不僅適用于分析型,也適用于交易型等場景 |
處理結構 | ETL結構 | ELT結構 |
身處大數據行業,最后想簡單的說說大數據平臺和數據中臺。上文中提到,廣義的大數據平臺是一個企業級的超融合概念,無論是數據采集、存儲、處理、分析等環節在技術架構上和數據中臺并無明顯區別,個人認為當大數據平臺滿足以業務為驅動的建設模式和數據服務化的條件,大數據平臺一般也可看做是數據中臺。但需認識到,不少大數據平臺還是屬于以數據為驅動進行建設的傳統數據倉庫平臺,以數據集中化為目標,很少考慮它的業務價值和具體業務的數據服務內容和形式,這也是直接導致不少大數據平臺利用率較低或者價值較低的一個非常重要的原因。
3 總結
以上的概念是隨著數據行業的發展不斷涌現的新興概念,但新興概念的出現不是為了取代舊的概念,他們之間更多的應該是相互補充,相互融合的關系。我們不應一味的迎合潮流,強行向流行靠攏,也不應因循守舊而錯失與時俱進的最佳時機。
為了更好的理解上述概念,基于個人理解將上述概念分為兩個類別:一個是偏技術性數據概念,包括數據庫、數據集市、數據倉庫、數據湖等,另一個是偏業務性數據概念,包括大數據平臺、數據中臺等。以上分類可以幫助我們更好的理清他們之間的聯系,偏業務性數據概念的實現或多或少會用到或融合偏技術性的數據概念或是基于技術性數據概念的架構,從這個角度出發,或許可以更好理解它們之間相互補充、相互融合的關系。例如,第三方IT研究與顧問咨詢公司Gartner聯袂某國內廠商發布的基于數據湖架構的大數據平臺,據悉是國內首個企業級的私有云數據湖,是新一代的數據匯聚、共享、交換、開放平臺。
????當我們正在感嘆從數據倉庫到數據湖、從數據平臺到數據中臺的演化如此迅速之時,其它新興的數據概念也已悄然到來。例如數據網絡(Data mesh)概念的提出,改變了數據湖或者數據倉庫的集中式范式,將企業數據平臺從單體式架構演進成具有微服務特性的分布式數據平臺,而這種架構應該更能滿足數據中臺關于靈活的數據服務化的要求。數據時代發展日新月異,新興概念層出不窮,我們唯有保持足夠的學習熱情并積極的思考其內在的演進邏輯才能緊跟時代前沿,創造性的解決一些難題。
以上相關概念當放在兩兩對比的角度總是容易從狹義且嚴格的定義中來找不同,實際上,在工作中,廣義的理解可能更有利于工作的開展,比如數據倉庫和數據集市的區別,狹義上是屬于數據層次的不同,廣義上當我們談到企業級數據倉庫時,個人認為把他理解為包含了眾多從屬性數據集市的數據倉庫也是可以的。弱化一下較小且細的概念在跨專業或者工作組的溝通上,可能會更加高效和容易一些。但這一切的前提需建立在對相關概念的深刻理解之上,只有這樣能才舉重若輕、收放自如。
所以,以上對概念的理解應作為對日后相關工作框架性的指導,而非嚴格的約束,在生產過程中我們應結合企業自身特點兼顧效率,這樣才能達到較好的效果,畢竟適合自己的才是最好的。
以上內容來自于網絡博客和個人的觀點,但均屬一家之言,對于總結或者分析不對的地方,歡迎指正。
?
參考資料
1.超越數據平臺!阿里推崇的數據中臺到底是什么樣的
https://baijiahao.baidu.com/s?id=1645427586926296393&wfr=spider&for=pc
2.辨析BI、數據倉庫、數據湖和數據中臺內涵及差異點(建議收藏)
https://blog.csdn.net/zhaodedong/article/details/101139388
3.數據倉庫和數據集市的概念、區別與聯系
https://blog.csdn.net/weixin_42575593/article/details/84763340
4.《數據資產管理實踐白皮書4.0版》
5.從數據倉庫到大數據,數據平臺這25年是怎樣進化的?
https://blog.csdn.net/weixin_30826095/article/details/96178130
6.什么是數據湖?有什么用?終于有人講明白了……
https://blog.csdn.net/zw0Pi8G5C1x/article/details/87910161
7.Data Lake與數據倉庫
https://blog.csdn.net/Tybyqi/article/details/86647607
8.數據倉庫與數據湖之間有何區別?
https://my.oschina.net/hblt147/blog/3024677
9.分布式數據平臺Data Mesh
https://zhuanlan.zhihu.com/p/83134986
10.基于數據湖架構的大數據平臺:品高云與Gartner聯合報告
https://blog.csdn.net/chuanzhongdu1/article/details/84848380
?
---------------------
作者:lvxiao9856
來源:CSDN
原文:https://blog.csdn.net/u012548562/article/details/103910938
版權聲明:本文為作者原創文章,轉載請附上博文鏈接!
內容解析By:CSDN,CNBLOG博客文章一鍵轉載插件