<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    void

    基于查詢的改進數(shù)據(jù)倉庫模型研究

    轉(zhuǎn)載至:
    http://www.ciotimes.com/infrastructure/database/a/database200909161049.html


    導讀:
    本文提出一種改進的數(shù)據(jù)倉庫體系結(jié)構,在數(shù)據(jù)倉庫中添加一個輔助結(jié)構作為接收和存儲更新數(shù)據(jù)的暫存庫,直到數(shù)據(jù)倉庫獲得空閑周期,加入新的數(shù)據(jù)和更新必要的視圖;通過試驗模擬兩種數(shù)據(jù)倉庫結(jié)構,驗證了新的模型在設計和性能上的優(yōu)越性。 



        本文提出一種改進的數(shù)據(jù)倉庫體系結(jié)構,在數(shù)據(jù)倉庫中添加一個輔助結(jié)構作為接收和存儲更新數(shù)據(jù)的暫存庫,直到數(shù)據(jù)倉庫獲得空閑周期,加入新的數(shù)據(jù)和更新必要的視圖;通過試驗模擬兩種數(shù)據(jù)倉庫結(jié)構,驗證了新的模型在設計和性能上的優(yōu)越性。

        數(shù)據(jù)倉庫中的數(shù)據(jù)是從多業(yè)務處理系統(tǒng)中抽取轉(zhuǎn)換而來的,這些數(shù)據(jù)源的數(shù)據(jù)是不斷變化的。因此,數(shù)據(jù)倉庫需要更新機制來不斷更新和維護,以保證數(shù)據(jù)的完整和正確。同時,數(shù)據(jù)倉庫面向決策支持,數(shù)據(jù)倉庫的體系結(jié)構應努力保證查詢和分析的實時性。

        現(xiàn)在系統(tǒng)越來越龐大,數(shù)據(jù)源越來越多,結(jié)構也越來越復雜,這使得數(shù)據(jù)倉庫的加載和更新維護工作更加困難,制定一個數(shù)據(jù)集成的計劃花費的時間和精力也是越來越多。面對這種情況,開發(fā)人員的精力被調(diào)度繁雜的系統(tǒng)所占用,無法集中到制定合理高效的數(shù)據(jù)集成計劃上來。為了使這一過程更加自動化,減少人工干預,我們引入了基于元數(shù)據(jù)庫的工作流方法,使得整個數(shù)據(jù)倉庫更新處理過程成為一個整體,更加簡單易行,減輕了開發(fā)人員的負擔,從而提高效率。

        1 數(shù)據(jù)倉庫的更新問題

        為了對決策提供有效的支持,數(shù)據(jù)倉庫中的數(shù)據(jù)需要不斷地從業(yè)務數(shù)據(jù)庫中得到更新。數(shù)據(jù)更新是指在原有數(shù)據(jù)倉庫基礎上,定期捕捉源數(shù)據(jù)庫的變化數(shù)據(jù),追加到數(shù)據(jù)倉庫中。數(shù)據(jù)倉庫獲得所需更新信息的方法有以下3種:

        (1)由建立在源數(shù)據(jù)庫上的應用程序提供更新信息給數(shù)據(jù)倉庫。這種方法優(yōu)點是易于執(zhí)行,只要對歷史遺留系統(tǒng)的代碼稍加修改,使它提供源數(shù)據(jù)庫中的更新給數(shù)據(jù)倉庫。缺點是遺留系統(tǒng)的代碼難以提供一個好的平臺為數(shù)據(jù)倉庫更新。

        (2)利用日志文件。這種方法的優(yōu)點是對數(shù)據(jù)倉庫的更新不會影響源數(shù)據(jù)庫,利用日志文件效率很高,避免了掃描整個數(shù)據(jù)庫。缺點是解析源數(shù)據(jù)庫日志文件有困難,即:①系統(tǒng)日志文件通常采用軟件供應商專有的形式,而不同供應商之間難于共享結(jié)構信息;②獲得日志文件,需要系統(tǒng)管理員權限;③數(shù)據(jù)庫系統(tǒng)不一定都有實施該方法的數(shù)據(jù)庫日志類型。

        (3)前后映象文件的方法。在抽取數(shù)據(jù)前后對數(shù)據(jù)庫各作一次快照,然后比較兩幅快照的不同從而確定新數(shù)據(jù)。這種方法的優(yōu)點和第2種方法一樣,快照數(shù)據(jù)被提供給數(shù)據(jù)倉庫,或者提供給獨立于源數(shù)據(jù)庫和數(shù)據(jù)倉庫的輔助處理器,來完成快照的比較工作。缺點是快照文件會變得越來越大,導致快照的比較工作非常耗時,占用大量資源,影響性能。數(shù)據(jù)倉庫更新過程牽涉的因素眾多而且復雜,因此,本文的研究只限于源數(shù)據(jù)已經(jīng)傳遞到數(shù)據(jù)倉庫后的數(shù)據(jù)更新處理。

        2 改進的數(shù)據(jù)倉庫體系結(jié)構

        常用的數(shù)據(jù)倉庫體系結(jié)構如圖1所示,它集成源數(shù)據(jù)庫的數(shù)據(jù),并將其存儲在數(shù)據(jù)倉庫中,用戶直接從數(shù)據(jù)倉庫訪問數(shù)據(jù)。這個結(jié)構簡單易行,但它不能及時地自動偵測源數(shù)據(jù)庫的更新,只有當高端應用對數(shù)據(jù)倉庫進行查詢時,才由數(shù)據(jù)倉庫的實體化視圖對相關的源數(shù)據(jù)庫發(fā)動查詢,源數(shù)據(jù)庫對更新處理處于被動狀態(tài)。本文建議在數(shù)據(jù)倉庫體系結(jié)構中添加一個如圖2所示的更新輔助結(jié)構,來優(yōu)化數(shù)據(jù)倉庫的性能,減少用戶查詢時間。該結(jié)構假定為非易失隨機存儲器NVRAM,用它作為數(shù)據(jù)倉庫和數(shù)據(jù)解釋器之間的緩沖存儲區(qū)。輔助結(jié)構和源數(shù)據(jù)庫(SDB)之間的數(shù)據(jù)流是單向的,負責接收由SDB提交到數(shù)據(jù)解釋器的更新數(shù)據(jù)。輔助結(jié)構和數(shù)據(jù)倉庫之間的數(shù)據(jù)流是雙向的,它向數(shù)據(jù)倉庫提供視圖維護的基本數(shù)據(jù),數(shù)據(jù)倉庫的查詢和維護請求則在輔助結(jié)構中執(zhí)行完成。有了這個輔助結(jié)構,避免了數(shù)據(jù)倉庫在接收數(shù)據(jù)解釋器中數(shù)據(jù)的同時,對數(shù)據(jù)庫表和用戶視圖執(zhí)行更新維護。使得數(shù)據(jù)倉庫的更新選擇在系統(tǒng)空閑時間,而不是在新數(shù)據(jù)由源數(shù)據(jù)庫轉(zhuǎn)換的同時進行。數(shù)據(jù)倉庫使用具有周期性,因此必然存在接收更新數(shù)據(jù)的空閑時間。另外數(shù)據(jù)倉庫可以查詢輔助結(jié)構獲取更新數(shù)據(jù),反饋給用戶的查詢。為了防止輔助結(jié)構中數(shù)據(jù)溢出,設一個機制強制執(zhí)行更新事務,將有關數(shù)據(jù)傳送到數(shù)據(jù)倉庫。

    圖1 標準數(shù)據(jù)庫倉庫模型
        圖1 標準數(shù)據(jù)庫倉庫模型
    圖2 數(shù)據(jù)倉庫的改進模型
        圖2 數(shù)據(jù)倉庫的改進模型



        3 改進模型的設計實現(xiàn)


        新模型結(jié)構重點在于用戶查詢,系統(tǒng)對用戶查詢響應擁有對系統(tǒng)其他進程更高的優(yōu)先權。

        (1)功能結(jié)構。來自數(shù)據(jù)解釋器的數(shù)據(jù),首先存放在更新輔助結(jié)構的數(shù)據(jù)表中。這些輔助表(例如索引)是存儲在數(shù)據(jù)倉庫中的表的副本,但是不具有與數(shù)據(jù)倉庫結(jié)構相聯(lián)系的管理能力。它們是用于更新數(shù)據(jù)倉庫的臨時存儲,而不用于用戶直接訪問。更新信息傳送到輔助結(jié)構時,首先檢查輔助結(jié)構的空間相對分配給輔助結(jié)構的NVRAM空間所占比例。當輔助結(jié)構已使用空間達到NVRAM空間的95%,標志溢出,更新輔助結(jié)構自動生成數(shù)據(jù)包和必要的查詢傳遞給數(shù)據(jù)倉庫。溢出功能觸發(fā)器是一種安全措施,防止因為更新輔助結(jié)構的存儲空間滿,不能接收來自數(shù)據(jù)解釋器的數(shù)據(jù)。操作流程為數(shù)據(jù)倉庫在空閑時間請求更新輔助結(jié)構里的數(shù)據(jù)。數(shù)據(jù)倉庫的系統(tǒng)請求或者數(shù)據(jù)溢出標志可能會觸發(fā)更新進程。一旦更新進程被觸發(fā),更新輔助結(jié)構生成數(shù)據(jù)包,并發(fā)送給數(shù)據(jù)倉庫,用于插入到數(shù)據(jù)倉庫表中。數(shù)據(jù)倉庫中相應的數(shù)據(jù)表和視圖被更新,在更新完成后,事務完成信息返回給輔助結(jié)構。然后輔助結(jié)構刪除臨時存儲表中的相關數(shù)據(jù),從而釋放其占用的空間。

        (2)處理用戶查詢。數(shù)據(jù)倉庫接到用戶查詢要求后,系統(tǒng)暫停隊列表中除了來自輔助結(jié)構的用戶查詢響應之外的所有隊列。倉庫應用程序確認用戶查詢,并將一個查詢副本立即發(fā)送給更新輔助結(jié)構,輔助結(jié)構臨時內(nèi)存中可能存有與查詢相關的信息。查詢先在數(shù)據(jù)倉庫的主數(shù)據(jù)表處理,查詢的結(jié)果暫存在臨時表里,該臨時表用于存放以后不斷積累的查詢結(jié)果數(shù)據(jù)。如果輔助結(jié)構里有任何與查詢有用的數(shù)據(jù),會被立即提交給數(shù)據(jù)倉庫作為對查詢副本的響應。輔助結(jié)構響應用戶查詢的數(shù)據(jù)傳輸在系統(tǒng)信息通道中有最高優(yōu)先權,以確保來自數(shù)據(jù)倉庫的信息迅速地被處理,并使當前執(zhí)行的用戶查詢較系統(tǒng)查詢隊列里其他查詢最先獲得所需數(shù)據(jù)。如果輔助結(jié)構中沒有符合用戶查詢要求的數(shù)據(jù),輔助結(jié)構提交一個空包作為響應,防止數(shù)據(jù)倉庫空等待,使數(shù)據(jù)倉庫能控制用戶查詢進程,確認查詢進程的結(jié)束。來自輔助結(jié)構的數(shù)據(jù)加入到臨時表里,然后發(fā)給報表/視圖生成器處理成用戶可讀的形式。

        4 基于XML的中間件模型

        改進結(jié)構中提供了多種操作符,如投影、選擇、連接、并、拆分等。把復雜的數(shù)據(jù)集成工作分解為很多相對簡單的小步驟,使用戶可以靈活地定制自己的數(shù)據(jù)集成計劃,這樣也為使用工作流方法來調(diào)度整個數(shù)據(jù)集成計劃提供了方便,因為工作流方法對于這種流程化的處理十分方便。使用工作流方法,來操縱數(shù)據(jù)的流向,使其從數(shù)據(jù)源經(jīng)過預先指定的處理過程流向目標,即數(shù)據(jù)倉庫中。工作流方法離不開元數(shù)據(jù)庫的支持。元數(shù)據(jù)貫穿于數(shù)據(jù)倉庫的整個過程。按照數(shù)據(jù)庫中的定義,元數(shù)據(jù)是關于數(shù)據(jù)的數(shù)據(jù)。在數(shù)據(jù)倉庫的環(huán)境下,元數(shù)據(jù)的作用更加重要,由于數(shù)據(jù)倉庫是面向主題的,所以其元數(shù)據(jù)的內(nèi)容也更加豐富。初始階段我們可以根據(jù)元數(shù)據(jù)庫提供的數(shù)據(jù)源信息,來制定清洗計劃,執(zhí)行這個計劃,能完成一次數(shù)據(jù)的抽取轉(zhuǎn)換和加載任務,把各個數(shù)據(jù)源中的零散的數(shù)據(jù)整合到數(shù)據(jù)倉庫中;在維護階段,把用戶在建立數(shù)據(jù)倉庫的初期所制定的計劃,主要包括數(shù)據(jù)庫的表信息以及用到的臨時表等,以XML文件的形式保存在元數(shù)據(jù)庫中。這樣節(jié)約了管理人員的時間,他們的精力可以更多地集中在制定一個合理高效的數(shù)據(jù)集成計劃上,從而提高效率。

        5 一種更新流實例

        以下給出了一個具體的例子來說明改進結(jié)構如何處理凋度流程,如圖3、圖4所示。

    圖3 改進結(jié)構的數(shù)據(jù)集成框架
        圖3 改進結(jié)構的數(shù)據(jù)集成框架
    圖4信息報送引擎數(shù)據(jù)流圖
        圖4 計劃工作流流程



        圖4中每一個節(jié)點都是工作流的一個活動,箭頭所指向的是數(shù)據(jù)流的實際流向,從數(shù)據(jù)源到目標。虛線表示的是控制流。數(shù)據(jù)流向和控制流向基本相同,重合的沒有畫出,只是在并操作時不同,所以用不同的箭頭標注出來。本例中,要把來自3個不同數(shù)據(jù)庫的原始表經(jīng)過一系列的操作如投影連接等,整合成一張表加載到數(shù)據(jù)倉庫中。首先通過ODBC/OLE DB標準或者數(shù)據(jù)源提供的API,把數(shù)據(jù)從源中抽取出來。然后先投影表1,再與表2進行連接,得到的表與表3進行并,形成一張表,再進行一些排序篩選,最后加載到目標數(shù)據(jù)倉庫中。要注意的是,在進行并(Union)操作的2個表必須是列結(jié)構相同,否則要進行回溯,對2表進行相應的改動處理,符合Union 的要求后才能繼續(xù)處理下去。

        在改進的模型結(jié)構中,投影(Project)、連接(Join)、并(Union)等操作符都對應一個類(Class)。與此操作符相關的各種處理都封裝在類的內(nèi)部。工作流引擎通過工作流API接口來調(diào)用類內(nèi)的相關函數(shù),完成數(shù)據(jù)集成。下面是圖4這個數(shù)據(jù)集成計劃的XML文件格式,我們只關注定義活動的部分:

        …

        …

        Ying Liu

        </Activitylnvolve>

        SELECT[reader]FROM tablenameWHERE.

        …

        </ActiVityInvolve>

        <!- -活動的流向- ->

        轉(zhuǎn)向6</Choice>

        轉(zhuǎn)向7</Choice>

        轉(zhuǎn)向8</Choice>

        結(jié)束</Choice>

        </App rovalChoices>

        </Activity>

        …

        <!- -活動之間的流向定義- ->

        </FlowDirection>

        其中是定義Union這個活動,包括活動的所有者,數(shù)據(jù)可能流向與條件等。是定義一個流向,即圖中的一個箭頭,標志了箭頭的起始活動等。這個文件就可以把我們的計劃保存下來,工作流引擎通過XP2DL解析器來解析這個文件,來獲得最初用戶制定的集成計劃。

        觸發(fā)更新操作的時機。觸發(fā)更新操作可以有多種方式:①可以由用戶驅(qū)動,如用戶發(fā)出命令來進行數(shù)據(jù)倉庫的更新;②可以時間驅(qū)動,如規(guī)定在一天當中的某個時刻來更新數(shù)據(jù)倉庫;③還可以用事件驅(qū)動,如數(shù)據(jù)源的日志發(fā)生改變后,啟動更新操作。觸發(fā)方式也保存在元數(shù)據(jù)庫中,可以根據(jù)需求靈活地選擇最佳方式。

        6 結(jié)束語

        數(shù)據(jù)倉庫設計和運行過程中,數(shù)據(jù)抽取、轉(zhuǎn)換和轉(zhuǎn)載ETL是一個重要的問題,其中,數(shù)據(jù)更新又是一個關鍵點。本文討論了在數(shù)據(jù)更新過程中,為捕獲源數(shù)據(jù)庫更新,提出了一種改進的數(shù)據(jù)倉庫體系結(jié)構,它使數(shù)據(jù)的更新較傳統(tǒng)結(jié)構更快速、便捷。并在提出的改進模型基礎上,設計了在元數(shù)據(jù)庫指導下,以工作流的方法來調(diào)度整個更新過程。

    posted on 2009-09-18 09:26 void 閱讀(258) 評論(0)  編輯  收藏 所屬分類: 架構

    主站蜘蛛池模板: 99视频有精品视频免费观看| av午夜福利一片免费看久久| 中文字幕视频免费| 久久精品国产亚洲AV香蕉| 国产成年无码久久久免费| 亚洲色婷婷一区二区三区| 成在线人视频免费视频| 久久久久久久综合日本亚洲| 花蝴蝶免费视频在线观看高清版| 国产亚洲美女精品久久久久狼 | 日韩色视频一区二区三区亚洲| 成人毛片18女人毛片免费视频未 | 亚洲一区免费观看| 亚洲一区在线免费观看| 亚洲人成网站18禁止久久影院| 免费看国产成年无码AV片| 鲁死你资源站亚洲av| 亚洲一区二区三区在线视频| 日韩a级无码免费视频| 亚洲美女视频免费| 免费高清资源黄网站在线观看| 日本系列1页亚洲系列| 亚洲精品亚洲人成人网| 91精品免费久久久久久久久| 在线观看日本亚洲一区| 免费一级肉体全黄毛片| 免费无码H肉动漫在线观看麻豆| 亚洲美女色在线欧洲美女| 四虎免费在线观看| 99re6在线视频精品免费| 亚洲黄色在线观看| 国产又长又粗又爽免费视频| 91视频免费观看高清观看完整| 亚洲成a人片在线观看播放| 日本特黄a级高清免费大片| 最近2019中文免费字幕在线观看 | 一级做a爰片久久毛片免费陪 | 亚洲成AV人片在WWW色猫咪| 色婷婷7777免费视频在线观看| 无码免费又爽又高潮喷水的视频 | 男女交性永久免费视频播放|