數(shù)據(jù)倉(cāng)庫(kù)建模方法論

建模方法論

數(shù)倉(cāng)的建模或者分層,其實(shí)都是為了更好的去組織、管理、維護(hù)數(shù)據(jù),所以當(dāng)你站在更高的維度去看的話,所有的劃分都是為了更好的管理。小到JVM 內(nèi)存區(qū)域的劃分,JVM 中堆空間的劃分(年輕代、老年代、方法區(qū)等),大到國(guó)家的省市區(qū)的劃分,無(wú)一例外的都是為了更好的組織管理

  1. 訪問(wèn)性能:能夠快速查詢(xún)所需的數(shù)據(jù),減少數(shù)據(jù)I/O。
  2. 數(shù)據(jù)成本:減少不必要的數(shù)據(jù)冗余,實(shí)現(xiàn)計(jì)算結(jié)果數(shù)據(jù)復(fù)用,降低大數(shù)據(jù)系統(tǒng)中的存儲(chǔ)成本和計(jì)算成本。
  3. 使用效率:改善用戶(hù)應(yīng)用體驗(yàn),提高使用數(shù)據(jù)的效率。
  4. 數(shù)據(jù)質(zhì)量:改善數(shù)據(jù)統(tǒng)計(jì)口徑的不一致性,減少數(shù)據(jù)計(jì)算錯(cuò)誤的可能性,提供高質(zhì)量的、一致的數(shù)據(jù)訪問(wèn)平臺(tái)。

    需要注意的建模其實(shí)是和公司的業(yè)務(wù)、公司的數(shù)據(jù)量、公司使用的工具、公司數(shù)據(jù)的使用方式密不可分的,因?yàn)槟P褪歉拍钌系臇|西,需要理論落地至于落地到什么程度,就取決于公司的現(xiàn)狀了

范式建模(關(guān)系型數(shù)據(jù)庫(kù))

范式建模法其實(shí)是我們?cè)跇?gòu)建數(shù)據(jù)模型常用的一個(gè)方法,該方法的主要由Inmon所提倡,主要解決關(guān)系型數(shù)據(jù)庫(kù)得數(shù)據(jù)存儲(chǔ),利用的一種技術(shù)層面上的方法,主要用于業(yè)務(wù)系統(tǒng),所以范式建模主要是利用關(guān)系型數(shù)據(jù)庫(kù)進(jìn)行數(shù)倉(cāng)建設(shè)

目前,我們?cè)陉P(guān)系型數(shù)據(jù)庫(kù)中的建模方法,大部分采用的是三范式建模法。

符合3NF要求的數(shù)據(jù)庫(kù)設(shè)計(jì),基本上解決了數(shù)據(jù)冗余過(guò)大,插入異常,修改異常,刪除異常的問(wèn)題。

三范式

第一范式

屬性值不可再分,說(shuō)直白點(diǎn)就是一列里面不能包含多個(gè)小列,就像下面這樣

1NF是所有關(guān)系型數(shù)據(jù)庫(kù)的最基本要求,你在關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng)(RDBMS),例如SQL Server,Oracle,MySQL中創(chuàng)建數(shù)據(jù)表的時(shí)候,如果數(shù)據(jù)表的設(shè)計(jì)不符合這個(gè)最基本的要求,那么操作一定是不能成功的。也就是說(shuō),只要在RDBMS中已經(jīng)存在的數(shù)據(jù)表,一定是符合1NF的

第二范式

這里我們先說(shuō)一下,為什么有了第一范式,還需要第二范式,那是應(yīng)為第一范式,不能消除重復(fù),存在數(shù)據(jù)冗余過(guò)大,導(dǎo)致插入異常,刪除異常,修改異常的問(wèn)題

所以要求每張表都要有一個(gè)主鍵,其它字段(列)完全依賴(lài)主鍵,也就是說(shuō)要求實(shí)體的屬性完全依賴(lài)于主關(guān)鍵字。也就是說(shuō)表只描述一個(gè)事實(shí),因?yàn)檫@賬號(hào)表描述了3個(gè)事實(shí),學(xué)生、課程、和系

例如,如果花名冊(cè)里只有名字,沒(méi)有學(xué)號(hào),則重名的話會(huì)很麻煩。
所謂完全依賴(lài)是指不能存在僅依賴(lài)主關(guān)鍵字一部分的屬性,如果存在,那么這個(gè)屬性和主關(guān)鍵字的這一部分應(yīng)該分離出來(lái)形成一個(gè)新的實(shí)體,新實(shí)體與原實(shí)體之間是一對(duì)多的關(guān)系,例如上面的系主任系名 就是不依賴(lài)學(xué)號(hào)的,所以這里應(yīng)該單獨(dú)拆出來(lái)

第三范式

所有字段只能直接依賴(lài)主鍵,不得依賴(lài)于其它字段(非主屬性) 消除依賴(lài)傳遞。所謂傳遞函數(shù)依賴(lài)指的是如果存在"A-->B-->C"的決定關(guān)系,則C傳遞函數(shù)依賴(lài)于A。也就是說(shuō)表中的字段和主鍵直接對(duì)應(yīng)不依靠其他中間字段,說(shuō)白了就是,決定某字段值的必須是主鍵,而不是一個(gè)依賴(lài)于主鍵的其他字段

范式建模的優(yōu)缺點(diǎn)

優(yōu)點(diǎn)

節(jié)約存儲(chǔ)(尤其是利用數(shù)據(jù)庫(kù)進(jìn)行數(shù)倉(cāng)建設(shè)的時(shí)候)

規(guī)范化帶來(lái)的好處是通過(guò)減少數(shù)據(jù)冗余**提高更新數(shù)據(jù)的效率,同時(shí)保證數(shù)據(jù)完整性**。

結(jié)構(gòu)清晰,易于理解

缺點(diǎn)

構(gòu)建比較復(fù)雜

查詢(xún)復(fù)雜(需要很多的關(guān)聯(lián))

不適合在大數(shù)據(jù)環(huán)境下構(gòu)建(1 查詢(xún)復(fù)雜 2 存儲(chǔ)很便宜)

由于建模方法限定在關(guān)系型數(shù)據(jù)庫(kù)之上,在某些時(shí)候反而限制了整個(gè)數(shù)據(jù)倉(cāng)庫(kù)模型的靈活性,性能等,特別是考慮到數(shù)據(jù)倉(cāng)庫(kù)的底層數(shù)據(jù)向數(shù)據(jù)集市的數(shù)據(jù)進(jìn)行匯總時(shí),需要進(jìn)行一定的變通才能滿(mǎn)足相應(yīng)的需求。

為什么要學(xué)習(xí)范式建模

上游數(shù)據(jù)源往往是業(yè)務(wù)數(shù)據(jù)庫(kù),而這些業(yè)務(wù)數(shù)據(jù)庫(kù)采用的實(shí)范式建模,所以了解范式建??梢詭椭覀?nèi)ズ侠淼慕ㄔO(shè)數(shù)倉(cāng)

如果了解范式建模,從er 模型可以了解到數(shù)據(jù)架構(gòu),例如一個(gè)電商系統(tǒng),從er模型就可以知道哪些涉及到商品的管理、用戶(hù)的管理、訂單管理,拿到這些關(guān)系之后,我們就可以更好的進(jìn)行數(shù)倉(cāng)管理與建
數(shù)據(jù)源的規(guī)范定義需要我們了解范式理論,可以更好的和業(yè)務(wù)系統(tǒng)進(jìn)行對(duì)接

數(shù)倉(cāng)的稀有系統(tǒng),如報(bào)表系統(tǒng)設(shè)計(jì)的時(shí)候也會(huì)使用到范式建模

ER實(shí)體建模

將事務(wù)抽象為"實(shí)體"(Entity)、"屬性"(Property)、"關(guān)系"(Relationship)來(lái)表示數(shù)據(jù)關(guān)聯(lián)和事物描述,這種對(duì)數(shù)據(jù)的抽象建模通常被稱(chēng)為ER實(shí)體關(guān)系模型。

實(shí)體建模法并不是數(shù)據(jù)倉(cāng)庫(kù)建模中常見(jiàn)的一個(gè)方法,它來(lái)源于哲學(xué)的一個(gè)流派。

從哲學(xué)的意義上說(shuō),客觀世界應(yīng)該是可以細(xì)分的,客觀世界應(yīng)該可以分成由一個(gè)個(gè)實(shí) 體,以及實(shí)體與實(shí)體之間的關(guān)系組成。我們?cè)跀?shù)據(jù)倉(cāng)庫(kù)的建模過(guò)程中完全可以引入這個(gè)抽象的方法,將整個(gè)業(yè)務(wù)也可以劃分成一個(gè)個(gè)的實(shí)體,而每個(gè)實(shí)體之間的 關(guān)系,以及針對(duì)這些關(guān)系的說(shuō)明就是我們數(shù)據(jù)建模需要做的工作。

在日常建模中,"實(shí)體"用矩形表示,"關(guān)系"用菱形,"屬性"用橢圓形。ER實(shí)體關(guān)系模型也稱(chēng)為E-R關(guān)系圖

雖然實(shí)體法粗看起來(lái)好像有一些抽象,其實(shí)理解起來(lái)很容易。即我們可以將任何一個(gè)業(yè)務(wù)過(guò)程劃分成 3 個(gè)部分,實(shí)體,事件和說(shuō)明。

描述一個(gè)簡(jiǎn)單的事實(shí):“小明開(kāi)車(chē)去學(xué)校上學(xué)”。以這個(gè)業(yè)務(wù)事實(shí)為例,我們可以把“小明”,“學(xué)校”看成是一個(gè)實(shí)體, “上學(xué)”描述的是一個(gè)業(yè)務(wù)過(guò)程,我們?cè)谶@里可以抽象為一個(gè)具體“事件”,而“開(kāi)車(chē)去”則可以看成是事件“上學(xué)”的一個(gè)說(shuō)明。

應(yīng)用場(chǎng)景

ER模型是數(shù)據(jù)庫(kù)設(shè)計(jì)的理論基礎(chǔ),當(dāng)前幾乎所有的OLTP系統(tǒng)設(shè)計(jì)都采用ER模型建模的方式。

Bill Inom提出的數(shù)倉(cāng)理論,推薦采用ER關(guān)系模型進(jìn)行建模。

BI架構(gòu)提出分層架構(gòu),數(shù)倉(cāng)底層ods、dwd也多采用ER關(guān)系模型進(jìn)行設(shè)計(jì)。

由于實(shí)體建模法,能夠很輕松的實(shí)現(xiàn)業(yè)務(wù)模型的劃分,因此,在業(yè)務(wù)建模階段和領(lǐng)域概念建模階段,實(shí)體建模法有著廣泛的應(yīng)用。

業(yè)務(wù)歸納

使用的抽象歸納方法其實(shí)很簡(jiǎn)單,任何業(yè)務(wù)可以看成 3 個(gè)部分:

  1. 實(shí)體,主要指領(lǐng)域模型中特定的概念主體,指發(fā)生業(yè)務(wù)關(guān)系的對(duì)象
  2. 事件,主要指概念主體之間完成一次業(yè)務(wù)流程的過(guò)程,特指特定的業(yè)務(wù)過(guò)程
  3. 說(shuō)明,主要是針對(duì)實(shí)體和事件的特殊說(shuō)明

維度建模

概念和背景

維度模型是數(shù)據(jù)倉(cāng)庫(kù)領(lǐng)域大師Ralph Kimball 所倡導(dǎo),他的《數(shù)據(jù)倉(cāng)庫(kù)工具箱》,是數(shù)據(jù)倉(cāng)庫(kù)工程領(lǐng)域最流行的數(shù)倉(cāng)建模經(jīng)典。維度建模以分析決策的需求出發(fā)構(gòu)建模型,構(gòu)建的數(shù)據(jù)模型為分析需求服務(wù),因此它重點(diǎn)解決用戶(hù)如何更快速完成分析需求,同時(shí)還有較好的大規(guī)模復(fù)雜查詢(xún)的響應(yīng)性能。

維度建模源自數(shù)據(jù)集市,主要面向分析場(chǎng)景 Ralph Kimball 推崇數(shù)據(jù)集市的集合為數(shù)據(jù)倉(cāng)庫(kù),同時(shí)也提出了對(duì)數(shù)據(jù)集市的維度建模,將數(shù)據(jù)倉(cāng)庫(kù)中的表劃分為事實(shí)表、維度表兩種類(lèi)型。

一般也稱(chēng)之為星型結(jié)構(gòu)建模,有時(shí)也加入一些雪花模型在里面。維度建模是一種面向用戶(hù)需求的、容易理解的、訪問(wèn)效率高的建模方法

維度模型通常以一種被稱(chēng)為星型模式的方式構(gòu)建。所謂星型模式,就是以一個(gè)事實(shí)表為中心,周?chē)h(huán)繞著多個(gè)維度表。

還有一種模式叫做雪花模式,是對(duì)維度做進(jìn)一星型模型做OLAP分析很方便

為什么選擇維度建模

適配大數(shù)據(jù)的處理方式

維度模型的非強(qiáng)范式的,可以更好的利用大數(shù)據(jù)處理框架的處理能力,避免范式操作的過(guò)多關(guān)聯(lián)操作,可以實(shí)現(xiàn)高度的并行化。

數(shù)據(jù)倉(cāng)庫(kù)大多數(shù)時(shí)候是比較適合使用星型模型構(gòu)建底層數(shù)據(jù)Hive表,通過(guò)大量的冗余來(lái)提升查詢(xún)效率,星型模型對(duì)OLAP的分析引擎支持比較友好,這一點(diǎn)在Kylin中比較能體現(xiàn)。

雪花模型在關(guān)系型數(shù)據(jù)庫(kù)中如MySQL,Oracle中非常常見(jiàn),尤其像電商的數(shù)據(jù)庫(kù)表。

自下而上的建設(shè)現(xiàn)狀

表已經(jīng)存在,業(yè)務(wù)已經(jīng)開(kāi)發(fā)完畢,需求直接提過(guò)來(lái)了,這幾乎是一個(gè)普遍現(xiàn)狀,因?yàn)楹苌儆泄緯?huì)提前成立數(shù)據(jù)部門(mén),讓數(shù)據(jù)部門(mén)跟隨著業(yè)務(wù)從頭開(kāi)始一直成長(zhǎng),都是當(dāng)業(yè)務(wù)發(fā)展到一定的階段了,想通過(guò)數(shù)據(jù)來(lái)提高公司的運(yùn)營(yíng)效果

簡(jiǎn)單的模型 使用簡(jiǎn)單

這個(gè)模型相對(duì)來(lái)說(shuō)是比較簡(jiǎn)單的,簡(jiǎn)單主要體現(xiàn)在兩個(gè)方面

  1. 維度建模非常直觀,緊緊圍繞著業(yè)務(wù)模型,可以直觀的反映出業(yè)務(wù)模型中的業(yè)務(wù)問(wèn)題。不需要經(jīng)過(guò)特別的抽象處理,即可以完成維度建模。這一點(diǎn)也是維度建模的優(yōu)勢(shì)。
  2. 星型結(jié)構(gòu)的實(shí)現(xiàn)不用考慮很多正規(guī)化的因素,設(shè)計(jì)與實(shí)現(xiàn)都比較簡(jiǎn)單。

分層和建模的關(guān)系

明細(xì)層的范式模型

明細(xì)層采用傳統(tǒng)的三范式關(guān)系模型。這一層次的數(shù)據(jù)模型要將業(yè)務(wù)過(guò)程描述清楚,將源數(shù)據(jù)(即業(yè)務(wù)系統(tǒng))中隱含的、有歧義的概念進(jìn)行清晰化,如活躍用戶(hù)、VIP用戶(hù)等。該層次的數(shù)據(jù)模型追求的目標(biāo)是靈活地表達(dá)業(yè)務(wù)過(guò)程,要保證數(shù)據(jù)一致性、唯一性、正確性,以盡量少的代價(jià)與源數(shù)據(jù)保持?jǐn)?shù)據(jù)同步,同時(shí)該層次的數(shù)據(jù)模型不建議開(kāi)給不懂技術(shù)的業(yè)務(wù)人員直接使用,因此,采用關(guān)系型的三范式模型是最佳的選擇。

集市層的維度模型

集市層是按照業(yè)務(wù)主題、分主題構(gòu)建出來(lái)的、面向特定部門(mén)或人員的數(shù)據(jù)集合,該層次的數(shù)據(jù)模型會(huì)開(kāi)放給業(yè)務(wù)人員使用,進(jìn)行數(shù)據(jù)挖掘及業(yè)務(wù)分析。由于業(yè)務(wù)員多數(shù)不懂?dāng)?shù)據(jù)庫(kù)技術(shù),缺少將業(yè)務(wù)需求轉(zhuǎn)換為關(guān)系型數(shù)據(jù)結(jié)構(gòu)的邏輯思維,更寫(xiě)不出復(fù)雜的SQL語(yǔ)句,因此,越簡(jiǎn)單的數(shù)據(jù)模型,越能被他們所接受,因此,這個(gè)層次所構(gòu)建出來(lái)的數(shù)據(jù)模型,要按照業(yè)務(wù)過(guò)程進(jìn)行組織,每個(gè)事實(shí)表代表一個(gè)獨(dú)立的業(yè)務(wù)過(guò)程,事實(shí)表之間不存在直接的依賴(lài)關(guān)系,這樣業(yè)務(wù)人員可以很容易地將分析需求對(duì)應(yīng)到事實(shí)表上,利用工具或手工寫(xiě)出簡(jiǎn)單的SQL,將統(tǒng)計(jì)數(shù)據(jù)提取出來(lái)進(jìn)行分析。

模型實(shí)現(xiàn)

模型的實(shí)現(xiàn)主要指的是在維度建模過(guò)程中,需要對(duì)維度表和事實(shí)表進(jìn)行關(guān)聯(lián)設(shè)計(jì),而這里我們對(duì)維度表的設(shè)計(jì),就決定了我們最終與事實(shí)表關(guān)聯(lián)的之后的形態(tài)。也就是說(shuō)我們可以根據(jù)事實(shí)表和維度表的關(guān)系,又可將常見(jiàn)的模型分為星型模型和雪花型模型

星型模型和雪花模型的主要區(qū)別在于對(duì)維度表的拆分,對(duì)于雪花模型,維度表的設(shè)計(jì)更加規(guī)范,一般符合3NF;而星型模型,一般采用降維的操作,利用冗余來(lái)避免模型過(guò)于復(fù)雜,提高易用性和分析效率。

星型模型

核心是一個(gè)事實(shí)表及多個(gè)非正規(guī)化描述的維度表組成,維度表之間是沒(méi)有關(guān)聯(lián)的,維度表是直接關(guān)聯(lián)到事實(shí)表上的,只有當(dāng)維度表極大,存儲(chǔ)空間是個(gè)問(wèn)題時(shí),才考慮雪花型維度,簡(jiǎn)而言之,最好就用星型維度即可

當(dāng)所有維表都直接連接到“ 事實(shí)表”上時(shí),整個(gè)圖解就像星星一樣,故將該模型稱(chēng)為星型模型

星型架構(gòu)是一種非正規(guī)化的結(jié)構(gòu),多維數(shù)據(jù)集的每一個(gè)維度都直接與事實(shí)表相連接,不存在漸變維度,所以數(shù)據(jù)有一定的冗余,如在地域維度表中,存在國(guó)家 A 省 B 的城市 C 以及國(guó)家 A 省 B 的城市 D 兩條記錄,那么國(guó)家 A 和省 B 的信息分別存儲(chǔ)了兩次,即存在冗余。

雪花模型

星形模式中的維表相對(duì)雪花模式來(lái)說(shuō)要大,而且不滿(mǎn)足規(guī)范化設(shè)計(jì)。雪花模型相當(dāng)于將星形模式的大維表拆分成小維表,滿(mǎn)足了規(guī)范化設(shè)計(jì)。然而這種模式在實(shí)際應(yīng)用中很少見(jiàn),因?yàn)檫@樣做會(huì)導(dǎo)致開(kāi)發(fā)難度增大,而數(shù)據(jù)冗余問(wèn)題在數(shù)據(jù)倉(cāng)庫(kù)里并不嚴(yán)重

可以認(rèn)為雪花模型是星型模型的一個(gè)擴(kuò)展,每個(gè)維度表可以繼續(xù)向外擴(kuò)展,連接多個(gè)子維度。

當(dāng)有一個(gè)或多個(gè)維表沒(méi)有直接連接到事實(shí)表上,而是通過(guò)其他維表連接到事實(shí)表上時(shí),其圖解就像多個(gè)雪花連接在一起,故稱(chēng)雪花模型

星座模型

前面介紹的兩種維度建模方法都是多維表對(duì)應(yīng)單事實(shí)表,但在很多時(shí)候維度空間內(nèi)的事實(shí)表不止一個(gè),而一個(gè)維表也可能被多個(gè)事實(shí)表用到。在業(yè)務(wù)發(fā)展后期,絕大部分維度建模都采用的是星座模式。

可以認(rèn)為是多個(gè)事實(shí)表的關(guān)聯(lián)或者是星型模型的關(guān)聯(lián),其實(shí)到了業(yè)務(wù)發(fā)展后期都是星座模型

應(yīng)用場(chǎng)景

維度建模是面向分析場(chǎng)景而生,針對(duì)分析場(chǎng)景構(gòu)建數(shù)倉(cāng)模型,重點(diǎn)關(guān)注快速、靈活的解決分析需求,同時(shí)能夠提供大規(guī)模數(shù)據(jù)的快速響應(yīng)性能。

針對(duì)性強(qiáng),主要應(yīng)用于數(shù)據(jù)倉(cāng)庫(kù)構(gòu)建和OLAP引擎底層數(shù)據(jù)模型

優(yōu)點(diǎn)

方便使用,模型簡(jiǎn)單

適合大數(shù)據(jù)下的處理操作(其實(shí)就是shuffle)

適合OLAP操作(上鉆下鉆)

維度建模非常直觀,緊緊圍繞著業(yè)務(wù)模型,可以直觀的反映出業(yè)務(wù)模型中的業(yè)務(wù)問(wèn)題。不需要經(jīng)過(guò)特別的抽象處理,即可以完成維度建模。

可擴(kuò)展,維度模型是可擴(kuò)展的。由于維度模型允許數(shù)據(jù)冗余,因此當(dāng)向一個(gè)維度表或事實(shí)表中添加字段時(shí),不會(huì)像關(guān)系模型那樣產(chǎn)生巨大的影響,帶來(lái)的結(jié)果就是更容易容納不可預(yù)料的新增數(shù)據(jù)。

缺點(diǎn)

數(shù)據(jù)冗余,維度補(bǔ)全后造成的數(shù)據(jù)浪費(fèi)

靈活性差,維度變化造成的數(shù)據(jù)更新量大(例如刷數(shù)據(jù)的時(shí)候,需要刷大量的表)

與典型的范式理論差異很大,如數(shù)據(jù)不一致,比如用戶(hù)發(fā)起購(gòu)買(mǎi)行為的時(shí)候的數(shù)據(jù),和我們維度表里面存放的數(shù)據(jù)不一致

既然如此為什么還要使用范式建模呢,其實(shí)和我們使用的工具有關(guān)系

由于在構(gòu)建星型模式之前需要進(jìn)行大量的數(shù)據(jù)預(yù)處理,因此會(huì)導(dǎo)致大量的數(shù)據(jù)處理工作。而且,當(dāng)業(yè)務(wù)發(fā)生變化,需要重新進(jìn)行維度的定義時(shí),往往需要重新進(jìn)行維度數(shù)據(jù)的預(yù)處理。而在這些與處理過(guò)程中,往往會(huì)導(dǎo)致大量的數(shù)據(jù)冗余。

如果只是依靠單純的維度建模,不能保證數(shù)據(jù)來(lái)源的一致性和準(zhǔn)確性,而且在數(shù)據(jù)倉(cāng)庫(kù)的底層,不是特別適用于維度建模的方法。

維度建模的領(lǐng)域主要適用與數(shù)據(jù)集市層,它的最大的作用其實(shí)是為了解決數(shù)據(jù)倉(cāng)庫(kù)建模中的性能問(wèn)題。維度建模很難能夠提供一個(gè)完整地描述真實(shí)業(yè)務(wù)實(shí)體之間的復(fù)雜關(guān)系的抽象方法

總結(jié)

上述的這些方法都有自己的優(yōu)點(diǎn)和局限性,在創(chuàng)建自己的數(shù)據(jù)倉(cāng)庫(kù)模型的時(shí)候,可以參考使用上述的三種數(shù)據(jù)倉(cāng)庫(kù)得建模方法,在各個(gè)不同階段采用不同的方法,從而能夠保證整個(gè)數(shù)據(jù)倉(cāng)庫(kù)建模的質(zhì)量。

方法論僅僅停留在理論層面上,落地實(shí)現(xiàn)的才真正決定了數(shù)倉(cāng)設(shè)計(jì)的好壞,當(dāng)然再好的方法,只有在合適的階段使用,才有意義,才能發(fā)揮它最大的價(jià)值




作者:柯廣的網(wǎng)絡(luò)日志

微信公眾號(hào):Java大數(shù)據(jù)與數(shù)據(jù)倉(cāng)庫(kù)