BIEE建模参考规范
注:本文基于網上盛傳的“BIEE建模黃金法則”,并做了更為細致的講解,以及修改。
物理層
1、??在可能的情況下,配置你的連接池使用本地驅動來連接物理數據庫。例如,使用OCI而不是ODBC來連接Oracle數據庫
2、??當數據模型是星型時,為物理表建別名(以Dim_,Fact_作為前綴),并根據需要添加描述性后綴。
例如:在數據倉庫中,我們有一張W_STATUS_D字典表用于存儲各種事務狀態(活動狀態、合同狀態、客戶狀態),那我們應該為不同的狀態類別創建相應的別名表,如:
Dim_W_STATUS_D_Activity_Status
Dim_W_STATUS_D_Contact_Status
Dim_W_STATUS_D_Customer_Status
?
描述名稱部分應該按每個單詞首字母大寫的方式(如果是英文名稱)
?
Tips:為什么要這樣做?這樣看起來更為復雜,但是實際上會使邏輯更為清晰,通過在邏輯層對不同的表添加不同的過濾條件,使得最終每張邏輯表只包含所對應的狀態值,那我們在Answer中使用的時候就不必進行過濾了。
?
另外,通過建立別名,我們可以避免在物理層出現環狀連接關系;更為重要的是,我們可以通過建立別名來實現角色扮演維!
?
3、??盡量避免視圖的使用,視圖有可能會帶來性能問題。(除非你非常熟悉視圖合并的原理)
4、??為初始化塊建立單獨的連接池,而不要使用第一個連接池(從上到下)。因為查詢使用的是第一個連接池,當已有查詢用盡了連接池的所有連接時,如果此時新用戶登錄需要初始化會話變量,就會因為沒有可用的連接而等待,進而造成用戶登錄緩慢。(這也是為什么BIEE 11g默認情況下不能將第一個連接池用于初始化塊的原因,這不是最佳實踐!)
?
邏輯層
1、命名規范
方案一:所有的邏輯表都應該以Dim -,Fact –開頭,中間跟業務主題或者模塊名(可選),最后是表名,例如:
Fact - CRM – Revenue
Fact - HR – Payroll
Dim – Agreement
?
方案二:所有的邏輯表以F+編號,D+編號為前綴,然后空一格跟表描述;另外維度以H+編號為前綴,然后空一格跟維度描述;例如:
F0 Sales Base Measures
D0 Time
H1 Products
此種方案主要是為了控制表的排列順序
?
另外,所有的描述名稱部分應該按每個單詞首字母大寫加空格分隔的方式(如果是英文名稱)
?
2、所有的物理層的列名稱都不應該出現在邏輯層。邏輯的命名必須是“面向業務”的。例如使用Revenue而不是DOLLARS,同樣應該遵循每個單詞首字母大寫加空格分隔的方式
下面給出一些常見的命名方式:
關于數量的:?# of Assets (一般其聚合規則為count或者?count distinct的)
百分比的:?% Contacted
時間序列的:Quarter Ago Average Order Size
另外,同一張事實表中的指標應該按類別進行排列,并添加分隔符(添加邏輯字段,修改其名稱),如下圖所示:
?
還可以通過設置不同的圖標來標識不同類別指標,如下圖所示:
計算器圖標的是派生指標、其它的是普通指標。
?
3、物理主鍵和代理鍵不應該出現在業務模型層。
4、維度邏輯表必須要指定邏輯鍵。這個邏輯健應該是面向業務的,比如應該是“Employee Login”而不是“EMPLOYEE_PK”。
5、維度邏輯表必須僅僅包含維度屬性,他們永遠不應該包含任何度量列(有聚合規則)
Tips:如果需要在維度上做計算,如“天數”,則應將該維表為LTS建立事實表,比較常見的就是“時間事實表”
5、??事實邏輯表不應該指定邏輯鍵。
6、??在事實邏輯表中,每一列都是度量列,同時要指定聚合規則。
Tips:對應事實表上的屬性字段,比如退化維,則應該以該事實表為LTS建立相應的邏輯維表
7、業務模型應該僅包含邏輯星型,不應該是雪花型。
注意:這里說的是邏輯星型,物理上有可能是雪花型。通過設置多LTS我們總能把雪花轉換為邏輯星型
7、??每一個維度邏輯表都應該有對應的維度層次。
8、??每一個維度層級都設置適當的元素個數。一般要指定子層級的要比父層級的元素個數多。
注意:元素個數不需要精確,只要比例合適即可。另外可以使用“估計級別”功能自動來填寫該值。
9、不要將所有度量合并到單獨的一個事實邏輯表。例如,你應該將“Forecast Sales”和“Actual Sales”度量放到兩個邏輯表中---“Fact_Sales”和“Fact_Forecast”
?
?
展現層
1、??主題應該按照業務進行劃分,比如銷售、采購、庫存
2、??當你有多個主題區域時,在每個主題區域以相同的順序列出這些公用的維度
3、??展示層的表的名字不要以Dim或Fact開頭了。如果主題區域中的表是直接從邏輯層拖過來的話,要移除該前綴。
4、??時間維度表列在每一個主題區域的第一個位置。包含事實的展現層表應該列在底部,同時展現表應該被稱作Facts,并可以根據需要劃分成不同類別的事實,如Base Facts、Calculated Facts,然后做成層結構。如下圖所示:
?
?
?
4、絕不應該出現用戶從主題區域中選取的對象沒有邏輯關聯。如果有任何從同一主題區域中選擇的對象無法共存,那么一定是你的主題區域設計不正確。
轉載于:https://www.cnblogs.com/tdskee/p/6093354.html
總結
以上是生活随笔為你收集整理的BIEE建模参考规范的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [设计模式]8. C++与中介者模式(m
- 下一篇: flex属性值----弹性盒子布局