日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

初识数据仓库

發布時間:2023/12/10 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 初识数据仓库 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

首先的疑問是什么是數據倉庫?

作為理工科出身多多少少都會了解數據庫的概念,我也一樣,了解的層面可能只是知道數據庫是存儲我們很多系統里用的數據的地方,可能也只是在這個層面了,對于數據倉庫的也只是停留在聽說的層面。

為了了解什么是數據倉庫,我可以簡單的舉個小例子。

假設有一天,你收到你boss的任務,要求你在半天的時間內分析一個公司幾個項目的業績分析報表要求,你覺得很簡單,因為操作已經在你腦子里哦,不就是直接在數據庫里查詢這幾個項目業績數據,再做一個可視化的報表即可么,但是當你真正開始做的時候,你發現你老板要求看到的數據不完全在一個數據庫里,這幾個項目有的數據存儲在MySQL數據庫里,有的存儲在的存儲在mongodb里,還有的在一些外部數據,這個時候你慌了,半天時間可能不能夠完成老板的任務了,雖然最后你也能完成任務,但是花費的時間和精力是很大的。這個時候你可能就會想,要是能有個工具把這些存在不同地方的數據匯總到一個地方該多好啊,那么就不用費那么大事情進行查詢處理了。

對沒錯,這個工具就可以理解是數據倉庫了。

也就是說數倉是存數據的,可以簡單的理解為:面向分析的存儲系統。企業的各種數據往里面塞,主要目的是為了有效分析數據,后續會基于它產出供分析挖掘的數據,或者數據應用需要的數據,如企業的分析性報告和各類報表,為企業的決策提供支持。

到這里或許會有人說:我們經常使用的關系型數據庫不也可以滿足部分內容么?后面給出答案。

關系型數據庫,它可以被劃分為兩大基本類型:操作型數據庫和分析型數據庫。

1. 操作型數據庫

主要面向應用,用于業務支撐,支持對實際業務的處理,也可以叫業務型數據庫,是基本的、日常的事務處理,例如銀行交易。

可以理解為通常意義上的數據庫(后端開發同學口中的經常提到的就是這種)。比如我們常用的MYSQL,Mongodb,SQLSERVER等

2. 分析型數據庫

主要面向數據分析,側重決策支持,作為公司的單獨數據存儲,負責利用歷史數據對公司各主題域進行統計分析。

由于分析型數據庫中的操作都是查詢,因此也就不需要嚴格滿足關系型數據庫一些設計規范,這樣的情況下再將它歸為數據庫不太合適,也容易不引起混淆,所以稱之為數據倉庫。

數據處理大致可以分成兩大類:OLTP(聯機事務處理)和OLAP(聯機分析處理)。

OLTP(聯機事務處理)就是操作型數據庫的主要應用,更側重于基本的、日常的事務處理,包括數據的增刪改查。

OLAP(聯機分析處理)就是分析型數據庫的主要應用,以多維度的方式分析數據, 這個后續會整理。

二、數據倉庫有什么特點

相對于數據庫,數據倉庫有以下特點

(1)面向主題

數據倉庫通過一個個主題域將多個業務系統的數據加載到一起,為了各個主題(如:用戶、訂單、商品等)進行分析而建,操作型數據庫是為了支撐各種業務而建立。

(2)集成性

數據倉庫會將不同源數據庫中的數據匯總到一起。

(3)歷史性

較之操作型數據庫,數據倉庫的數據是為企業數據分析而建立,所以數據被加載后一般情況下將被長期保留,前者通常保存幾個月,后者可能幾年甚至幾十年。

(4)時變性

是指數據倉庫包含來自其時間范圍不同時間段的數據快照,有了這些數據快照以后,用戶便可將其匯總,生成各歷史階段的數據分析報告。

(5)穩定性

數據倉庫中的數據一般僅執行查詢操作,很少會有刪除和更新。但是需定期加載和刷新數據。

三、為什么搭建數據倉庫

簡單來說,就是為了有效分析數據 。

你說直接從業務數據庫中取數據來做分析?

也不是不可以,就是業務系統多,業務復雜時,會發現結構復雜,數據臟亂,難以理解,缺少歷史,大規模查詢緩慢這些問題。

業務到一定規模,大家需要面臨的問題越來越復雜和深入,數據需求不再只是昨日的營收,上月的uv這些,而是“28到45歲女性在社區的活躍度與公司策劃的專題內容活動的關系”這類精細化的分析,而從數據庫是很難取出這類數據的。

畢竟業務型數據庫是為了支撐業務設計的,不是為了查詢和分析數據

四、數據倉庫結構

用AXURE畫了個結構圖,如下:簡單來說,就是把各數據源的數據ETL到數倉中,數倉再對數據進行集成和統計,然后再輸出給各數據應用,圖中涉及的模塊,接下來會分別介紹。

?

五、ETL

ETL分別代表:抽取extraction、轉換transformation、加載load。

(1)抽取(Extract)

從數據來源提取指定數據,數據是需要指定的,不是所有的數據都要抽取過來, 某些源數據對于分析而言沒有價值,或者其可能產生的價值,遠低于儲存這些數據所需要的數據倉庫的實現和性能上的成本,就不會抽取了。

(2)轉換(Transform)

將數據轉換為指定格式并進行數據清洗保證數據質量。

數據轉換,如包括編碼轉換(m/f->男/女),字段轉換(balance->bal),度量單位的轉換(cm->m),數據粒度的轉換。業務系統數據存儲非常明細的數據,而數據倉庫中數據是用分析的,不需要非常明細,會將業務系統數據按照數據倉庫粒度進行聚合。

數據清洗,如會對不完整數據,錯誤數據和重復數據等臟數據進行清洗。

(3)加載(Load)

將轉換過后的數據加載到目標數據倉庫,加載可分為兩種:

全量加載:一次對全部數據進行加載。增量加載:一般首次需要全量加載,但是在第二次周期或者第三次周期的時候仍然全量加載的話,耗費了極大的物理和時間資源。有可能部分數據源并未發生變化,而有的數據源可能只是增加了少量的數據。 對數據源中的數據只考慮新修改的記錄和新插入的記錄就是增量加載。

ETL很可能是數據倉庫開發中最耗時最耗資源的一個環節,因為該環節要整理各大業務系統中雜亂無章的數據,并協調元數據上的差別,工作量很大,但也是構建數據倉庫的重要環節,對數據倉庫的后續環節影響比較大。

?

六、ODS

ODS:全稱是Operational Data Store,操作數據存儲。

人們對數據的處理行為可以劃分為操作型數據處理和分析型數據處理,操作型數據處理一般放在傳統的數據庫(Database,DB)中進行,分析型數據處理則需要在數據倉庫(Data Warehouse,DW)中進行。但是并不是所有的數據處理都可以這樣劃分,換句話說,人們對數據的處理需求并不只有這兩類,比如,有些操作型處理并不適合放在傳統的數據庫上完成,也有些分析型處理不適合在數據倉庫中進行。這時候就需要第三種數據存儲體系,操作數據存儲(Operational Data Store,ODS)系統就因此產生。它的出現,也將DB~DW兩層數據架構轉變成DB~ODS~DW三層數據架構。

ODS是這樣一種數據存儲系統,它將來自不同數據源的數據(各種操作型數據庫、外部數據源等)通過ETL過程匯聚整合成面向主題的、集成的、企業全局的、一致的數據集合(主要是最新的或者最近的細節數據以及可能需要的匯總數據),用于滿足企業準實時的OLAP操作和企業全局的OLTP操作,并為數據倉庫提供集成后的數據,將數據倉庫系統中的ETL過程下沉到ODS中完成以減輕數據倉庫的壓力。

6.1 ODS中的數據具有以下4個基本特征:
①?面向主題的:進入ODS的數據是來源于各個操作型數據庫以及其他外部數據源,數據進入ODS前必須經過?ETL過程(抽取、清洗、轉換、加載等)。
②?集成的:ODS的數據來源于各個操作型數據庫,同時也會在數據清理加工后進行一定程度的綜合。
③?可更新的:可以聯機修改。這一點區別于數據倉庫。
④?當前或接近當前的:“當前”是指數據在存取時刻是最新的,“接近當前”是指存取的數據是最近一段時間得到的。

6.2 ODS功能:

(1)實現企業級的OLTP操作:
傳統的操作型數據庫往往只存放企業某一類業務或者某一個部門的數據,因此無法面向企業全局數據的OLTP,而ODS可以實現。因為ODS的數據是面向整個企業進行集成匯總的,克服了原來面向應用的操作型數據庫數據分散的缺陷。
(2)實現即時的OLAP操作:
在數據倉庫上進行OALP,往往由于數據量十分龐大而需要較長的時間。而在企業實際應用中,對于一些較低層次的決策,往往并不需要太多的歷史數據,可能只需要參考當前的或者接近當前的數據就可以完成,并且要求具有較快的響應時間,因此數據倉庫顯然無法滿足這樣的要求,但是ODS可以實現。ODS中不僅有面向企業全局的細節數據和匯總數據,而且規模比數據倉庫小,具有較強的實時響應能力。

6.3 ODS和DW的區別:

ODS在DB~ODS~DW三層體系結構中起到一個承上啟下的作用。
ODS中的數據雖然具有DW中的數據的面向主題的、集成的特點,但是也有很多區別。
(1)存放的數據內容不同:
ODS中主要存放當前或接近當前的數據、細節數據,可以進行聯機更新。
DW中主要存放細節數據和歷史數據,以及各種程度的綜合數據,不能進行聯機更新。
ODS中也可以存放綜合數據,但只在需要的時候生成。
(2)數據規模不同:
由于存放的數據內容不同,因此DW的數據規模遠遠超過ODS。
(3)技術支持不同:
ODS需要支持面向記錄的聯機更新,并隨時保證其數據與數據源中的數據一致。
DW則需要支持ETL技術和數據快速存取技術等。
(4)面向的需求不同:
ODS主要面向兩個需求:一是用于滿足企業進行全局應用的需要,即企業級的OLTP和即時的OLAP;二是向數據倉庫提供一致的數據環境用于數據抽取。
DW主要用于高層戰略決策,供挖掘分析使用。
(5)使用者不同:
ODS主要使用者是企業中層管理人員,他們使用ODS進行企業日常管理和控制。
DW主要使用者是企業高層和數據分析人員。

?

七、數據集市

7.1?數據集市由來

不同單位的異構數據都可以存儲在數據倉庫中。要綜合考慮企業的功能、性能和數據需求,合理搭建數據倉庫。數據倉庫是一項復雜、繁瑣、成本高、周期長的工程。因此,數據倉庫并不適用于中小型企業。數據集市有效解決了數據倉庫的問題和弊端,是一種小型的數據倉庫,能夠支持決策分析和部門級應用,集成了大部分服務和業務。企業級的數據倉庫能夠對數據進行存儲、采集和分析,滿足用戶的不同需求。然而,不同部門職責范圍不同,需要采集和分析不同的數據。如果全部數據操作和處理都從數據倉庫進行,會加重系統的負擔,降低工作效率,造成資源浪費。數據集市就是在這個背景下發展起來的,一方面符合部門級數據分析的需要,另一方面減輕了中央數據倉庫的負擔,提高了工作效率。數據集市是在數據倉庫的基礎上發展起來的,通常由各部門安排數據集市中存儲的數據,也通常采用不同的 OLAP 設計數據集市。相關數據表明,數據集市的投資占數據倉庫投資的 50%。

數據集市(DM)可以理解為是一種“小型數據倉庫”,一般面向部門、單個主題或特定應用,且之間互不影響。

可以分為以下兩種:

獨立數據集市:有自己的源數據庫和ETL架構;

非獨立數據集市:沒有自己的源數據,它的數據來自數據倉庫。當用戶或者應用程序不需要/不必要/不允許訪問整個數倉數據時,就可以直接訪問數據集市,為用戶提供一個數據倉庫的“子集”。

?

簡單理解就是一個結構完全和數倉一樣,有ETL,然后自己存儲和計算;另一種就是直接用數倉處理過的數據,再次進行組合集成。可能后面結合數據分層更好理解。

八、元數據

元數據(Meta Date),即用來描述數據的數據。你細品,細品,再細品。。對就是那個意思。

技術元數據為開發和管理數據倉庫的IT 人員使用,描述了與數據倉庫開發、管理和維護相關的數據,包括數據源信息、數據轉換描述、數據倉庫模型、數據清洗與更新規則、數據映射和訪問權限等。

而業務元數據為管理層和業務分析人員服務,從業務角度描述數據,包括商務術語、數據倉庫中有什么數據、數據的位置和數據的可用性等,幫助業務人員更好地理解數據倉庫中哪些數據是可用的以及如何使用。

元數據作用:

在數據倉庫中,元數據的主要作用如下。
(1)描述哪些數據在數據倉庫中,幫助決策分析者對數據倉庫的內容定位。
(2)定義數據進入數據倉庫的方式,作為數據匯總、映射和清洗的指南。
(3)記錄業務事件發生而隨之進行的數據抽取工作時間安排。
(4)記錄并檢測系統數據一致性的要求和執行情況。
(5)評估數據質量。
?

總結

以上是生活随笔為你收集整理的初识数据仓库的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。