一
何為建模?
資料幾乎總是用於兩種目的:操作型記錄的儲存和分析型決策的制定。簡單來說,操作型系統儲存資料,分型型系統使用資料。前者一般僅反映資料的最新狀態,按單條記錄事務性來處理;其優化的核心是更快地處理事務。後者往往是反映資料一段時間的狀態變化,按大批量方式處理資料;其核心是高效能、多維度處理資料。通常我們將操作型系統簡稱為oltp(on-line transaction processing)— 聯機事務處理,將分析型系統簡稱為olap(on-line analytical processing)— 聯機分析處理。
針對這兩種不同的資料用途,如何組織資料,更好地滿足資料使用需求。這裡就涉及到資料建模問題。即設計一種資料組織方式(模型),來滿足不同場景。在oltp場景中,常用的是使用實體關係模型(er)來儲存,從而在事務處理中解決資料的冗餘和一致性問題。在olap場景中,有多種建模方式有:er模型、星型模型和多維模型。下面分別說明下:
在這三種方式中,星型模型使用較多,下面也著重對這種方式進行說明。
二維度建模
2.1基本概念
在建模過程中,涉及到很多概念。下面通過乙個場景來,來說明它們。例如:常見的電商下單環節,每個使用者提交一筆訂單(僅限乙個物品),就對應於一條訂單記錄。
【業務過程】:下訂單
【粒度】:每筆訂單(拆分為單個物品)
【維度】:地域、年齡、渠道等(可供分析的角度)
【事實/度量】:訂單金額等(可用於分析的資料)
2.2建模步驟
在開始維度建模工作之前,需要理解業務需求,以及作為底層源資料的實際情況。通過與業務方溝通交流、檢視現有報表等來發現需求,用於理解他們的基於關鍵效能指標、競爭性商業問題、決策制定過程、支援分析需求的目標。同時,資料實際情況可通過與資料庫系統專家交流,了解訪問資料可行性等。
業務過程是組織完成的操作型活動。業務過程時間建立或獲取效能度量,並轉換為事實表中的事實。多數事實表關注某一業務過程的結果。過程的選擇非常重要的,因為過程定義了特定的設計目標以及對粒度、維度、事實的定義。
宣告粒度是維度設計的重要步驟。粒度用於確定某一事實表中的行表示什麼。在選擇維度或事實前必須宣告粒度,因為每個候選維度或事實必須與定義的粒度保持一致。在從給定的業務過程獲取資料時,原子粒度是最低級別的粒度。強烈建議從關注原子級別粒度資料開始設計,因為原子粒度資料能夠承受無法預期的使用者查詢。
維度提供圍繞某一業務過程事件所涉及的"誰、什麼、何處、何時、為什麼、如何"等背景。維度表包含分析應用所需要的用於過濾及分類事實的描述性屬性。牢牢掌握事實表的粒度,就能夠將所有可能存在的維度區分開來。
事實,涉及來自業務過程事件的度量,基本上都是以資料值表示。乙個事實錶行與按照事實表粒度描述的度量事件之間存在一對一關係,因此事實表對應乙個物理可觀察的事件。在事實表內,所有事實只允許與宣告的粒度保持一致。
選擇一種維度模型的落地方式。既可以選擇星型模型,部署在關聯式資料庫上,通過事實表及通過主外來鍵關聯的維度表;也可以選擇多維模型,落地於多維資料庫中。
2.3建模規範
以維度建模為理論基礎,定義一系列術語來描述建模物件。下圖摘自於《阿里巴巴大資料實踐之路》。
指企業的業務活動事件,如下單、支付、退款都是業務過程。請注意,業務過程是乙個不可拆分的行為事件,通俗地講,業務過程就是企業活動中的事件。
用來明確資料統計的時間範圍或者時間點,如最近30天、自然周、截至當日等。
是對修飾詞的一種抽象劃分,是從屬於某個業務域的。
指除了統計維度以外指標的業務場景限定抽象。修飾詞隸屬於一種修飾型別。
原子指標和度量含義相同,基於某一業務事件行為下的度量,是業務定義中不可再拆分的指標,具有明確業務含義的名詞,如支付金額。
維度是度量的環境,用來反映業務的一類屬性,這類屬性的集合構成乙個維度,也可以稱為實體物件。維度屬於乙個資料域,如地理維度(其中包擠國家、地區、省以及城市等級別的內容)、時間維度(其中包括年、季、月、周、日等級別的內容)。
維度屬性隸屬於乙個維度,如地理維度裡面的國家名稱、國家id、省份名稱等都屬於維度屬性。
派生指標=乙個原子指標+多個修飾詞(可選)+時間週期。可以理解為對原子指標業務統計範圍的圈定。
三設計要點
3.1維度表設計
維度是維度建模的基礎和靈魂。在維度建模中,將度量稱為"事實",將環境描述為"維度",維度是用於分析事實所需要的多樣環境。維度所包含的表示維度的列,稱為維度屬性。維度屬性是查詢約束條件、分組和報表標籤生成的基本**,是資料易用性的關鍵。維度的作用一般是查詢約束、分類彙總以及排序等。維度的設計過程就是確定維度屬性的過程,如何生成維度屬性,以及所生成的維度屬性的優劣,決定了維度使用的方便性,成為資料倉儲易用性的關鍵。正如kimball所說的,資料倉儲的能力直接與維度屬性的質量和深度成正比。
在整個設計過程中,應當遵循下面一些原則:
3.2事實表設計
事實表作為資料倉儲維度建模的核心,緊緊圍繞著業務過程來設計,通過獲取描述業務過程的度量來表達業務過程,包含了引用的維度和與業務過程有關的度量。在設計過程中,可以選擇不同型別的事實表,它們有各自的適用場景。
維度建模 資料倉儲初步
分類目錄 商業智慧型 維度建模 總目錄 本文是 維度建模 後續文章的基礎。我們首先從巨集觀層面上考察資料倉儲和商業智慧型 data warehousing and business intelligence,dw bi 系統。dw bi系統首先應該仔細考慮的問題是業務需求。維度建模 系列文章將緊緊抓...
資料倉儲 建模
粒度概述 粒度問題時設計資料倉儲的乙個最重要方面。粒度時指資料倉儲的資料單位中儲存資料的細化或綜合成都的級別。細化程度越高,粒度就越小 相反,細化程度越低,粒度級就越大。資料的粒度一直時乙個設計問題。資料倉儲環境中粒度之所以時主要的設計問題,是因為它深深地影響存放在資料倉儲中的資料量的大小。同時影響...
資料倉儲建模
一 資料倉儲建模的意義 如果把資料看作圖書館裡的書,我們希望看到它們在書架上分門別類地放置 如果把資料看作城市的建築,我們希望城市規劃布局合理 如果把資料看作電腦檔案和資料夾,我們希望按照自己的習慣有很好的資料夾組織方式,而不是糟糕混亂的桌面,經常為找乙個檔案而不知所措。資料模型就是資料組織和儲存方...