Data Warehouse Guide文件筆記(四):dimension
發表於: 2006.10.22 23:13
分類: DW&BI
出處: http://ningoo.itpub.net/post/2149/223164
---------------------------------------------------------------[@more@]
要理解oracle中的dimension,首先要搞清楚dimension和dimension table之間的區別。dimension table是table,和關聯式資料庫中的其他table一樣,存放資料,需要實際的儲存空間。而dimension則只是一個邏輯結構,定義了dimension table中的一個列或一組列於其他列之間的一個層次關係,dimension只儲存定義,可以將其理解為一種特定的constraint。所以,dimension不是一種必須存在的結構,但是,建立dimension對於資料倉儲中一些複雜的查詢重寫有著相當重要的意義。而查詢重寫,則是資料倉儲效能最佳化的一個不二法門。
資料倉儲中由於資料量巨大,一些聚合計算等操作往往透過物化檢視預先計算儲存。但是,不可能對所有維度的所有可能的聚合操作都建立物化檢視,一則空間不允許,二則重新整理時間也不允許。那麼,在對某些聚合操作的sql進行查詢重寫時,就希望能利用已經存在的物化檢視,儘管他們的聚合操作條件不完全一致。而dimension定義的各個level之間的層次關係,對於一些上卷(rolling up)和下鑽(drilling down)操作的查詢重寫的判斷是相當重要的,而dimension中定義的attributes對於使用不同的列來做分組的查詢重寫起作用。
一個典型的dimension定義如下:
CREATE DIMENSION products_dim
LEVEL product IS (products.prod_id)
LEVEL subcategory IS (products.prod_subcategory)
LEVEL category IS (products.prod_category)
HIERARCHY prod_rollup (
product CHILD OF
subcategory CHILD OF
category
)
ATTRIBUTE product_info LEVEL product DETERMINES
(products.prod_name, products.prod_desc,
prod_weight_class, prod_unit_of_measure,
prod_pack_size, prod_status, prod_list_price, prod_min_price)
ATTRIBUTE subcategory DETERMINES
(prod_subcategory, prod_subcategory_desc)
ATTRIBUTE category DETERMINES
(prod_category, prod_category_desc);
dimension中三個重要的屬性:level,hierarchy,attribute。其中level定義了一個或一組列為一個整體,而hierarchy則定義了各個level之間的層次關係,父level和子level之間是一種1:N的關係,而且,在dimension中可以指定多個hierarchy層次關係。attribute則定義了level和其他列的一個1:1的關係,但這種1:1的關係不一定是可逆的,比如上面的列子,根據product_info,也就是prod_id,可以確定prod_name,但不一定要求prod_name就能確定prod_id。
而且,各個level之間的列不一定要來自同一個table,對於雪花模型,dimension table可能被規範化為許多的小表,則dimension中的level可能是來自不同表中的列。這是需要在dimension中指定join key來指出各個表之間的關聯列。例如:
CREATE DIMENSION customers_dim
LEVEL customer IS (customers.cust_id)
LEVEL city IS (customers.cust_city)
LEVEL state IS (customers.cust_state_province)
LEVEL country IS (countries.country_id)
LEVEL subregion IS (countries.country_subregion)
LEVEL region IS (countries.country_region)
HIERARCHY geog_rollup (
customer CHILD OF
city CHILD OF
state CHILD OF
country CHILD OF
subregion CHILD OF
region
JOIN KEY (customers.country_id) REFERENCES country);
如果不指定skip when null子句,每個level中都不允許出現null值。
透過dbms_dimension.describe_dimension可以檢視dimension的定義。
透過dbms_dimension.validate_dimension可以檢查dimension是否定義正確,在執行之前需要執行ultdim.sql建立一個dimension_exceptions表,如果定義有誤,則會在dimension_exceptions中查到相應的記錄。在9i裡,validate_dimension在dbms_olap包中。
關於dimension, AskTom上有個問題寫得比較詳盡,值得仔細研究,。
(需要引用, 請註明出處: http://ningoo.itpub.net)
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/82387/viewspace-1017042/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- The Data Warehouse Toolkit 閱讀筆記筆記
- 《Data Warehouse in Action》
- PostgreSQL DBA(181) - Using PostgreSQL as a Data WarehouseSQL
- 2.3.1.1.3 Application Containers Use Case: Logical Data WarehouseAPPAI
- Oracle GoldenGate 11g官方文件Administrator’s Guide續四OracleGoGUIIDE
- Streaming Data Warehouse 儲存:需求與架構架構
- CSS: The Definitive Guide 4th 筆記CSSGUIIDE筆記
- ES 筆記四:文件的基本 CRUD 與批量操作筆記
- InnoDB文件筆記(一)筆記
- Unity IMGUI 文件筆記UnityGUI筆記
- 林軒田機器學習基石課程學習筆記7 — The VC Dimension機器學習筆記
- R語言data manipulation學習筆記之subset dataR語言筆記
- RUST 筆記(四)Rust筆記
- 《webpack文件》學習筆記Web筆記
- Oracle GoldenGate 11g官方文件Administrator’s GuideOracleGoGUIIDE
- InnoDB文件筆記(二)—— Redo Log筆記
- InnoDB文件筆記(三)—— Undo Log筆記
- Spring Data JDBC參考文件SpringJDBC
- Oracle GoldenGate 11g官方文件Administrator’s Guide續二OracleGoGUIIDE
- Oracle GoldenGate 11g官方文件Administrator’s Guide續一OracleGoGUIIDE
- Oracle GoldenGate 11g官方文件Administrator’s Guide續三OracleGoGUIIDE
- springboot 學習筆記(四)Spring Boot筆記
- goLang學習筆記(四)Golang筆記
- TS學習筆記(四)筆記
- ONNXRuntime學習筆記(四)筆記
- Spring筆記(四)整合MybatisSpring筆記MyBatis
- React Router文件閱讀筆記(上)React筆記
- 資料倉儲Build The Data Warehouse(William H.Inmon)學習筆記 --- 第八章、外部資料/非結構化資料與資料倉儲UI筆記
- Spring Data JPA 參考文件三Spring
- Spring Data JDBC參考文件 三SpringJDBC
- SpringBoot文件之IO的閱讀筆記Spring Boot筆記
- SpringBoot文件之Web的閱讀筆記Spring BootWeb筆記
- SpringBoot文件之Developing的閱讀筆記Spring Bootdev筆記
- SpringBoot文件之SpringApplication的閱讀筆記Spring BootAPP筆記
- SpringBoot文件之Profiles的閱讀筆記Spring Boot筆記
- 【筆記】jQuery原始碼(文件處理3)筆記jQuery原始碼
- activiti學習筆記(四)managementService筆記
- 四元數 學習筆記筆記
- 刷前端面經筆記(四)前端筆記