資料庫、資料倉庫、大資料平臺、資料中臺、資料湖對比分析
層出不窮的新技術、新概念、新應用往往會對初學者造成很大的困擾,有時候很難理清楚它們之間的區別與聯絡。本文將以資料研發相關領域為例,對比分析我們工作中高頻出現的幾個名詞,主要包括以下幾個方面:
- 資料
- 什麼是大資料
- 資料分析與資料探勘的區別是什麼
- 資料庫
- 什麼是資料庫
- 資料庫中的分散式事務理論
- 資料倉庫
- 什麼是資料倉庫
- 什麼是資料集市
- 資料庫與資料倉庫的區別是什麼
- 大資料平臺
- 什麼是大資料平臺
- 什麼是大資料開發平臺
- 資料中臺
- 什麼是資料中臺
- 資料倉庫與資料中臺的區別與聯絡
- 資料湖
- 什麼是資料湖
- 資料倉庫與資料湖有什麼區別與聯絡
希望本文對你有所幫助,煩請讀者諸君分享、點贊、轉發。
資料
什麼是大資料
麥肯錫全球研究所給出的定義是:一種規模大到在獲取、儲存、管理、分析方面大大超出了傳統資料庫軟體工具能力範圍的資料集合,具有海量的資料規模、快速的資料流轉、多樣的資料型別和價值密度低四大特徵。
我們再往深處思考一下,為什麼會有大資料(大資料技術)?其實大資料就是在這個資料爆炸增長的時代,業務需求增長促進技術迭代,技術滿足需求後又形成閉環促進業務持續增長,從而形成一個閉環。
資料分析與資料探勘的區別是什麼
資料分析可以分為廣義的資料分析和狹義的資料分析。廣義的資料分析就包括狹義的資料分析和資料探勘。我們在工作中經常常說的資料分析指的是狹義的資料分析。
資料分析(狹義) DataAnalysis | 資料探勘DataMining | |
---|---|---|
定義 | 根據分析目的,用適當的統計分析方法及工具,對收集來的資料進行處理與分析,提取有價值的資訊,發揮資料的作用。 | 資料探勘是指從大量的資料中,通過統計學、人工智慧、機器學習等方法,挖掘出未知的、且有價值的資訊和知識的過程。 |
作用 | 主要實現三大作用:現狀分析、原因分析、預測分析(定量)。資料分析的目標明確,先做假設,然後通過資料分析來驗證假設是否正確,從而得到相應的結論。 | 資料探勘主要側重解決四類問題:分類、聚類、關聯和預測(定量、定性),資料探勘的重點在尋找未知的模式與規律;如我們常說的資料探勘案例:啤酒與尿布等,這就是事先未知的,但又是非常有價值的資訊。 |
方法 | 主要採用對比分析、分組分析、交叉分析、迴歸分析等常用分析方法。 | 主要採用決策樹、神經網路、關聯規則、聚類分析等統計學、人工智慧、機器學習等方法進行挖掘。 |
結果 | 資料分析一般都是得到一個指標統計量結果,如總和、平均值等,這些指標資料都需要與業務結合進行解讀,才能發揮出資料的價值與作用。 | 輸出模型或規則,並且可相應得到模型得分或標籤,模型得分如流失概率值、總和得分、相似度、預測值等,標籤如高中低價值使用者、流失與非流失、信用優良中差等。 |
資料庫
什麼是資料庫
資料庫是按照資料結構來組織、儲存和管理資料的倉庫。是一個長期儲存在計算機內的、有組織的、可共享的、統一管理的大量資料的集合。
一般而言,我們所說的資料庫指的是資料庫管理系統,並不單指一個數據庫例項。
根據資料儲存的方式不同,可以將資料庫分為三類:分別為行儲存、列儲存、行列混合儲存,其中行儲存的資料庫代表產品有Oracle、MySQL、PostgresSQL等;列儲存的資料代表產品有Greenplum、HBASE、Teradata等;行列混合儲存的資料庫代表產品有TiDB,ADB for Mysql等。
資料庫中的分散式事務理論
ACID
傳統關係型資料庫事務設計原則,以下四點必須全部滿足:
- 原子性Atomicity:事務中操作要麼都發生,要麼都不發生;
- 一致性Consistency:事務前後資料完整性保持一致;
- 隔離性Isolation:多個使用者併發事務相互隔離;
- 永續性Durability:事務被提交後資料的改變就是永久性的。
舉例說明:A賬號有200元,B賬號有100元,現在A給B賬戶進行轉賬操作:
-
A減少100元,同時B增加100元,兩個操作要麼都成功要麼都失敗,滿足原子性;
-
A減少的金額,和B增加的金額要一致,按照一致性;
-
假如A給B轉賬的同一時刻,B又給C轉賬,這兩筆交易是相互隔離,滿足隔離性;
-
A給B轉賬100元,事務提交之後,在查詢賬號,A減少100元,B增加100元,滿足永續性;
CAP理論
2000年,Berkerly大學有位Eric Brewer教授提出了一個CAP理論,在2002年,麻省理工學院的Seth Gilbert(賽斯·吉爾伯特)
和Nancy Lynch(南希·林奇)
發表了布魯爾猜想的證明,證明了CAP理論的正確性。所謂CAP理論,是指對於一個分散式計算系統來說,不可能同時滿足以下三點:
- 一致性(Consistency) 等同於所有節點訪問同一份最新的資料副本。即任何一個讀操作總是能夠讀到之前完成的寫操作的結果,也就是說,在分散式環境中,不同節點訪問的資料是一致的。
- 可用性(Availability) 每次請求都能獲取到非錯的響應——但是不保證獲取的資料為最新資料。即快速獲取資料,可以在確定的時間內返回操作結果。
- 分割槽容錯性(Partition tolerance) 以實際效果而言,分割槽相當於對通訊的時限要求。系統如果不能在時限內達成資料一致性,就意味著發生了分割槽的情況,必須就當前操作在C和A之間做出選擇。即指當出現網路分割槽時(系統中的一部分節點無法與其他的節點進行通訊),分離的系統也能夠正常執行,即可靠性。
一個分散式的系統不可能同時滿足一致性、可用性和分割槽容錯性,最多同時滿足兩個。當處理CAP的問題時,可以有一下幾個選擇:
- 滿足CA,不滿足P。將所有與事務相關的內容都放在同一個機器上,這樣會影響系統的可擴充套件性。傳統的關係型資料庫。如MySQL、SQL Server 、PostgresSQL等都採用了此種設計原則。
- 滿足AP,不滿足C。不滿足一致性(C),即允許系統返回不一致的資料。其實,對於WEB2.0的網站而言,更加關注的是服務是否可用,而不是一致性。比如你發了一篇部落格或者寫一篇微博,你的一部分朋友立馬看到了這篇文章或者微博,另一部分朋友卻要等一段時間之後才能刷出這篇文章或者微博。雖然有延時,但是對於一個娛樂性質的Web 2.0網站而言,這幾分鐘的延時並不重要,不會影響使用者體驗。相反,當釋出一篇文章或微博時,不能夠立即釋出(不滿足可用性),使用者對此肯定不爽。所以呢,對於WEB2.0的網站而言,可用性和分割槽容錯性的優先順序要高於資料一致性,當然,並沒有完全放棄一致性,而是最終的一致性(有延時)。如Dynamo、Cassandra、CouchDB等NoSQL資料庫採用了此原則。
- 滿足CP,不滿足A。強調一致性性(C)和分割槽容錯性(P),放棄可用性性(A)。當出現網路分割槽時,受影響的服務需要等待資料一致,在等待期間無法對外提供服務。如Neo4J、HBase 、MongoDB、Redis等採用了此種設計原則。
資料倉庫
什麼是資料倉庫
資料倉庫(Data Warehouse)是一個面向主題的(Subject Oriented)、整合的(Integrated)、相對穩定的(Non-Volatile)、反映歷史變化(Time Variant)的資料集合,用於支援管理決策(Decision Making Support)。
-
面向主題的:根據使用者的需求,將來自不同資料來源的資料圍繞著各種主題進行分類整合。
-
整合的:來自各種資料來源的資料按照統一的標準集成於資料倉庫中。
-
相對穩定的:資料倉庫中的資料是一系列的歷史快照,不允許修改或刪除,只涉及資料查詢。
-
反映歷史變化的 :資料倉庫會定期接收新的整合資料,從而反映出最新的資料變化。
資料庫與資料倉庫有什麼區別
嚴格來講資料倉庫不是一門技術,也不是一個產品。像前文提到的關係型資料庫MySQL和Oracle都屬於一種產品。那麼是什麼資料倉庫的,見名知意,其實就是儲存資料的倉庫,資料的來源有很多種,可以統一在資料倉庫中進行匯合,然後通過統一的建模,加工成服務與資料分析的資料模型,輔助企業分析決策。
那麼,資料倉庫該怎麼構建呢,目前使用Hive構建資料倉庫的比較多,本文不會過多分析這些大資料技術。總之一句話,資料倉庫涉及資料建模,資料抽取ETL,資料視覺化等一系列的流程,是一種資料解決方案,通常需要多種技術進行組合使用。
資料倉庫的本質是OLAP,即是做線上分析處理,這是與資料庫的本質區別。還有一點既然是資料倉庫,肯定是要加工資料,那麼加工資料肯定耗時間,所以加工資料在實際的應用中又分為批處理和實時處理。
資料庫是為了解決OLTP而存在的,而資料倉庫是為了分析資料而存在的。資料庫的資料是資料倉庫的資料來源,即將資料庫的資料載入至資料倉庫,所以說,資料倉庫不生產資料,只做資料的搬運工。
還有一點就是,資料倉庫並不是必須的,但是對於一個業務系統而言,資料庫是必須的。只有在業務穩定運轉的情況下,才會去構建企業級資料倉庫,通過資料分析,資料探勘來輔助業務決策,實現錦上添花。
資料庫 | 資料倉庫 | |
---|---|---|
資料處理型別 | OLTP | OLAP |
使用人員 | 業務開發人員 | 分析決策人員 |
核心功能 | 日常事務處理 | 面向分析決策 |
資料模型 | 關係模型(ER) | 多維模型(雪花、星型) |
資料量 | 相對較小 | 相對較大 |
儲存內容 | 儲存當前資料 | 儲存歷史資料 |
操作型別 | 查詢、插入、更新、刪除 | 查詢為主:只讀操作、複雜查詢 |
什麼是資料集市
資料集市(Data Mart),也叫資料市場,就是滿足特定的部門或者使用者的需求,按照多維的方式進行儲存,包括定義維度、需要計算的指標、維度的層次等,生成面向決策分析需求的資料立方體。
從範圍上來說,資料集市的資料是從資料庫,或者是更加專業的資料倉庫中抽取出來的。資料集市分為從屬的資料集市與獨立的資料集市:
-
獨立型資料集市的資料來自於操作型資料庫,是為了滿足特殊使用者而建立的一種分析型環境。這種資料集市的開發週期一般較短,具有靈活性,但是因為脫離了資料倉庫,獨立建立的資料集市可能會導致資訊孤島的存在,不能以全域性的視角去分析資料。
-
從屬型資料集市的資料來自於企業的資料倉庫,這樣會導致開發週期的延長,但是從屬型資料集市在體系結構上比獨立型資料集市更穩定,可以提高資料分析的質量,保證資料的一致性。
指標 | 資料倉庫 | 資料集市 |
---|---|---|
資料來源 | OLTP系統、外部資料 | 資料倉庫 |
範圍 | 企業級 | 部門級或工作組級 |
主題 | 企業主題 | 部門或特殊的分析主題 |
資料粒度 | 最細的粒度 | 較粗的粒度 |
歷史資料 | 大量的歷史資料 | 適度的歷史資料 |
目的 | 處理海量資料,資料探索 | 便於某個維度資料訪問和分析,快速查詢 |
大資料平臺
什麼是大資料平臺
大資料平臺是一個集資料接入、資料處理、資料儲存、查詢檢索、分析挖掘等、應用介面等功能為一體的平臺。通俗的理解包括Hadoop生態的相關產品,比如Spark、Flink、Flume、Kafka、Hive、HBase等等等經典開源產品。
提到Hadoop生態技術,不得不提的是Apache和Cloudera。國內絕大部分公司的大資料平臺都是基於這兩個分支的產品進行商業化包裝和改進。例如:阿里雲EMR、騰訊TBDS、華為FusionInsight、新華三DataEngine、浪潮Insight HD、中興DAP等產品。
其實,對於大資料平臺,業內並無一個固定的能力範圍。當前比較權威的是全國信標委今年釋出了大資料平臺的國標 《GB/T 38673-2020 資訊科技 大資料 大資料系統基本要求》,將大資料系統劃分為資料收集、資料儲存、資料預處理、資料處理、資料分析、資料訪問、資源管理、系統管理8個部分,分別對各部分提出技術要求。所以會發現每個廠家推出的大資料平臺都包含很多功能、甚至組合的產品,屬於大資料的產品種類非常多。
什麼是大資料開發平臺
由於大資料技術很多,單獨使用的學習成本很高,為了提升資料開發的效率,也就出現了大資料開發平臺。簡單講,資料開發平臺就是集成了大資料平臺的一個開發套件,比如阿里雲的DataWorks就是一個代表,DataWorks(資料工場,原大資料開發套件)是阿里雲重要的PaaS(Platform-as-a-Service)平臺產品,提供資料整合、資料開發、資料地圖、資料質量和資料服務等全方位的產品服務,一站式開發管理的介面,幫助企業專注於資料價值的挖掘和探索。
資料中臺
什麼是資料中臺
阿里巴巴於2017年雲棲大會正式對外提出資料中臺概念,資料中臺的出現,就是為了彌補資料開發和應用開發之間,由於開發速度不匹配,出現的響應力跟不上的問題。中臺不是一個產品!與業務強相關。
資料中臺的一些定義:
序號 | 定義 | 定義出處 |
---|---|---|
1 | 中臺就是“企業級能力複用平臺”。 | 《白話中臺戰略-3:中臺的定義》 |
2 | 中臺通過集合整個集團的運營資料能力、產品技術能力,來對各前臺業務形成強力支撐。 | 《大型集團性企業的中臺戰略—阿里的中臺戰略其實是個偽命題》 |
3 | 中臺是一種需求分析的方法論,一套能力接入標準,一套運作機制,集中配置、分佈執行的控制檯。 | 《中臺如何助力標準化業務?中臺關鍵要快!》 |
4 | “中臺”是強調資源整合、能力沉澱的平臺體系,為“前臺”的業務開展提供底層的技術、資料等資源和能力的支援。 | 《大中臺 小前臺》 |
5 | 中臺是居於前臺和後臺之間、位於基礎架構和各產品線間的業務架構。 | 《關於架構的思考-評《阿里巴巴中臺戰略思想與架構實踐》》 |
6 | 資料中臺是將各個業務板塊多年來積累的資料,按業務特徵進行橫向關聯和統一,按資料用途進行縱向分層,最終沉澱為公共的資料服務能力。 | 《傳統企業資料中臺的建設與思考》 |
7 | 資料中臺的實質還是元件化,模組化,是設計模式與業務端的應用。 | 袋鼠雲資料中臺專欄(一):淺析資料中臺策略與建設實踐 |
8 | 中臺是一個用技術連結大資料技術能力,用業務連結資料應用場景的能力平臺。 | 《阿里中臺建設全解密:包含哪些內容?如何發揮作用?》 |
資料倉庫與資料中臺的區別與聯絡
序號 | 資料倉庫 | 資料中臺 |
---|---|---|
計算儲存 | 基於OLAP型別的資料庫構建一套資料儲存體系 | 混合架構,隨需搭配,滿足各類資料 的計算要求 |
技術體系 | 傳統的ETL開發和報表開發為主 | 數倉建設、資料開發IDE、任務排程、資料整合、資料治理、統一資料服務、資料資產管理、元資料管理、資料質量管理、流批計算、敏捷BI報表開發等多個功能 |
應用場景 | 報表為主 | 多元化場景:除了傳統報表,還支援商品推薦、精準推送、客滿評價等非確定場景的業務,資料服務業務、業務與資料互補,形成閉環 |
價值體現 | 面向管理層和業務人員的輔助決策 | 除了完成傳統的業務人員輔助決策,還能面向業務系統推動優化升級、資料變現等,把資料資產變成資料服務能力。 |
資料湖
什麼是資料湖
Pentaho的CTO James Dixon 在2011年提出了“Data Lake”的概念。在面對大資料挑戰時,他聲稱:不要想著資料的“倉庫”概念,想想資料 的“湖”概念。資料“倉庫”概念和資料湖概念的重大區別是:資料倉庫中資料在進入倉庫之前需要是事先歸類,以便於未來的分析。這在OLAP時代很常見,但是對於離線分析卻沒有任何意義,不如把大量的原始資料儲存下來,而現在廉價的儲存提供了這個可能。
-
資料倉庫是高度結構化的架構,資料在轉換之前是無法載入到資料倉庫的,使用者可以直接獲得分析資料。
-
資料湖中,資料直接載入到資料湖中,然後根據分析的需要再轉換資料
資料湖產品—是一套產品組合的解決方案
資料倉庫與資料湖有什麼區別與聯絡
特性 | 資料倉庫 | 資料湖 |
---|---|---|
資料 | 來自事務系統、運營資料庫和業務線應用程式的關係資料 | 來自 IoT 裝置、網站、移動應用程式、社交媒體和企業應用程式的非關係和關係資料 |
Schema | 寫入型 Schema, 資料儲存之前需要定義Schema, 資料整合之前需要完成大量清洗工作 ,資料的價值需要提前明確 | 讀取型 Schema, 資料儲存之後才需要定義Schema 提供敏捷、簡單的資料整合 ,資料的價值尚未明確 |
擴充套件性 | 中等開銷獲得較大的容量擴充套件 | 低成本開銷獲得極大容量擴充套件 |
價效比 | 更快查詢結果會帶來較高儲存成本 | 更快查詢結果只需較低儲存成本 |
連線方式 | 標準的SQL介面或者BI介面、ANSI SQL | 應用程式、類SQL程式、其它方法 |
資料質量 | 可作為重要事實依據的高度監管資料 | 任何可以或無法進行監管的資料(例如原始資料) |
複雜性 | 複雜的SQL連結 | 複雜的大資料處理 |
使用者 | 業務分析師 | 資料科學家、資料開發人員和業務分析師(使用監管資料) |
分析 | 批處理報告、BI 和視覺化 | 機器學習、預測分析、資料發現和分析 |
優勢 | 高併發、快速響應、乾淨安全的資料、資料一次轉換多次使用 | 無限擴充套件性、支援程式設計框架、資料儲存成本低 |
本次內容來自以微信公眾號:大資料技術與數倉,作者西貝,想詳細閱讀的朋友請觀看原文。本文供學習使用。