引子
年底這兩個月阿里雲的dataworks進行了全面升級,很多細節有了不小的變化,感覺結構更加清晰了。
例如建表這個頁面:
現在可以在這裏配置數據倉庫表的層級,主題層級比較好理解,就是主題表的分類。而下邊的物理層級應該就是指ODS,DM,DW這類分級,物理分類沒有太理解,會在後邊進行補充。
下面是基於這個管理界面補充一下數據模型的相關知識。
數據模型
數據模型是指實體、屬性、實體之間的關係對業務概念和邏輯規則進行統一的定義,命名和編碼,主要描述企業的信息需求和業務規則,是業務人員和開發人員溝通的語言,是數據倉庫設計工作的第一步。數據模型可以劃分爲概念模型、邏輯模型、物理模型。
概念模型
從定義上來說,概念模型是最高層次的數據模型,反映了數據倉庫的主要主題和重要業務之間的關係。一般來說,在進行數據倉庫系統設計和開發之前,設計開發人員和業務人員已經對概念模型達成了共識,因爲概念模型反映的是核心的業務問題。概念模型設計步驟如下:
從業務需求中提取重要的業務數據主題,包括對業務數據主題的詳細解釋;
從業務數據主題的基礎上進行數據主題域的劃分,包括對數據主題域的詳細解釋;
劃分主題域概念模型:根據數據主題域的劃分,細化內部的組織結構和業務關係。
概念模型建模的流程大致可以劃分成如下幾個部分:通過對業務系統的詳細說明,進行數據的梳理,列出數據主題詳細的清單,並對每個數據主題都作出詳細的解釋,然後經過歸納、分類,整理成各個數據主題域,列出每個數據主題域包含哪些部分,並對每個數據主題域作出詳細解釋,最後劃分成主題域概念模型。
邏輯模型
從定義上講,邏輯模型是以概念模型爲基礎,對概念模型的進一步細化、分解。邏輯模型通過實體和實體之間的關係描述業務的需求和系統實現的技術領域,是業務需求人員和技術人員溝通的橋樑和平臺。 邏輯模型的設計是數據倉庫實施中最重要的一步,因爲他直接反應了業務部門的實際需求和業務規則,同時對物理模型的設計和實現具有指導作用。他的特點就是通過實體和實體之間的關係勾勒出整個企業的數據藍圖和規則。 概念模型的主題域一般是從企業現有的信息系統和行業自身業務活動彙總的來的業務模型主題域。而邏輯模型除了在概念模型的基礎上豐富和細化主題域,並且確定每個主題域包含哪些主題外,還需要:
分析需求,列出需求分析的主題,需求目標、維度指標、維度層次、分析的指標、分析的方法、數據的來源、關注的對象等。
選擇用戶感興趣的數據,通過業務需求將需要分析的指標分離抽取出來,轉化成邏輯模型需要的實體。
在實體中需要增加時間戳屬性,因爲實體中需要保存哥哥階段的歷史數據。通常情況下,如果實體爲同一編碼,則不需要增加時間戳屬性。
需要考慮粒度層次的劃分。數據倉庫的粒度層次劃分直接影響了數據倉庫模型的設計,通常細粒度的數據模型直接從企業模型選取實體作爲邏輯模型的實體,而粗粒度的數據模型需要經過彙總計算得到相應的實體。粒度決定了企業數據倉庫的實現方式、性能、靈活性和數據倉庫的數據量。
在粒度層次劃分的基礎上,還需要進行關係模式的定義,形成各個實體、實體屬性、實體之間的關係等內容。同時在邏輯模型框架的基礎上對實體的中英文名稱、屬性、屬性的值域進行明確、完善和細化,真實反映業務邏輯關係和業務規則。
物理模型
在邏輯模型的基礎上,爲應用生產環境選取一個合適的物理結構的過程,包括合適的存儲結構和存儲方法,稱作物理模型的設計過程。邏輯模型轉變爲物理模型包括以下幾個步驟:
- 實體名(Entity)變爲表名(table)
- 屬性名(attribute)轉換爲列名(column),確定列的屬性(Property)
- 物理模型必須對列的屬性進行明確的定義,包括:列名、數據類型
- 物理模型確定後,還可以進一步確定數據存放位置和存儲空間的分配。
數據倉庫數據模型設計順序
- 概念模型設計(業務模型):界定系統邊界;確定主要的主題域及其內容;
- 邏輯模型設計:維度建模方法(事實表、維度表);以星型和雪花型來組織數據;
- 物理模型設計:將數據倉庫的邏輯模型物理化到數據庫的過程;
概念模型、邏輯模型和物理模型的區別
- 概念模型設計(業務模型):
- 最高層次的數據模型
- 定義重要的業務概念和關係
- 包含核心的數據主題和主題間的業務關係
- 邏輯模型設計:
- 概念模型的進一步細化
- 一般遵循第三範式
- 描述實體、屬性及其關係
- 物理模型設計:
- 描述模型實體的細節
- 對列的屬性進行明確的定義