er图用什么软件_从软件开发生命周期看商业智能 BI 数据仓库建模
關(guān)于商業(yè)智能 BI 的介紹面對(duì)不同的企業(yè)客戶可以從很多不同的角度展開,比如從業(yè)務(wù)角度、管理角度、數(shù)據(jù)架構(gòu)角度、IT 信息化建設(shè)角度、BI 實(shí)施方法論角度等,不同的視角可以幫助企業(yè)更加全面的了解商業(yè)智能 BI,對(duì)企業(yè)在規(guī)劃和建設(shè)商業(yè)智能 BI 項(xiàng)目會(huì)有很大的幫助。
筆者同時(shí)從事過多年的傳統(tǒng)軟件技術(shù)開發(fā)和商業(yè)智能 BI 開發(fā)工作,深感兩個(gè)專業(yè)領(lǐng)域有所同,也有所不同。這篇文章站在傳統(tǒng)軟件開發(fā)流程的角度,對(duì)比商業(yè)智能 BI 的開發(fā)流程,談一談兩者之間的差異。結(jié)合這種對(duì)比,再來解答一下在企業(yè)級(jí)商業(yè)智能 BI 的建設(shè)上,大家可能會(huì)存在的一些困擾,以及如何解決。
01
傳統(tǒng)軟件開發(fā)流程與商業(yè)智能 BI 開發(fā)的異同
傳統(tǒng)軟件開發(fā)從流程上來看,基本上可以分為以下幾個(gè)階段:
視項(xiàng)目規(guī)劃大小、企業(yè)資源投入程度決定以上各個(gè)階段的實(shí)現(xiàn)的復(fù)雜程度,以及進(jìn)行適當(dāng)?shù)恼{(diào)整。小投入、短周期的項(xiàng)目要求立竿見影,這種條件下就不可能做到面面俱到,但整體上基本會(huì)按照這個(gè)大流程進(jìn)行。
商業(yè)智能 BI 的開發(fā)從流程上基本上和軟件開發(fā)流程類似,從需求開始到設(shè)計(jì)、開發(fā)、測(cè)試與驗(yàn)收上線。
本質(zhì)上兩者都是解決企業(yè) IT 信息化的問題,區(qū)別在于業(yè)務(wù)軟件重點(diǎn)解決業(yè)務(wù)流程和管理信息化的問題,商業(yè)智能 BI 重點(diǎn)解決數(shù)據(jù)信息化和決策化的問題。
對(duì)比軟件開發(fā)流程中的概要設(shè)計(jì)、詳細(xì)設(shè)計(jì)與開發(fā)階段,其中有幾個(gè)環(huán)節(jié)值得注意:
第一,商業(yè)智能 BI 在可視化原型建模大多數(shù)情況下是缺失的。
第二,傳統(tǒng)軟件底層數(shù)據(jù)庫(kù)設(shè)計(jì)采用 3NF 建模,而商業(yè)智能 BI 在不同的項(xiàng)目規(guī)劃中底層數(shù)據(jù)庫(kù)設(shè)計(jì)可以采用 3NF 建模,也可以采用維度建模以及兩者結(jié)合的混合架構(gòu)。商業(yè)智能 BI 不同的建模方式也決定了完全不同的設(shè)計(jì)理念以及開發(fā)與實(shí)現(xiàn)過程,例如商業(yè)智能 BI 的 3NF 建模與傳統(tǒng)軟件開發(fā)的生命周期完全不同,對(duì) BI 開發(fā)人員的要求也有很大的差異。
第三,商業(yè)智能 BI 的開發(fā)人員大多數(shù)情況下集數(shù)據(jù)庫(kù)設(shè)計(jì)、前后端一體,軟件開發(fā)在人員分工上會(huì)更加細(xì)化,前后端分離。
以下從上門這幾個(gè)重點(diǎn)環(huán)節(jié)來談?wù)勂渲械牟町悺?/p>
02
原型設(shè)計(jì)與用戶需求分析
在早期的軟件開發(fā)領(lǐng)域,用戶需求調(diào)研基本上都是以與業(yè)務(wù)部門訪談梳理業(yè)務(wù)流程為主,結(jié)合靜態(tài)的 HTML 或 EXCEL 模擬( 以 B/S 項(xiàng)目為例 )向用戶展示一些基本的表單樣式與表單跳轉(zhuǎn)( 處理流程 )來理解和確認(rèn)業(yè)務(wù),以及確認(rèn)相關(guān)核心的業(yè)務(wù)字段。如今,在特別突出產(chǎn)品經(jīng)理角色的時(shí)代,可以通過 Axure、藍(lán)湖、墨刀、Sketch 等很多種強(qiáng)大的工具完整的模擬用戶需求原型,效率得到了極大的提升。
藍(lán)湖的原型設(shè)計(jì)與交互頁(yè)面
但是在商業(yè)智能 BI 領(lǐng)域,到目前為止我們?cè)诮^大多數(shù)企業(yè)我們看到的還是十來年前的老樣子,用戶需求訪談?wù){(diào)研,用 EXCEL 結(jié)合一些測(cè)試數(shù)據(jù)來模擬一些基本的可視化報(bào)表來與客戶確認(rèn)。實(shí)際上還是很難真正表達(dá)客戶真實(shí)的分析訴求的,因?yàn)?EXCEL 圖表太零散、單一,也無法表達(dá)完整的分析意圖。同時(shí),在很多實(shí)際的項(xiàng)目上,因?yàn)轫?xiàng)目周期的原因,也不允許出現(xiàn)這種長(zhǎng)周期的需求調(diào)研。在這一點(diǎn)上,派可數(shù)據(jù)在 BI 產(chǎn)品上做了很多努力,基本上已經(jīng)很好的解決了這個(gè)問題,可以在很短的時(shí)間( 2-3 天 )給出不同的行業(yè)化可視化分析原型。
派可數(shù)據(jù)的原型設(shè)計(jì)與交互頁(yè)面可以在不鏈接任何外部數(shù)據(jù)源的情況下設(shè)計(jì)與展示
BI 原型設(shè)計(jì)的核心是什么 ?是可視化建模,而建模的核心在于數(shù)據(jù)倉(cāng)庫(kù)中數(shù)據(jù)分析模型的設(shè)計(jì)。
數(shù)據(jù)分析模型的搭建在商業(yè)智能 BI 領(lǐng)域重點(diǎn)其實(shí)就解決兩個(gè)問題:用戶要看什么數(shù)據(jù)( 指標(biāo)、度量 ),從什么角度看 ( 維度 )。至于怎么進(jìn)行可視化展現(xiàn)實(shí)際上在底層數(shù)據(jù)模型設(shè)計(jì)階段并不重要,因?yàn)楝F(xiàn)在的 BI 工具已經(jīng)完全實(shí)現(xiàn)了拖拉拽的操作,可以非常輕松的進(jìn)行可視化報(bào)表的設(shè)計(jì)了。
在這里,有一個(gè)核心概念是派可數(shù)據(jù)在市場(chǎng)上反復(fù)強(qiáng)調(diào)的:商業(yè)智能 BI 的本質(zhì)不是面向報(bào)表開發(fā),而是面向模型開發(fā)。這里的模型重點(diǎn)指的就是如何組織數(shù)據(jù)( 指標(biāo) )和角度( 維度 ),形成一個(gè)具備完整分析鏈路( 維度中的屬性層次結(jié)構(gòu) )的分析模型,可以支撐到各種靈活多變的可視化圖表展現(xiàn)效果。
派可數(shù)據(jù) BI 平臺(tái)的可視化數(shù)據(jù)倉(cāng)庫(kù)建模
所謂面向報(bào)表開發(fā),指的就是用戶提出什么報(bào)表需求,就寫 SQL 取數(shù)通過大寬表以數(shù)據(jù)集的方式支撐一個(gè)或者一張報(bào)表的呈現(xiàn)。這樣做實(shí)際上犧牲了很多的業(yè)務(wù)可擴(kuò)展性和靈活性,在面對(duì)日益累計(jì)的業(yè)務(wù)分析需求的時(shí)候,對(duì) BI 的開發(fā)和擴(kuò)展會(huì)形成非常沉重的負(fù)擔(dān)。
指標(biāo)( 事實(shí) ) 與維度的關(guān)聯(lián)關(guān)系
上面講到的建模在商業(yè)智能 BI 建模方法論中實(shí)際上體現(xiàn)的是 Kimball 的維度建模方法論,另外一個(gè)建模方法論則是 Inmon 的 3NF ( The Third Normal Form ) 建模方法論。兩者建模方式上有很大的差異,并且 Inmon 的 3NF 建模方法論在針對(duì) BI 的可視化原型建模過程中是無法很好的實(shí)現(xiàn)的。因?yàn)?Inmon 的 3NF 建模更多表達(dá)的是源自業(yè)務(wù)系統(tǒng)的業(yè)務(wù)過程模型,而 Kimball 的維度建模在表達(dá)分析思維模型的時(shí)候更加直觀。
為什么在商業(yè)智能 BI 領(lǐng)域會(huì)存在兩種不同的建模方式,3NF 建模和維度建模的主要差異到底在哪里 ?我們需要從根上即商業(yè)智能 BI 的底層基礎(chǔ) —— 業(yè)務(wù)軟件系統(tǒng)的建模方式上來一探究竟。
03
軟件系統(tǒng)中的3NF 建模
簡(jiǎn)單的 ER 模型示例圖
軟件系統(tǒng)的開發(fā)在經(jīng)歷了用戶需求調(diào)研、原型設(shè)計(jì)階段之后,基本上用戶的業(yè)務(wù)流程、業(yè)務(wù)需求都確認(rèn)的差不多了,這時(shí)就可以進(jìn)入到概要設(shè)計(jì)階段。在這個(gè)階段一是要進(jìn)行 ER 模型的設(shè)計(jì),同時(shí)也要進(jìn)行底層數(shù)據(jù)庫(kù)表的結(jié)構(gòu)設(shè)計(jì)。
ER 模型 - 實(shí)體關(guān)系圖 ( Entity Relationship ) 表達(dá)的是:
1. 在整個(gè)實(shí)際的業(yè)務(wù)流程中誰(shuí) ( Entity 實(shí)體 ) 與誰(shuí) ( Entity ) 發(fā)生了什么 ?例如一個(gè)客戶( 實(shí)體 )下了一筆或者多筆訂單( 實(shí)體 ),這個(gè)訂單包含了一個(gè)或者多個(gè)商品( 實(shí)體 )。
2. 如何描述這個(gè)實(shí)體 —— 屬性( Attribute ) ?比如,要記錄客戶的姓名、年齡、性別、聯(lián)系電話、住址等,這些就都是屬性。
3. 它們( Entity )之間什么關(guān)系( Relationship )?下訂單就是客戶與訂單的關(guān)系,訂單包含商品就是訂單與商品的關(guān)系。同時(shí),也描述了一個(gè)客戶可以下多筆訂單,一筆訂單包含多個(gè)商品,這就是 ER 模型中一對(duì)一、一對(duì)多或者多對(duì)多的關(guān)系。
基于 ER 模型,在數(shù)據(jù)庫(kù)設(shè)計(jì)層面,就可以進(jìn)行數(shù)據(jù)庫(kù)表設(shè)計(jì)建模,對(duì)應(yīng)到 ER 模型:
1. 數(shù)據(jù)庫(kù)表,對(duì)應(yīng)到實(shí)體。通常會(huì)增加非業(yè)務(wù)性的一些額外的數(shù)據(jù)庫(kù)表來支撐程序開發(fā)。
2. 數(shù)據(jù)表字段,對(duì)應(yīng)到實(shí)體的屬性。通常會(huì)增加主鍵來唯一標(biāo)識(shí)一個(gè)實(shí)體、一張表。
3. 數(shù)據(jù)表關(guān)系,對(duì)應(yīng)到實(shí)體與實(shí)體的關(guān)系。通常通過數(shù)據(jù)表的主外鍵關(guān)系來表達(dá),形成一對(duì)一、一對(duì)多或者多對(duì)多的關(guān)系,復(fù)雜一點(diǎn)的還有自引用的表設(shè)計(jì)關(guān)系,比如企業(yè)的組織架構(gòu)、上下級(jí)關(guān)系。
數(shù)據(jù)庫(kù)表結(jié)構(gòu)的模型設(shè)計(jì)
同時(shí),基于 ER 模型和數(shù)據(jù)庫(kù)表設(shè)計(jì),也可以進(jìn)行程序開發(fā)中的類 Class 和接口 Interface 的設(shè)計(jì)與定義。
在軟件系統(tǒng)的詳細(xì)設(shè)計(jì)和開發(fā)階段,數(shù)據(jù)庫(kù)表就已 3NF 的形式來進(jìn)行設(shè)計(jì)開發(fā)了,3NF ( The Third Normal Form ) 三范式開發(fā)的相應(yīng)要求:
關(guān)于三范式的數(shù)據(jù)庫(kù)表設(shè)計(jì)規(guī)范不在這里重點(diǎn)闡述( 除了三范式外還有其它四范式、五范式等,讀者可以搜索了解 )。
為什么軟件業(yè)務(wù)系統(tǒng)采用 3NF 的數(shù)據(jù)庫(kù)建模方式,主要有以下幾個(gè)重點(diǎn)原因:
第一,業(yè)務(wù)系統(tǒng)本身描述的就是業(yè)務(wù)過程的,而業(yè)務(wù)過程在 ER 圖上的表現(xiàn)就是實(shí)體與實(shí)體的關(guān)系。這種關(guān)系對(duì)應(yīng)到數(shù)據(jù)庫(kù)表的設(shè)計(jì)上就通過 3NF 來體現(xiàn)。
第二,消滅數(shù)據(jù)冗余。3NF 的設(shè)計(jì)規(guī)范在最大程度上消滅了數(shù)據(jù)冗余,能夠更加清晰的定義業(yè)務(wù)發(fā)生的實(shí)體,實(shí)體與實(shí)體的關(guān)系。
第三,面向?qū)ο蟆⒚嫦蚪涌诘木幊趟季S。對(duì)于對(duì)象 OBJECT 的定義以及 CLASS 類的實(shí)現(xiàn)本身也就描述了 ER 模型的實(shí)體和數(shù)據(jù)庫(kù)基礎(chǔ)表的結(jié)構(gòu)和定義。
第四,業(yè)務(wù)系統(tǒng)重在數(shù)據(jù)的錄入、修改和刪除等基本操作。雖然在業(yè)務(wù)系統(tǒng)中也有大量的查詢,但大多數(shù)都是圍繞原子表進(jìn)行增刪改基礎(chǔ)上的查詢工作,并不是真正為分析為目的的查詢 SELECT 操作。而3NF 的設(shè)計(jì)更加適合程序?qū)?shù)據(jù)的增刪改 INSERT、UPDATE 和 DELETE 操作。
以上,從業(yè)務(wù)過程的表達(dá)與描述、ER 模型的還原、數(shù)據(jù)的操作場(chǎng)景以及程序設(shè)計(jì)角度定義了 3NF 在軟件業(yè)務(wù)系統(tǒng)開發(fā)過程中的必要性。
04
BI 系統(tǒng)中的3NF 建模與維度建模
商業(yè)智能 BI 系統(tǒng)與業(yè)務(wù)軟件系統(tǒng)的開發(fā)過程一樣,都需要進(jìn)行底層數(shù)據(jù)庫(kù)表的設(shè)計(jì)。不同的是,在商業(yè)智能 BI 系統(tǒng)中,我們把這種數(shù)據(jù)庫(kù)叫做數(shù)據(jù)倉(cāng)庫(kù)。數(shù)據(jù)倉(cāng)庫(kù)本質(zhì)上就是一個(gè)數(shù)據(jù)庫(kù),核心區(qū)別主要在于他們解決的問題的不同,建模方式的不同( 例如使用 Kimball 維度建模方法論時(shí) ), 數(shù)據(jù)倉(cāng)庫(kù)存在多層表設(shè)計(jì)分類的不同等等。
關(guān)于數(shù)據(jù)庫(kù)和數(shù)據(jù)倉(cāng)庫(kù)的差異,讀者可以通過這篇文章了解:每日小視頻:數(shù)據(jù)庫(kù)和數(shù)據(jù)倉(cāng)庫(kù)有什么區(qū)別和聯(lián)系?
在商業(yè)智能 BI 領(lǐng)域中有很多種不同的數(shù)據(jù)倉(cāng)庫(kù)建模方式,例如:
- Independent Data Marts Achitechture 獨(dú)立集市架構(gòu)
- Centralized Data Warehouse Architecture 集中式架構(gòu)
- Data Vault 架構(gòu)
- Data Mart Bus Architecture 數(shù)據(jù)集市、數(shù)據(jù)倉(cāng)庫(kù)總線架構(gòu) ( Kimball )
- Hub and Spoke / CIF – Corporate Information Factory 集線器架構(gòu) / 企業(yè)信息工廠架構(gòu) ( Inmon )
其中最常見就是 Inmon 的 3NF 三范式建模與 Kimball 的維度建模 ( 星型和雪花型建模 )這兩類。
數(shù)據(jù)倉(cāng)庫(kù)之父 Inmon 與維度建模專家 Kimball
其中最常見就是 Inmon 的 3NF 三范式建模與 Kimball 的維度建模 ( 星型和雪花型建模 )這兩類。
關(guān)于兩種建模的詳細(xì)差別與孰優(yōu)孰劣暫時(shí)不在這篇文章中展開,可以放到后續(xù)的公眾號(hào)文章來闡述,我們只來談?wù)勊鼈冏隽耸裁础?/p>
Inmon 的 3NF 三范式建模如同在本文開頭的第一節(jié)【傳統(tǒng)軟件開發(fā)流程與商業(yè)智能 BI 開發(fā)的異同】中提到的:商業(yè)智能 BI 的 3NF 建模與傳統(tǒng)軟件開發(fā)的生命周期完全不同。
Inmon 的 3NF 建模在商業(yè)智能 BI 的開發(fā)過程中不是以分析需求為導(dǎo)向的,Inmon 的做法是先集成各個(gè)業(yè)務(wù)系統(tǒng)的數(shù)據(jù),再來設(shè)計(jì) DSS ( Dicision Support System 決策支持系統(tǒng) ),到最后分主題實(shí)現(xiàn) Data Mart 數(shù)據(jù)集市來支撐到 Reporting 報(bào)表系統(tǒng)。
所以 Inmon 的建模方法論復(fù)雜就復(fù)雜在這個(gè)地方,對(duì)比業(yè)務(wù)系統(tǒng)的軟件開發(fā)過程,就相當(dāng)基于各個(gè)業(yè)務(wù)軟件系統(tǒng)的獨(dú)立的、按照 3NF 建模的數(shù)據(jù)庫(kù)之上在封裝、設(shè)計(jì)出一套跨業(yè)務(wù)、跨主題的大而全的 3NF 數(shù)據(jù)庫(kù)。
也可以理解為:在不同特定行業(yè)和領(lǐng)域,Inmon 的 3NF 數(shù)據(jù)庫(kù)事實(shí)上梳理了這個(gè)行業(yè)和領(lǐng)域的一套完整的數(shù)據(jù)庫(kù)設(shè)計(jì)架構(gòu),如果基于這種基礎(chǔ)的表架構(gòu)來進(jìn)行軟件系統(tǒng)的開發(fā),這套數(shù)據(jù)庫(kù)底層表設(shè)計(jì)基本上就是其對(duì)接的全部軟件系統(tǒng)數(shù)據(jù)庫(kù)表設(shè)計(jì)之和。
可以想象它對(duì) BI 開發(fā)人員的要求在數(shù)據(jù)倉(cāng)庫(kù)的設(shè)計(jì)層面幾乎與軟件開發(fā)人員對(duì)業(yè)務(wù)系統(tǒng)的數(shù)據(jù)庫(kù)設(shè)計(jì)完全對(duì)等,其挑戰(zhàn)就是:
第一,要完全理解所服務(wù)企業(yè)的全部業(yè)務(wù),熟悉所對(duì)接的全部業(yè)務(wù)系統(tǒng)數(shù)據(jù)庫(kù)表設(shè)計(jì)的含義。
第二,幾乎是一種程序開發(fā)思維來重新按照 3NF 的設(shè)計(jì)對(duì)數(shù)據(jù)庫(kù)表進(jìn)行建模。
第三,長(zhǎng)周期的調(diào)研、長(zhǎng)周期的溝通,同時(shí)還需要把以往各個(gè)業(yè)務(wù)系統(tǒng)中設(shè)計(jì)不合理的因素重新規(guī)避掉。
第四,巨大的人力、時(shí)間投入成本,項(xiàng)目啟動(dòng)動(dòng)輒千萬(wàn)級(jí)別的規(guī)模,一般的企業(yè)無力承擔(dān)。
事實(shí)上,我們?cè)诤芏嗥髽I(yè)看到的一些按照 Inmon 3NF 設(shè)計(jì)思想設(shè)計(jì)的數(shù)據(jù)倉(cāng)庫(kù)是經(jīng)不起推敲的,基本上都是通過簡(jiǎn)單分層、臨時(shí)表來寫 SQL 拼數(shù)據(jù)集拼報(bào)表做展現(xiàn),這就是一種典型的面向報(bào)表開發(fā)思維。
哪些企業(yè)做的比較好,例如傳統(tǒng)的金融( 銀行、保險(xiǎn))等民生領(lǐng)域,有幾個(gè)方面的原因:
第一,這些領(lǐng)域是最早實(shí)現(xiàn)基礎(chǔ)軟件信息化的,早在 2000 年前后就已經(jīng)有了非常成熟的業(yè)務(wù)系統(tǒng)。沒有業(yè)務(wù)信息化的支撐,用戶連基本銀行交易都無法實(shí)現(xiàn)。
第二,基礎(chǔ)業(yè)務(wù)信息化實(shí)現(xiàn)的早,就構(gòu)成了對(duì)數(shù)據(jù)分析決策、報(bào)表統(tǒng)計(jì)的大量需求,因此這些領(lǐng)域商業(yè)智能 BI 的建設(shè)也比傳統(tǒng)企業(yè)領(lǐng)先了至少十年時(shí)間。
第三,不同于傳統(tǒng)企業(yè) BI 的分析需求可以從某一個(gè)業(yè)務(wù)領(lǐng)域切入,這些行業(yè)需要一個(gè)整體的、大而全的數(shù)據(jù)標(biāo)準(zhǔn),達(dá)到一個(gè)完整的一致性的數(shù)據(jù)倉(cāng)庫(kù)平臺(tái),這種就很符合 Inmon 的 3NF 建模方法論。
業(yè)務(wù)需要、有錢能投入、數(shù)據(jù)需求這幾個(gè)方面的主要因素就決定了他們選擇 Inmon 建模方法論的合理性。
在過去的兩年我們一直在大批量的面試 BI 開發(fā)人員,可以發(fā)現(xiàn)大部分新進(jìn)入這個(gè)行業(yè)的 BI 開發(fā)人員早期的項(xiàng)目經(jīng)驗(yàn)或培訓(xùn)實(shí)習(xí)經(jīng)驗(yàn)都提到了金融、銀行、保險(xiǎn)等項(xiàng)目經(jīng)驗(yàn)。通過面試反饋,大部分的 BI 開發(fā)人員對(duì)于數(shù)據(jù)倉(cāng)庫(kù)建模了解很有限,日常的主要工作就是從已經(jīng)建好的數(shù)據(jù)倉(cāng)庫(kù)中取數(shù)做報(bào)表開發(fā)。這也從側(cè)面說明了這些行業(yè)的數(shù)據(jù)倉(cāng)庫(kù)成熟度很高,所以他們很少能碰到完整的從零到一開發(fā)數(shù)據(jù)倉(cāng)庫(kù)的機(jī)會(huì)。
我們?cè)賮碚務(wù)?Kimball 建模方法論,Kimball 建模的開發(fā)過程實(shí)際上就與傳統(tǒng)軟件開發(fā)的過程和生命周期相對(duì)一致。
第一,從需求出發(fā),通過需求分析來確認(rèn)分析的數(shù)據(jù)( 指標(biāo) 、度量 )、確認(rèn)分析的角度或者叫看數(shù)據(jù)的角度 ( 維度 )。
第二,通過星型和雪花型建模方式來組織分析模型,進(jìn)行維度建模的設(shè)計(jì)開發(fā)過程。
第三,通過 ETL 過程 ( Extract 抽取、Transformation 轉(zhuǎn)換、Loading 加載 )完成從各個(gè)業(yè)務(wù)系統(tǒng)數(shù)據(jù)源取數(shù)、清洗、格式轉(zhuǎn)換到最終適配模型層數(shù)據(jù)庫(kù)表來實(shí)現(xiàn)數(shù)據(jù)的填充。
第四,根據(jù)項(xiàng)目實(shí)際的需要進(jìn)行 Data Mart 數(shù)據(jù)集市的組織。
第五,分析報(bào)表可以直接從底層 FACT 事實(shí)表,也可以從 Data Mart 數(shù)據(jù)集市完成反向的 SQL 自動(dòng)查詢來呈現(xiàn)數(shù)據(jù)可視化報(bào)表。
Kimball 的數(shù)據(jù)倉(cāng)庫(kù)從數(shù)據(jù)表的建模角度來講,與 Inmon 有幾個(gè)重要不同:
第一,Kimball 的維度建模是反規(guī)范化的,反三范式的,因此會(huì)有大量的數(shù)據(jù)冗余,適合大批量查詢,而非增刪改。
第二,Kimball 從需求端往下推進(jìn),從小業(yè)務(wù)范圍切入逐步擴(kuò)大,在一開始不需要建立大而全的數(shù)據(jù)倉(cāng)庫(kù),只解決特定業(yè)務(wù)領(lǐng)域的分析,取數(shù)范圍從小到大。
第三,Kimball 維度建模的數(shù)據(jù)表架構(gòu)( 星型和雪花型模型 )更容易表達(dá)業(yè)務(wù)分析思維,而不是像 Inmon 主要描述業(yè)務(wù)過程。
我們?cè)谕饷娼?jīng)常聽到大家提 Inmon 和 Kimball 的差別就是自上往下、自下往上,實(shí)際上就是兩端,一端是需求,一端是數(shù)據(jù)。我們的習(xí)慣認(rèn)為需求在上、數(shù)據(jù)在下,所以我們通常會(huì)反過來介紹:Inmon 是自下往上的,而 Kimball 是自上往下的。實(shí)際上什么方向并不重要,這都是一種表達(dá)形勢(shì)。重要的是要真正理解 Inmon 和 Kimball 在商業(yè)智能 BI 項(xiàng)目建設(shè)過程中到底扮演了什么角色,對(duì) BI 實(shí)施方法論有什么影響,對(duì)于企業(yè)和 BI 開發(fā)人員有提出了什么挑戰(zhàn)和要求。
看到這里,大家可能會(huì)有以下幾個(gè)疑問:
第一,Inmon 的建模方法論基本上講明白了,Kimball 建模方法論中的星型和雪花型模型到底是什么 ?
第二,Inmon 在一開始的時(shí)候就集成了大而全的業(yè)務(wù)系統(tǒng)數(shù)據(jù),所以 BI 需要什么數(shù)據(jù)就取什么樣的數(shù)據(jù),這種方式應(yīng)該會(huì)更好一些。但 Kimball 并沒有這樣做,如何在架構(gòu)上保證不斷增進(jìn)的業(yè)務(wù)需求不會(huì)破壞已經(jīng)建好的數(shù)據(jù)倉(cāng)庫(kù)架構(gòu) ?
第三,維度建模的核心到底是什么,維度、事實(shí)在 ETL 中處理流程是什么,如何對(duì)他們組織并進(jìn)行合理的分層 ?
第四,在文章開頭提到的原型設(shè)計(jì)和維度建模有什么樣的關(guān)聯(lián)和聯(lián)系,在實(shí)際業(yè)務(wù)分析需求過程中兩者如何結(jié)合和關(guān)聯(lián) ?
第五,在維度建模過程中,Data Mart 數(shù)據(jù)集市到底應(yīng)該如何定位,在實(shí)際的場(chǎng)景中應(yīng)該如何應(yīng)用 ?
對(duì)于這些疑問,我們不在這里展開,我們會(huì)陸續(xù)通過后續(xù)的文章展開分享,答疑解惑。
最后,我們?nèi)匀粚?shù)據(jù)倉(cāng)庫(kù)架構(gòu)的設(shè)計(jì)置于整個(gè)軟件開發(fā)流程和商業(yè)智能 BI 開發(fā)的流程來看,Kimball 的建模方法論是符合軟件開發(fā)流程和生命周期的。
05
再看軟件開發(fā)與商業(yè)智能 BI 開發(fā)
從大的開發(fā)過程上來看,軟件開發(fā)解決的是業(yè)務(wù)流程的開發(fā),商業(yè)智能 BI 解決的是數(shù)據(jù)分析的開發(fā),本質(zhì)上都是服務(wù)于 IT 信息化,我們可以通過下面的對(duì)比找到很多的對(duì)應(yīng)關(guān)系,這樣對(duì)商業(yè)智能 BI 的理解會(huì)更加容易一些。
可以從開發(fā)環(huán)境、開發(fā)角色、實(shí)現(xiàn)語(yǔ)言、實(shí)現(xiàn)效果等多個(gè)角度來對(duì)比理解:
第一,軟件開發(fā)需要依賴 IDE 工具進(jìn)行開發(fā),商業(yè)智能 BI 開發(fā)同樣需要。比如現(xiàn)在的IDEA,還有筆者早年經(jīng)歷過 Visual Studio、JCreator、JBuilder、NetBeans、Eclipse 等。商業(yè)智能 BI 開發(fā)環(huán)境例如派可數(shù)據(jù) BI 可視化分析平臺(tái),以及國(guó)內(nèi)外其它優(yōu)秀的 BI 產(chǎn)品工具,都是 BI 開發(fā)的 IDE。
所以,很多企業(yè)不能簡(jiǎn)單的認(rèn)為只要買了一個(gè) BI 工具就可以解決所有的問題,它只是一個(gè)工具,在實(shí)際的 BI 項(xiàng)目開發(fā)過程中一樣會(huì)遇到類似于傳統(tǒng)軟件開發(fā)過程中的很多挑戰(zhàn),例如數(shù)據(jù)倉(cāng)庫(kù)的設(shè)計(jì)。
第二,軟件程序開發(fā)人員的角色更為細(xì)分,會(huì)包括 WEB 前端開發(fā)、后端開發(fā)、數(shù)據(jù)庫(kù)設(shè)計(jì)、UI 與測(cè)試等多種角色。而商業(yè)智能 BI 在大多數(shù)情況下開發(fā)人員集數(shù)據(jù)庫(kù)設(shè)計(jì)( 數(shù)據(jù)倉(cāng)庫(kù)設(shè)計(jì) )、ETL 實(shí)現(xiàn) ( BI 系統(tǒng)與底層數(shù)據(jù)的交互 )、報(bào)表開發(fā) ( 前端可視化呈現(xiàn) )為一體的角色。
在商業(yè)智能 BI 領(lǐng)域更加細(xì)分的角色只會(huì)在特別大的項(xiàng)目中出現(xiàn),有專業(yè)的數(shù)據(jù)倉(cāng)庫(kù)架構(gòu)師、ETL 開發(fā)工程師與報(bào)表開發(fā)人員,但傳統(tǒng)上我們提到 BI 開發(fā)人員就一定是一個(gè)全棧的角色。
第三,軟件程序開發(fā)人員和商業(yè)智能 BI 開發(fā)人員都需要通過 IDE 進(jìn)行編程,但開發(fā)語(yǔ)言有很大的不同。例如軟件開發(fā)人員從前端往后端看,有:HTML、CSS、JS、VUE、JQUERY、PHP、JSP、ASP.NET、JAVA、C#.NET、C、C++ 等等。商業(yè)智能 BI 開發(fā)人員主要就是 SQL 語(yǔ)句,再結(jié)合一些存儲(chǔ)過程和 ETL 工具 ( Kettle、Informatica、DataStage、Pentaho )等就可以解決 BI 項(xiàng)目開發(fā)的問題。
05
總結(jié)
通過傳統(tǒng)軟件開發(fā)與商業(yè)智能 BI 的開發(fā)過程對(duì)比,還是可以看到很多能互相映射的地方,對(duì)于企業(yè)的 IT 信息化部門特別是有過傳統(tǒng)軟件開發(fā)和維護(hù)經(jīng)驗(yàn)的管理人員來說,通過這篇文章可以更加清晰的理解商業(yè)智能 BI 在開發(fā)過程中的特點(diǎn),也便于企業(yè)未來商業(yè)智能 BI 項(xiàng)目的規(guī)劃與管理。
而對(duì)于商業(yè)智能 BI 開發(fā)人員來說,也可以通過上述的對(duì)比更加理解商業(yè)智能 BI,以及在與企業(yè)信息化部門、業(yè)務(wù)部門的溝通的過程中尋找更加通俗的表達(dá)方式,利于推進(jìn)商業(yè)智能 BI 的建設(shè),減少必要的工作阻力。
從職業(yè)的發(fā)展角度上來看,有過一定傳統(tǒng)軟件開發(fā)背景的 BI 開發(fā)人員對(duì)于業(yè)務(wù)信息化和數(shù)據(jù)信息化的認(rèn)識(shí)會(huì)相對(duì)深刻一些,特別是經(jīng)歷過傳統(tǒng)軟件底層數(shù)據(jù)庫(kù)設(shè)計(jì)開發(fā)的人員,再?gòu)氖?BI 開發(fā)工作對(duì)于模型的建設(shè)也會(huì)更加有經(jīng)驗(yàn)一些。重點(diǎn)需要轉(zhuǎn)變的只是從業(yè)務(wù)過程解決思維方式到業(yè)務(wù)分析思維方式,這些可以通過努力學(xué)習(xí)和實(shí)際項(xiàng)目沉淀、復(fù)盤總結(jié)來有效提升的。
( 全文完,作者:派可數(shù)據(jù) 呂品,編輯:派小可)
作者介紹:十五年 IT 行業(yè)經(jīng)驗(yàn),從事過大型軟件項(xiàng)目與大型商業(yè)智能 BI 項(xiàng)目規(guī)劃、設(shè)計(jì)、開發(fā)與項(xiàng)目管理。商業(yè)智能 BI 行業(yè)專家,數(shù)據(jù)架構(gòu)師,對(duì)于企業(yè) IT 業(yè)務(wù)信息化和數(shù)據(jù)信息化的建設(shè)有非常深厚的認(rèn)知。如需對(duì)企業(yè) IT 信息化建設(shè)、商業(yè)智能 BI 等相關(guān)話題交流,可通過下方 派小友 聯(lián)系我們。
總結(jié)
以上是生活随笔為你收集整理的er图用什么软件_从软件开发生命周期看商业智能 BI 数据仓库建模的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 台式电脑不拉网线上网_在家里想不拉宽带用
- 下一篇: explain ref_数据库查询优化: