• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
    • 軟件測試技術
    • 軟件測試博客
    • 軟件測試視頻
    • 開源軟件測試技術
    • 軟件測試論壇
    • 軟件測試沙龍
    • 軟件測試資料下載
    • 軟件測試雜志
    • 軟件測試人才招聘
      暫時沒有公告

    字號: | 推薦給好友 上一篇 | 下一篇

    輕量級數據倉庫的實現方法

    發布: 2009-9-29 10:36 | 作者: 不詳 | 來源: 領測軟件測試網 | 查看: 15次 | 進入軟件測試論壇討論

    領測軟件測試網

     3.2 數據倉庫思想 

        數據倉庫中有很多優秀的思想值得軟件設計者和數據庫設計者借鑒。數據倉庫的核心思想之一就是其面向主題的思想。面向主題與面向數據不同,面向主題的粒度要比面向數據的粒度大,面向主題更能反映從人的層面上對數據的理解。主題反映了人對原始數據的第一次加工和對數據所載信息的歸類,這種歸類帶有人們對數據的需求的痕跡。主題因此也構成了需求的主要元素。

        數據倉庫的按照主題歸類主要是通過對數據塊不同層面的切割實現的。數據切割主要包括切片、切塊。切片是一種用來在數據倉庫中將一個維度中的分析空間限制為數據子集的技術。切塊是一種用來在數據倉庫中將多個維度中的分析空間限制為數據子集的技術。大型的連鎖超市、銀行、電信、網絡管理軟件中的數據庫,這些數據庫中的大部分數據有著共同的特性,就是時間的矢量性和多層的地理區域性。時間的矢量性說明數據庫中的時間是單向的遞增的,不會出現時間倒退的紀錄,任何寫入數據庫中的數據的時間都要比數據庫中的最新時間新。多層的地理區域性是指一條數據按照區域的粒度可能屬于某個區、某個市、某個省也可能是地理區域的變形,屬于某個科室、某個部門、某個集團等。在實際的軟件功能中,客戶對數據需求最多的就是對這些數據進行不同層面上的聚合運算包括均值運算、求和運算、極值運算等。對同類數據進行的不同層面上的運算事實上就是對時間或者地理維度的切片或者切塊。其結果構成了新的事實表,這些事實表的集合就構成了該類數據的一個主題。因此數據倉庫是以主題(Subject)為基本組成單位。每個主題包含多個事實表、維表、中間表以及數據立方體,它們在本質上都是一些綜合數據表。軟件和數據庫之間的接口直接從事實表中提取數據,避免了大量的聚合運算,因此可以極大地提高軟件的響應速度,提供給用戶更加友好的操作環境。

        4 系統實現

        數據倉庫是一個龐大的系統,數據倉庫的最終目的是提供決策支持。主要是通過把以前存入數據庫中的數據通過數據挖掘和知識發現發現某種內在規律,比如顧客的喜好、顧客購買商品之間的關聯性等。數據倉庫對于很多企業比如超市連鎖店、電信行業、保險行業有著很好的應用。但是實施這樣一個龐大的工程是昂貴的,動則百萬美金以上。這使很多企業望而卻步。因此這里提出一種輕量級數據倉庫的構建方案。該構建方案汲取了數據倉庫的面向主題的思想,雖然該方案的目標主要是提高軟件的響應速度,但是由于其面向主題的特性也可以為決策層提供支持,而且這種結構良好、面向主題的數據庫系統也可以為以后完整數據倉庫的構建所用,減少構建的復雜度。 

        很多數據庫管理系統提供商比如Microsoft、Sysbase、Oracle都有其構建數據倉庫專門的工具。這些工具由于是為構建數據倉庫而設計,因此結構非常的復雜、對數據庫設計人員的要求比較高,在軟件開發中可實施性比較低。實際上關系型數據庫從提出到現在已有30多年的歷史,關系型數據庫是現在所有數據庫中包括面向對象數據庫、關系型面向對象數據庫發展最為完善的一種。關系型數據庫中的存儲過程、觸發器、發布和訂閱模式有足夠的能力解決上面的問題。因此利用現有的關系型數據庫中這些成熟穩定的工具,就可以構建輕量級的數據倉庫。 輕量級數據倉庫的構建模型如下圖2所示,主要包括如下幾個步驟:數據的清洗,根據需求定制主題集合,定制事實表采集規則,編程接口之實現。

        數據清洗是原始數據進入數據倉庫的第一步。軟件的數據采集器采集到數據庫中的數據可能含有不規則、錯誤的數據,也就是噪聲數據,這些數據數量少,但是可能極大地影響結果的正確性,因此必須清洗掉。數據清洗主要是由數據庫中的規則以及根據業務定義的清洗規則來實現的。數據庫中的規則保證了數據庫中的數據是合乎數據類型的而業務的清洗規則保證了數據庫中的數據是合乎邏輯的。 

        輕量級數據倉庫的第二步就是根據需求定義主題。主題是數據庫中以某個表為基表,以其列集為擴展維度而構成的一系列事實表的集合。事實表的構建規則應該盡可能的和需求相吻合,這樣可以最大程度上減輕software report 從Center DB 提取數據造成的對數據庫的壓力。主題和事實表都是可以擴展的,也是可以重復利用的。事實表可以也作為基表進行擴展新的事實表。 



        第三步就是定義事實表的采集規則。由于Software report 不是直接從DB里面提取數據而是從Center DB中提取數據,因此Center DB中的數據必須能夠實時地反映DB中數據的變化,因此需要定制一定的采集策略。事實表的采集規則這里主要是指采集的頻度策略。不同的事實表對數據的采集頻度有不同的需求,例如按天統計的事實表和按周、月、年統計的事實表采集頻度肯定不相同。事實表采集規則也是主要依靠需求制定的。 最后一步就是所有這些清洗規則,事實表采集規則之實現。既可以通過數據庫數據庫之間的接口實現,也可以通過其他編程接口實現。數據庫與數據庫之間的編程接口主要是通過存儲過程和觸發器以及數據庫之間的發布訂閱模式來實現,F在很多語言包括C,C++,JAVA都和數據庫之間有方便的接口ADO、DAO、ODBC、JDBC,通過這些接口編程人員可以更加靈活的操作數據庫,并對數據庫中的數據進行處理,也可以實現數據清洗、事實表采集規則。 

        5 比較 

        輕量級數據倉庫和企業級數據倉庫相比有如下異同: 企業級數據倉庫主要目標是為企業發展提供決策支持。輕量級數據倉庫主要目標是提高軟件的響應速度。企業級數據倉庫的數據源是海量的,可能是10年的數據也可能是20年的數據。輕量級數據倉庫的數據源要少的多,主要是軟件的數據采集器采集的數據,量級在百萬到千萬級。企業級數據倉庫的數據源是異構的,可能是源于不同的DBMS,也可能是源于不同的存儲介質包括磁帶、磁盤、光盤。輕量級數據倉庫的數據源是同構的,主要是同一種DBMS下的數據。 

        企業級數據倉庫和輕量級數據倉庫的思想是一致的,都是面向主題的,穩定的,一經寫入從不或者很少修改的。企業級數據倉庫和輕量級數據倉庫都是以星型為擴展模式構建的事實表的集合,本質上把頻繁運算的結果集存貯為事實表,從而達到一次運算重復利用的效果。

        6 結論 

        本文描述了輕量級數據倉庫的構建模型及實現方法,并和企業級數據倉庫做了比較。 該模型可運用于網絡管理、電信、銀行、超市等業務管理與統計軟件中。該模型通過時間分攤、事實表的預運算等方法,提高了軟件的響應速度。實驗表明通過基于主題的事實表的構建,百萬級記錄的響應時間有原來的分鐘級降到了1~3秒,達到了提高響應速度的目的。 

        

    文章來源于領測軟件測試網 http://www.kjueaiud.com/

    22/2<12

    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
    北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備2023014753號-2
    技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

    軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>