雙子星座

           

          商業智能研究 (十三) oracle warehouse 一些基本概念

          oracle warehouse 一些基本概念
          先介紹一些基本的概念,為了后面介紹如何在oracle上使用materialized view + dimension 部署foodmart demo 的例子的時候做些背景介紹。

          數據倉庫不同與普通的OLTP 數據模型,它由兩種表組成:事實表(Fact table) , 維度表(Dimension Table)

          Fact table : Fact table 主要儲存用戶實際感興趣的信息的表 . 事實表有多個維表的外鍵 , 事實表的主屬性可以定義成多個外鍵的集合 . 事實表的從屬性稱為事實(Fact)或者叫度量(Measure) ,它們一般都是數值或其他可以進行計算的數據.

          Dimension table : Dimension table 就是我們需要分析的主題了,它主要表現層次結構,分類信息,比如Time,Product,
          Customer,location ,dimension table 有時候又叫做lookup 或reference 表,dimension table  一般隨ETL過程緩慢的變化而變化的.它一般比較小,但是卻決定了數據庫的性能,因為我們要在fact table 和dimension table 做多種join 操作.

          Star Schemas
          星形模型之所以被稱作星形模型是因為它是由中心的一個或者多個事實表周圍圍繞一組維表組成。



          materialized view
          在oracle中,materialized view 是一個預先計算的,從fact table 和dimension table 做的聚合操作(不一定只有sum操作),view 是不儲存數據的,但是materialized view 是存儲數據的,它是oracle構建數據倉庫最重要的技術之一,主要是為了解決性能的問題,就象MOLAP 系統預先計算的cube 是一樣的.

          dimension
          dimension 是建立在dimension table 是上的,它只是一個概念的定義,主要定義level,category 的信息,它實際并不存儲任何的數據,數據仍然是在dimension table中的,dimension 主要是為了配合materialized view 來解釋數據的層次關系,也是為了解決性能問題的.

          為了在oracle中使用materialized view ,用戶必須有create materialized view 的權限.
          為了使materialized viwe 發揮作用,兩個參數必須先定義:
          QUERY_REWRITE_ENABLED=TRUE;
          QUERY_REWRITE_INTEGRITY=TRUSTED;
          materialized view 主要可以減少物理的讀寫次數,減少CPU的計算時間,提高響應速度.但它也會占用更多的磁盤空間,包括materialized view 和它的index.

          關于如何構建高性能的數據倉庫,ningoo 在 http://www.ningoo.net/2007/05/21/data_warehouse_guide_notes.htm 上也有一篇文章講解了在oracle上構建數據倉庫的性能優化技巧,包括
          1 . RELY constraint
          2 . bitmap index 和 Bitmap join index
          3 . Unique constraint & unique index 的 disable validate
          4 . Partition table

          大家可以到ningoo 的網站上去看看.另外還有三篇關于oracle datawarehouse 的文章,關于materialized view 和 dimension的例子,大家可以到
          http://www.akadia.com/services/ora_materialized_views.html      介紹materialized view
          http://www.akadia.com/services/ora_dimensions.html              介紹一個dimension + materialized view
          http://www.akadia.com/services/ora_olap_dimensions.html         介紹兩個跨表的dimension + materialized view
          上面的三篇文章都寫的非常的通俗易懂,而且它提供的腳本可以很容易的運行例子,是很好的oracle warehouse 文章,推薦大家看看.

          還有些procedure 用來驗證dimension的數據是否有效的在
          http://www.stanford.edu/dept/itss/docs/oracle/10g/appdev.101/b10802/d_dimens.htm

          EXEC dbms_utility.analyze_schema(' your db name ','COMPUTE');
          EXEC dbms_olap.validate_dimension(' dimension name ',' db name ',FALSE,TRUE);
          SELECT * FROM mview$_exceptions;

          下篇介紹在oracle上部署mondrian 的 foodmart demo
          .

          如果有哪位朋友可以推薦一下武漢的公司,最好是小一點的公司(大公司估計自己水品有限),如果有需要J2EE開發方向的工作職位的話,推薦一下, 
          jj12tt@yahoo.com.cn ,先謝謝了.



          posted on 2007-06-09 21:54 gemini 閱讀(622) 評論(0)  編輯  收藏


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           

          導航

          統計

          常用鏈接

          留言簿(3)

          隨筆檔案

          相冊

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 峡江县| 浦北县| 万荣县| 营山县| 巴东县| 广安市| 图木舒克市| 高雄市| 监利县| 邛崃市| 陈巴尔虎旗| 荆门市| 永丰县| 云梦县| 通许县| 邹城市| 湘潭县| 南安市| 绥芬河市| 淮南市| 新竹县| 格尔木市| 普定县| 于都县| 合水县| 岳阳市| 乌拉特前旗| 和田市| 都江堰市| 寿宁县| 拉萨市| 乌兰察布市| 平凉市| 罗源县| 六盘水市| 阜康市| 昔阳县| 永新县| 荣成市| 平潭县| 湖北省|