文章詳情頁
Oracle9i中數據倉庫的增強及其價值
瀏覽:27日期:2023-11-13 09:07:26
數據倉庫需要從各種不同的數據源取得各種不同的數據,并且把這些巨大數據量的數據轉換成對于用戶可用的數據,為企業的決策支持提供數據支持。這個過程經常被稱為ETL(提取、轉換、裝載)。提取過程涉及把數據從不同的來源提取出來,比如,一些服務提供商需要從上百個網站提取數據,然后生成用戶可用的數據。這個過程中,最最消耗時間的部分是轉換和裝載數據這兩個步驟,在這些步驟中,要根據現有數據指定規則,然后按照這些規則來過濾數據,并且把合格的數據裝載到數據倉庫里邊去。而這個步驟地最大困難就是要盡量不影響數據倉庫和源數據庫的性能,并且對于不同的數據量能夠有一定的可伸縮性,并且在最短的時間內完成。 當前絕大多數的ETL步驟都是通過第三方工具來進行的。這些工具能夠在把數據轉換并裝入到數據倉庫之前,對數據進行一些特定的處理。當數據轉換完成以后,再用Oracle的并行插入和裝載工具把這些數據插入到Oracle數據庫。Oracle數據庫的最主要的作用是治理這些數據行、索引和約束。有些ETL過程是串行進行的,因此需要使用更多的數據庫資源來進行這些轉換和裝載過程。假如使用這類串行裝載方法的話,首先利用一些第三方工具,數據先被提取出來,然后放到一個中間過渡區域里邊,在使用PL/SQL或者Java 再在數據庫里邊進行轉換,最后再把結果插入到數據庫的表里邊。這個復雜的過程導致了這種方法不可避免的弱點:可伸縮性差、在萬一出現差錯時難以控制。 Oracle9i 引進了新的'邊裝載邊轉換'的辦法來取代那些過時的串行處理步驟:先轉換然后裝載或者先裝載然后轉換。在這種新方法里,數據庫參與了數據轉換和裝載的過程,成為了ETL過程的一個有機組成部分。而另外有些原來是必須的步驟則沒有繼續存在地必要了,另一些則可以得到改進。Oracle 9i提供以下功能來幫助這個轉換、裝載步驟更加快速而高效。 Oracle Change Data Capture (OCDC)Framework 可以用來優化ETL過程中的數據提取這個步驟,建立一個可重復使用的執行步驟。OCDC能夠捕捉Oracle數據庫中變化的數據。使用對稱復制技術和Logminer技術,假如原始數據是來自Oracle數據庫的話,那么Oracle能夠很輕易實現幾個數據庫的改變了的數據的同步化和異步化工作。對于非Oracle數據庫,Oracle公司也提供了API,幫助第三方軟件廠商開發工具,來實現非Oracle數據庫和Oracle數據庫的集成。 External Tables這個特性能夠使一些外部數據源(比如一個普通文本文件)能夠像存儲在Oracle數據庫普通表里邊的數據一樣被透明地存取。這個特性的唯一限制是:這張表是只讀的,不能修改。對于SQL,PL/SQL和Java程序來講,這些虛擬表不用首先被裝載到數據庫里邊然后才能讀取。這樣的話,裝載和轉換步驟就被集成到一起了,不再需要在數據庫里邊存儲中間數據。 Multi Table Insert 這是一個任何DBA和開發人員都會欣賞的新特性。在8i和以前的版本里面,想要把同樣的數據插入到多張表里邊,你不得不編寫一個存儲過程,或者執行多次SQL語句。在Oracle 9i里邊,這些都可以不用了。一個SQL語句就可以解決這個問題。另外一個值得注重的新特性是Upset語句,它用一個語句提供了Update和Insert的功能,根據條件分別執行Insert或者Update語句。還有一個很有用的增強就是答應在一個Oracle數據庫里邊有多個Block的大小。這對于在不同Oracle數據庫之間使用可移動表空間這個特性是非常要害的。從9i開始,可移動表空間的大小不一定需要是同樣的塊大小了。 有了以上這些新特性以及其他一些本文沒有提及的新特性之后,Oracle不僅僅適用于數據處理,也更加適用于數據倉庫環境下的使用。
排行榜