美章網 資料文庫 數據倉庫中數據設計范文

    數據倉庫中數據設計范文

    本站小編為你精心準備了數據倉庫中數據設計參考范文,愿這些范文能點燃您思維的火花,激發您的寫作靈感。歡迎深入閱讀并收藏。

    數據倉庫中數據設計

    摘要:以異地容災系統和數據倉庫需要實時同步生產系統的數據為背景,介紹了一個異地容災系統和數據倉庫中數據同步軟件的功能模型;對兩個系統中數據同步的設計和體系結構作了介紹,并闡述了該數據同步軟件所采用的Oracle高級復制技術。

    關鍵詞:數據同步;容災系統;數據倉庫;Oracle高級復制

    0引言

    盡管人們小心謹慎,各種各樣的災難仍不可避免,如系統硬件故障、網絡故障、機房斷電甚至火災、地震,廣為人知的“9·11”事件就是觸目驚心的例子[1]。這些災難造成了重要數據的丟失,影響了企業的正常運轉[2]。另外,激烈的市場競爭迫使企業高層尋找更為科學、系統、有效的輔助決策技術和整體解決方案來處理日益復雜的公司事務。數據挖掘就成了很好的選擇之一,但是數據挖掘需要大量的生產數據,有時甚至是實時的生產數據。如果直接在生產系統上進行數據挖掘,必然會影響到生產的效率,并將嚴重威脅生產的穩定運行。如何在災難發生時能夠保留生產數據,并啟用異地容災系統及時恢復生產,如何把生產數據及時傳遞到數據倉庫供數據挖掘使用,這些是現代企業需要面對的共同問題。

    近年來為了解決上述問題,許多企業不惜耗費巨資來分別建立異地容災系統和數據倉庫。但遺憾的是,很多系統由于無法及時準確地同步生產數據,不能有效地運行。鑒于此,筆者設計并開發了一套基于Oracle高級復制技術的數據同步軟件,實現了將一個數據容量為3TB的Oracle9iRAC數據庫的生產數據及時準確同步到異地容災系統和數據倉庫。該系統不僅將對原生產系統的影響降至最小,還極大地降低了項目費用。

    1軟件模型

    該軟件的功能模型圖如圖1所示。

    (1)初始同步模塊

    該模塊主要是在表進行初始同步時使用的;它能夠根據實際需要生成物化視圖及其索引的創建語句,并完成表的初始同步。如果沒有特別的要求,則調用普通初始同步子模塊進行目的端表的初始同步,創建語句將從源數據庫獲取;如果有特別的要求,如按指定的分區初始同步或者按照一定的條件進行初始同步,則會根據這些要求調用分區初始同步或條件初始同步子模塊生成特定的創建語句來進行目的端表的初始同步。該模塊能夠批量自動進行表的初始同步,從而大大減少了人工干預,保證了初始同步的準確性和自動化。

    (2)調度模塊

    由于源端的數據在時刻變化著,在初始同步模塊的基礎上需要有一個調度模塊將這些不斷變化的數據同步到目的端,使目的端與源端始終保持數據一致性。該模塊中的增量調度子模塊是在表的增量同步過程中使用的,并能根據刷新間隔要求對目的端表進行及時準確的刷新;完全刷新調度子模塊是在對表進行重新同步時使用;特殊要求調度模塊是給需要做特殊同步的表使用的,如需要暫時停止同步、在每天的固定時間不同步等。

    (3)監控模塊

    該模塊是為了及時發現同步中斷和同步效率低的表。由于其告警方式為短信告警,可以實現任何時間、任何地點的告警,保證了能在第一時間發現同步的中斷以及同步效率低下的情況,實現了異常處理的及時性。

    (4)錯誤處理模塊

    該模塊主要是處理同步刷新過程中出現的各種錯誤。通過對捕獲的錯誤進行相應的處理,從而保證同步能夠穩定、高效地運行。另外,由于Oracle高級復制技術自身存在一定的缺陷,需要使用該模塊來捕獲造成數據不準的源頭,并進行相應的處理。

    (5)優化模塊

    該模塊主要是處理同步過程中出現的性能瓶頸,保證能夠及時發現性能問題并采取相應的優化手段來加以維護,包括源端優化和目的端優化。

    2系統設計和體系結構

    數據倉庫中同步的數據只要實現小時級別的同步就可以滿足要求,但異地容災的數據庫實時性較高,基本上都要求實現分鐘級別的同步。現在生產數據庫總的數據量約為3TB,容災需要同步的數據量比數據倉庫要大得多,而且數據倉庫需要同步的數據都可以從容災系統中獲取;另外,生產數據庫的性能和穩定程度對公司生產有直接的影響。因此在同步過程中,不僅應該盡量減少生產數據庫的負擔,還應該盡量避免同步過程中的異常情況,如網絡故障、同步性能低下等問題[3]。基于以上考慮,筆者設計了如下方案:先將生產數據同步到異地容災系統后,再以異地容災系統為數據源同步數據到數據倉庫。

    系統的體系結構如圖2所示。

    (1)生產系統數據同步到異地容災系統

    生產系統與異地容災系統之間是通過百兆網連接的;生產系統的數據庫是Oracle9iRAC,總的數據量大約為3TB,涉及五千多張表。對這些表進行分析歸類,發現容災系統真正需要實時同步的表大約只有五百張,數據量約為1TB,只要能夠把這五百張表的變更及時準確地進行同步,即可在生產系統發生災難時,啟用異地容災的營業應急系統。鑒于此,本系統數據庫使用Oracle9i,同步軟件實時同步這關鍵的五百張表的變更。這樣大大減少了同步的數據量,也最大限度地減少了生產系統的負擔。從同步運行情況看,該同步軟件對生產系統的影響可以忽視。

    (2)異地容災系統數據同步到數據倉庫

    異地容災系統與數據倉庫之間是通過百兆網連接的;數據倉庫需要的生產數據從異地容災系統數據庫獲取,因此數據倉庫也采用Oracle9i數據庫。數據倉庫需要實時同步的表大約為三百張。從同步運行情況看,同步生產數據延時大約為十分鐘,能滿足數據倉庫的要求,并且與生產環境沒有任何關系,不會對生產環境造成影響。該系統結構使系統在各個實現層次上均具有明確的界限和分工,既避免了相互影響,簡化了數據同步的難度,又實現了對生產系統的影響達到最小化。該結構使得系統易于維護、擴展性好、安全性好、穩定性好。

    3采用的關鍵技術

    同步軟件采用的關鍵技術為Oracle高級復制技術。該技術能將Oracle數據庫中的數據同步或異步拷貝到不同的數據庫中。將數據復制到復制環境數據庫的技術實體叫做物化視圖。物化視圖可以是只讀的、可更新的或可寫的[4]。

    該技術在不同Oracle數據庫之間進行復制時可以是同步的,也可以是異步的[5]。同步復制,即復制數據在任何時間、任何復制節點均保持一致。如果復制環境中的任何一個節點的復制數據發生了更新操作,這種變化會立刻反映到其他所有的復制節點上。異步復制,即所有復制節點的數據在一定時間內是不同步的。如果復制環境中一個節點的復制數據發生了更新操作,這種改變將在不同的事務中被傳播和應用到其他所有復制節點。這些不同的事務間可以間隔幾秒、幾分種、幾小時,也可以是幾天之后。復制節點之間的數據臨時是不同步的,但傳播最終將保證所有復制節點間的數據一致。

    (1)容災系統使用異步可寫物化視圖方案

    啟動營業應急系統要求容災數據庫的這些物化視圖是可寫的,這樣才能保證系統的正常運行,但是又不要求這些變更數據同步至生產系統,因為現在的生產系統已經遭到破壞。可寫的物化視圖允許用戶通過在這個可寫的物化視圖上進行插入、更新和刪除行的操作,但是這些操作不會同樣地插入、更新和刪除主表或主實體化視圖上的行。因此容災數據庫中應該使用這種可寫的物化視圖;同時容災數據庫的表結構、索引、存儲結構應該與生產數據庫保持一致,使用該同步軟件中的普通初始同步方式來完全拷貝生產系統的表和索引定義。容災系統數據同步流程如圖3所示[6]。

    當災難發生時,應該首先停止生產系統到容災系統的同步軟件,然后啟動營業應急系統以保證繼續營業;同時因為同步延時了幾分鐘(最長不超過5min),所以有可能會丟失少量數據。部分丟失的數據需要通過營業補錄的方式解決。

    (2)數據倉庫是使用異步只讀物化視圖的方案

    數據倉庫只要求對讀取生產的數據進行分析,因此數據倉庫的這些物化視圖是只讀的就可以了。只讀物化視圖提供只讀的訪問表數據。這個表數據來源于一個主體站點或一個主物化視圖站點,因此數據倉庫中采用這種只讀物化視圖。另外,數據倉庫在分析時一般需要掃描這些物化視圖,需要建立與生產數據庫不同的表和索引結構,如對表進行分區、建立數據分析需要的索引等。因此應該使用該同步軟件中的分區初始同步和條件初始同步方式來建立合適的物化視圖及索引。數據倉庫數據同步流程如圖4所示。

    4結束語

    從這次生產數據的及時準確同步到異地容災和數據倉庫的實施過程中,筆者通過摸索解決了同步過程中的性能問題,從而最終解決了Oracle高級復制技術同步的可行性,保證了同步的效率;在實施和維護的過程中,筆者還逐步發現了該技術本身存在的問題并注意加以解決,從而保證了同步的穩定性和準確性。從這次同步實施過程看,任何技術都存在缺陷,但是本文的探索和創意可以彌補這些缺陷。該系統對于很多企業在設計數據倉庫和異地容災系統中數據同步的方案時有一定的推廣意義。

    參考文獻:

    [1]王樹鵬,云曉春,余翔湛,等.容災的理論與關鍵技術分析[J].計算機工程與應用,2004,40(28):54-58.

    [2]劉迎風,祁明.容災技術及其應用[J].計算機應用研究,2002,19(6):7-10.

    [3]楊朝紅,宮云戰,桑偉前,等.基于主從異步復制技術的容災實時系統研究與實現[J].計算機研究與發展,2003,40(7):1104-1109.

    [4]徐秀華,文必龍,畢碩本.Oracle9i高級復制技術及其應用[J].計算機應用研究,2003,20(11):107-109.

    [5]蘇燕強.Oracle分布式數據庫及其應用研究[J].計算機應用與軟件,2004,21(8):36-37,121.

    [6]葛衛民,張鋼,舒炎泰.基于Oracle高級復制的分布式數據庫系統應用研究[J].計算機工程與應用,2003,39(21):186-188,191.

    主站蜘蛛池模板: 超清无码一区二区三区| 久久精品道一区二区三区| 国产精品久久久久久一区二区三区 | 无码人妻一区二区三区在线水卜樱 | 无码人妻AⅤ一区二区三区水密桃| 国产乱码精品一区二区三区四川| 欧美成人aaa片一区国产精品| 国产在线观看一区二区三区| 国产成人无码一区二区在线观看| 麻豆一区二区在我观看| 国产aⅴ一区二区| 国产福利一区二区三区在线视频 | 无码精品一区二区三区免费视频| 亚洲一区精品中文字幕| 成人国产精品一区二区网站公司| 国产成人精品一区二三区| 国产av熟女一区二区三区| 亚洲AV日韩综合一区| 欧美亚洲精品一区二区| 国产综合精品一区二区三区| 国产福利无码一区在线| 天堂资源中文最新版在线一区| 日韩爆乳一区二区无码| 亚洲熟妇av一区二区三区下载| 色国产在线视频一区| 亚洲色偷偷偷网站色偷一区| 国产乱码精品一区二区三| 国模吧一区二区三区精品视频| 国产精品毛片一区二区三区| 四虎一区二区成人免费影院网址| 国产精品日本一区二区不卡视频| 国产伦精品一区二区| 午夜视频在线观看一区| 精品动漫一区二区无遮挡| 亚洲制服丝袜一区二区三区| 国产在线一区二区三区| 中文字幕一区二区区免| 国产成人av一区二区三区在线观看| 国产精品福利一区二区| 国产精品香蕉在线一区| 亚洲精品伦理熟女国产一区二区 |