數據庫(DB)是按照數據結構來組織、存儲和管理數據的創建在計算機存儲設備上的倉庫數據庫
數據庫是長期存儲在計算機內、有組織的、可共享的數據集合。數據庫中的數據指的是以必定的數據模型組織、描述和儲存在一塊兒、具備儘量小的冗餘度、較高的數據獨立性和易擴展性的特色並可在必定範圍內爲多個用戶共享數據結構
數據倉庫是面向主題的,集成的,相對穩定的,反映歷史變化的數據集合,用於支持管理決策。架構
面向主題:在較高層次上將企業信息系統的數據綜合歸併進行分析利用的抽象的概念。每一個主題基本上對應一個相應的分析領域。併發
集成的:企業級數據,同時數據要保持一致性、完整性、有效性、精確性。框架
穩定性:從某個時間段來看是保持不變的,沒有更新操做、刪除操做,以查詢分析爲主。機器學習
變化的:反映歷史變化。高併發
功能 | 數據倉庫 | 數據庫 |
---|---|---|
數據範圍 | 存儲歷史的、完整的、反應歷史變化的 | 當前狀態數據 |
數據變化 | 可添加、誤刪除、無變動的、反映歷史變化 | 支持頻繁的增、刪、改、查操做 |
應用場景 | 面向分析、支持戰略決策 | 面向業務交易流程 |
設計理論 | 違範式、適當冗餘 | 遵守範式(1NF、2NF、3NF等範式)、避免冗餘 |
處理量 | 非頻繁、大批量、高吞吐、有延遲 | 頻繁、小批次、高併發、低延遲 |
面向業務的數據庫常稱做OLTP,面向分析的數據倉庫稱爲OLAP。工具
數據倉庫概念最先可追溯到20世紀70年代,但願經過一種架構將業務處理系統和分析處理分爲不一樣的層次。oop
20世紀80年代,簡歷TA2(Technical Architecture2)規範,該明肯定義了分析系統的四個組成部分:數據獲取、數據訪問、目錄、用戶服務。學習
1988年,IBM第一次提出信息倉庫的概念:一個結構化的環境,能支持最終用戶管理其所有的業務,並支持信息技術部門保證數據質量;抽象出基本組件:數據抽取、轉換、有效性驗證、加載、cube開發等,基本明確了數據倉庫的基本原理、框架結構,以及分析系統的主要原則。
[敲黑板,說重點]:
轉換:Sqoop進行簡單的數據轉換,更多的轉化操做是經過ETL來實現的
有效性驗證:牽扯到數據質量的問題
那麼如何去建設數據倉庫呢?
2)Ralph Kimball則主張自下而上(bottom-up)的方式創建DW,極力推崇創建數據集市,認爲DW是企業內全部DM的集合,信息老是被存儲在多維模型中。
3)Bill Inmon提出了新的BI架構CIP(Corporation information factory),把DM包含了進來。CIP的核心是將DW架構劃分爲不一樣的層次以知足不一樣場景的需求,好比常見的ODS、DW(e g: DWD, DWS等)、DM等,每層根據實際場景採用不一樣的建設方案,該思路也是目前DW建設的架構指南,但究竟是以top-down仍是bottom-up方式進行DW建設,並未統一。
[敲黑板,說重點]:
不少人說Hadoop時代維度建模已經不是必須的了,其實否則,在整個Hadoop時代建模依然是有用的,並且是很是有意義的。Hadoop爲整個大數據應用提供了技術的基礎,包括Hive、Spark,只是技術架構。而咱們談及大數據的時候,更多的關注的是大數據的價值,因此在組織梳理數據內容的時候依然會有數據建模的概念。
只不過不少公司作大數據多是剛起步階段,更在乎與流量方面,因此不須要建模,可是等數據體量達到必定程度後,若是沒有數據建模,那麼數據質量也就沒法保障,數據也就會廢掉、爛掉。
數據倉庫分層架構圖:
核心簡述:
爲何要對數據倉庫進行分層?
說了這麼多,那麼數據倉庫的創建步驟呢?
鑑於互聯網行業的「要麼變化,要麼去死」的影響,決定了在互聯網領域,基於大數據的數據倉庫建設是沒法按照原有的項目流程、開發模式進行,更多的是須要結合新的技術體系、業務場景進行靈活的調整,以快速響應需求爲導向。
傳統的數倉 | 基於大數據的數倉 |
---|---|
建設週期長 | 要求快速響應需求 |
需求穩定 | 需求靈活、多變 |
時效性要求不高 | 對實時性有不一樣程度的要求 |
面向DSS、CRM、BI等系統 | 除了面向DSS、BI等傳統應用外,還要響應用戶畫像、個性化推薦(好比你看了一遍文章,再給你推薦十片同類型文章)、及其學習、數據分析等各類複雜的應用場景 |
阿里系:OneData(公司級別全部數據應用都基於我這一個數據,只有一個數據出口,不論實時仍是離線都是統一的惟一出口),OneService(數據服務也是統一的)
不少時候,咱們提供到數倉,就會以爲是離線
的、至少也是T+1
的,可是這是傳統的數據倉庫,而基於大數據的數據倉庫不該該這麼理解,實時也應該概括到數據倉庫中。
技術棧總圖:
綜上,在互聯網領域,數倉模型是必需要存在(不必定是維度建模,可是至少須要一個建模),且數倉模型的設計更關注靈活、快速響應和應對多變的市場環境,更加以快速解決業務、運營問題爲導向,快速數據接入、快速業務接入,更不存在一勞永逸。
數倉存在的意義
基於大數據的數據倉庫在互聯網行業應用:
1)數據分析、數據挖掘、人工智能、機器學習、風險控制、無人駕駛
2)數據化運營、精準運營
3)廣告精準、智能投放