大話數(shù)倉(cāng),數(shù)據(jù)倉(cāng)庫(kù)
數(shù)據(jù)倉(cāng)庫(kù),是越來(lái)越流行的數(shù)據(jù)解決方案。傳統(tǒng)煙囪式的數(shù)據(jù)開(kāi)發(fā)模式,顯然不能滿足日益增長(zhǎng)的數(shù)據(jù)需求,而作為大數(shù)據(jù)量化方案、解決大數(shù)據(jù)問(wèn)題、發(fā)掘數(shù)據(jù)價(jià)值的大數(shù)據(jù)倉(cāng)庫(kù)被很多公司采納使用。想要建設(shè)好數(shù)據(jù)倉(cāng)庫(kù),就要了解數(shù)據(jù)倉(cāng)庫(kù)模型設(shè)計(jì)及其原理、怎樣處理數(shù)據(jù)倉(cāng)庫(kù)建設(shè)的需求分析?又如何處理基礎(chǔ)數(shù)據(jù)元和維度表、事實(shí)表?下面就來(lái)簡(jiǎn)單談?wù)剶?shù)據(jù)倉(cāng)庫(kù)。
一、什么是數(shù)據(jù)倉(cāng)庫(kù)?
數(shù)據(jù)倉(cāng)庫(kù)的概念
數(shù)據(jù)倉(cāng)庫(kù)是一個(gè)面向主題的、集成的、時(shí)變的、非易失的數(shù)據(jù)集合,用于支持管理決策、商業(yè)營(yíng)銷、運(yùn)營(yíng)分析。數(shù)據(jù)倉(cāng)庫(kù)實(shí)際上是一種數(shù)據(jù)存儲(chǔ),它將各種異構(gòu)數(shù)據(jù)源中的數(shù)據(jù)集成在一起,并保持其語(yǔ)義一致,為企業(yè)決策提供支持。
1.面向主題。在較高層次對(duì)數(shù)據(jù)綜合、歸類,針對(duì)某一分析領(lǐng)域所抽象出來(lái)的分析對(duì)象。
構(gòu)建主題的步驟:首先抽象出需要分析的主題域,確定每個(gè)主題域需要分析的維度、其所包含哪些數(shù)據(jù)表。一般主題域所有表都有一個(gè)連接鍵,作為主題的一部分,通過(guò)這個(gè)連接鍵可把主題域所有表關(guān)聯(lián)匯總成一張寬表。如會(huì)員主題,分為會(huì)員基本信息、會(huì)員積分?jǐn)?shù)據(jù)、會(huì)員的資產(chǎn)數(shù)據(jù)、會(huì)員的行為數(shù)據(jù)、會(huì)員的信用等多張表。
2.集成的。數(shù)據(jù)來(lái)源的格式類型不同;編碼、命名格式、屬性單位不一致,然后對(duì)原有數(shù)據(jù)進(jìn)行綜合、計(jì)算。
把不同表、不同類型的數(shù)據(jù)放入到統(tǒng)一的數(shù)據(jù)倉(cāng)庫(kù)中。如Mysql、Oracle、Redis、Hbase中的數(shù)據(jù),我們通過(guò)同步全量數(shù)據(jù)把數(shù)據(jù)存入統(tǒng)一的系統(tǒng)中。對(duì)于增量數(shù)據(jù)設(shè)置定時(shí)抽取,可以采用并發(fā)架構(gòu),多任務(wù)同時(shí)同步,把數(shù)據(jù)持續(xù)存到我們的分布式文件系統(tǒng)中來(lái)。
3.時(shí)變的。數(shù)據(jù)倉(cāng)庫(kù)的數(shù)據(jù)是不同時(shí)間的數(shù)據(jù)集合;隨時(shí)間變化不斷增加、刪除、綜合數(shù)據(jù);數(shù)據(jù)倉(cāng)庫(kù)表結(jié)構(gòu)中一般都帶有時(shí)間字段。
數(shù)據(jù)倉(cāng)庫(kù)的數(shù)據(jù)不是一成不變的,它是隨著時(shí)間變化不斷新增內(nèi)容,更新與時(shí)間有關(guān)的綜合數(shù)據(jù),這些數(shù)據(jù)一般都包含有時(shí)間字段。
4.穩(wěn)定非易失的。.數(shù)據(jù)倉(cāng)庫(kù)中的數(shù)據(jù)一般只插入新增,不做update更新、delete刪除操作。
數(shù)據(jù)是經(jīng)過(guò)抽取而形成的分析型數(shù)據(jù),不具有原始性(不是第一手?jǐn)?shù)據(jù),一般是經(jīng)過(guò)其他數(shù)據(jù)源或業(yè)務(wù)系統(tǒng),抽取到數(shù)據(jù)倉(cāng)庫(kù)中),主要供企業(yè)決策分析之用,執(zhí)行的主要是查詢操作,一般情況下不執(zhí)行更新操作。抽到數(shù)據(jù)倉(cāng)庫(kù)的數(shù)據(jù)在ODS層不做任何操作,來(lái)保持?jǐn)?shù)據(jù)的原始性(不改變字段屬性,不補(bǔ)值等操作)。
二、數(shù)據(jù)倉(cāng)庫(kù)建模理論
數(shù)據(jù)一般用于兩種目的,一種是基于操作型記錄保存,一種是分析決策的制定。簡(jiǎn)單來(lái)說(shuō),前者是操作系統(tǒng)保存數(shù)據(jù)(OLTP-聯(lián)機(jī)事務(wù)處理),一般僅反映數(shù)據(jù)的最新?tīng)顟B(tài),按單條記錄事務(wù)性來(lái)處理數(shù)據(jù);其優(yōu)化的核心是更快地處理事務(wù);后者是分析系統(tǒng)使用數(shù)據(jù)(OLAP-聯(lián)機(jī)事務(wù)分析),按大批量方式處理數(shù)據(jù);其核心是高性能、多維度處理數(shù)據(jù)。針對(duì)兩種不同的數(shù)據(jù)用途,如何組織數(shù)據(jù),高效的使用數(shù)據(jù),這里就涉及到數(shù)據(jù)建模的問(wèn)題。
2.1、什么是Inmon范式模型?
數(shù)據(jù)倉(cāng)庫(kù)是商業(yè)智能的一部分,一家企業(yè)或公司只有一個(gè)數(shù)據(jù)倉(cāng)庫(kù),數(shù)據(jù)集市的信息皆來(lái)源數(shù)據(jù)倉(cāng)庫(kù)?,F(xiàn)在的數(shù)據(jù)庫(kù)大多數(shù)都是依據(jù)3FN范式來(lái)建立的,而依據(jù)范式的思想來(lái)進(jìn)行數(shù)據(jù)倉(cāng)庫(kù)建模,就是范式建模。數(shù)據(jù)倉(cāng)庫(kù)中的數(shù)據(jù)信息必須符合第三范式。
范式是關(guān)系型數(shù)據(jù)庫(kù)的基本概念。是指符合某些條件、符合某些規(guī)則的關(guān)系集合。范式是分級(jí)的,每向上一級(jí),條件和規(guī)則更加嚴(yán)格,每一級(jí)是下一級(jí)的子集。
范式最主要的目的是消除冗余,每一份信息必須存放一次,也只能存儲(chǔ)一次。數(shù)據(jù)的冗余不僅僅會(huì)造成存儲(chǔ)資源的浪費(fèi),而且可能會(huì)引發(fā)數(shù)據(jù)的更新異常。
2.2、什么是Kimball維度建模?
數(shù)據(jù)倉(cāng)庫(kù)是公司內(nèi)部所有數(shù)據(jù)集市的集合,信息總是被存儲(chǔ)在多維模型中。是面向數(shù)據(jù)集市、數(shù)據(jù)主題的,一般采用星型模型建模。依據(jù)星型模型,構(gòu)建事實(shí)表和維度表,建立數(shù)據(jù)倉(cāng)庫(kù)模型的過(guò)程,就是維度建模。Kimball的核心思想就是星型模型和維度建模。
2.2.1、什么是星型模型?
所有的表直接與事實(shí)表關(guān)聯(lián),整個(gè)圖解就像星星一樣,該模型稱為星型模型。星型模型是一種非正規(guī)化的結(jié)構(gòu),是反范式的。因?yàn)槎嗑S數(shù)據(jù)集的每一個(gè)維度都直接與事實(shí)表相連接,不存在漸變維度,所以數(shù)據(jù)有一定的冗余,
2.3、事實(shí)表和維度表
事實(shí)表描述業(yè)務(wù)過(guò)程的度量、以可加數(shù)據(jù)為主題,每一行代表一個(gè)可以觀察的實(shí)體或事件。主要的是發(fā)生了業(yè)務(wù)過(guò)程,如賣出一件商品,用戶購(gòu)買(mǎi)一件商品,這都觸發(fā)了業(yè)務(wù)過(guò)程。賣出的商品有商品屬性、有賣出的門(mén)店、有出貨記錄,有購(gòu)物者信息等等。
維度表描述事實(shí)所處的環(huán)境、面向分析,代表針對(duì)事實(shí)的一種分類。直白點(diǎn),維度表就是用來(lái)描述事實(shí)的。還以賣出商品為例,賣出的商品,商品有屬性,包括顏色、尺碼、風(fēng)格、季節(jié)等多種屬性,這些屬性組合在一起就構(gòu)成了描述商品的維度表。
對(duì)維度表再建立更細(xì)的維度,稱為支架表。支架表是維度表的維度表,支架表是去冗余的產(chǎn)物,在星型模型中,對(duì)冗余很寬容。所以支架并不是必須的,并且應(yīng)該盡量少用。合適的方法是:將支架表合并到和事實(shí)表直接連接的維度表。
注意:維度表中需要注意維度退化和緩慢變化維
退化維度:在維度類型中,有一種重要的維度稱作為退化維度,亦稱維度退化。這種維度指的是直接把一些簡(jiǎn)單的維度放在事實(shí)表中。維度退化是維度建模領(lǐng)域中的一個(gè)非常重要的概念,它對(duì)理解維度建模有著非常重要的作用,維度退化一般在分析中可以用來(lái)做分組使用。
緩慢變化維:維度的屬性并不是始終不變的,它會(huì)隨著時(shí)間的流逝發(fā)生緩慢的變化,這種隨時(shí)間發(fā)生變化的維度我們一般稱之為緩慢變化維。
常用處理緩慢變化維的方式:用戶變更手機(jī)號(hào)碼
EX1,直接覆蓋原值。
EX2,增加維度行。
在增加新行時(shí),需為其分配新的代理鍵。并且,至少需要在維度行再增加三列:有效日期、結(jié)束日期、行狀態(tài),可以使用拉鏈表處理。
EX3,增加新的屬性列。
2.2、什么是雪花模型?
當(dāng)有維表沒(méi)有直接連接到事實(shí)表上,而是通過(guò)連接其他維表間接連接到事實(shí)表,其圖解就像多個(gè)雪花連接在一起,故稱雪花模型。雪花模型是對(duì)星型模型的擴(kuò)展。它對(duì)星型模型的維表進(jìn)一步層次化,把原有的維表進(jìn)一步拓展,形成更多細(xì)分層次。
處理雪花模型的方式,和支架表一樣,理想的模型是只存在和事實(shí)表直接相連接的維度表。在數(shù)據(jù)倉(cāng)庫(kù)中,數(shù)據(jù)冗余不重要,連接性能更重要!我們通過(guò)犧牲空間來(lái)?yè)Q取時(shí)間,這些數(shù)倉(cāng)很常用的手段。
雪花模型是一種規(guī)范的數(shù)據(jù)建模模型,規(guī)范化的目的是去冗余,在節(jié)省存儲(chǔ)的同時(shí)減少重復(fù)更新。但是對(duì)于數(shù)據(jù)倉(cāng)庫(kù)來(lái)說(shuō),這兩者都不重要,數(shù)據(jù)倉(cāng)庫(kù)本來(lái)就不更新。Kimball模式的數(shù)據(jù)倉(cāng)庫(kù)的查詢性能優(yōu)先!星型模型,是反范式的
總結(jié):數(shù)據(jù)倉(cāng)庫(kù)建模過(guò)程是一個(gè)很復(fù)雜的過(guò)程,一方面不僅要根據(jù)自家業(yè)務(wù)處理建模需要,一方面還要深入了解建模的理論基礎(chǔ)。
- 上一篇
大數(shù)據(jù)在推動(dòng)心理健康研究中的作用
大數(shù)據(jù)在心理健康研究中的作用是變革性的。它使研究人員能夠利用統(tǒng)計(jì)方法,考慮到遺傳和環(huán)境因素,并解決建立因果關(guān)系的挑戰(zhàn),來(lái)解決心理健康的復(fù)雜性。
- 下一篇
超越云和邊緣計(jì)算:下一步是什么?
計(jì)算能力的增強(qiáng)引發(fā)了網(wǎng)絡(luò)安全問(wèn)題。 為了獲得最佳結(jié)果,企業(yè)必須平衡現(xiàn)有技術(shù)和新興技術(shù)之間的投資,并在投資回報(bào) (ROI) 最高的領(lǐng)域進(jìn)行關(guān)鍵投資。
相關(guān)資訊
- 智能家居系統(tǒng)的要點(diǎn)有哪些?
- 安檢行業(yè)未來(lái)能否被人工智能取代
- 大數(shù)據(jù)分析在智慧城市發(fā)展中的作
- 如何創(chuàng)造獨(dú)特的AI應(yīng)用生態(tài)?
- 商業(yè)數(shù)據(jù)科學(xué):利用洞察力促進(jìn)增長(zhǎng)
- 人工智能對(duì)未來(lái)工作的影響
- 家具店數(shù)據(jù)分析的驚人好處
- 推動(dòng)元宇宙未來(lái)的五大技術(shù)
- 網(wǎng)絡(luò)效應(yīng)如何讓人工智能變得更聰
- 機(jī)器人自動(dòng)適應(yīng)不同工作環(huán)境的實(shí)