資料倉儲(七):Oracle Warehouse Builder(OWB)建立資料倉儲

來源:互聯網
上載者:User

標籤:

本文簡述使用OWB建立資料倉儲的一般過程。Oracle的OWB是目前最好的三大ETL產品之一。OWB不但可以可以完成資料的抽取、轉換和加 載,還能協助使用者在Oracle資料庫中建立ROLAP(Relational Online Analysis Process)和MOLAP(Multidimensional Online Analysis Process)資料倉儲對象,資料品質管理,商務智能定義等。

1 環境配置

建議直接安裝Oracle 11g(如Oracle 11.2.0.1.0),其安裝包中直接包含了OWB和依賴的組件。若使用Oracle 10g(如Oracle 10.2.0.1)則需要下載Oracle資料庫安裝包和Oracle Database 10g Companion CD Release 2 (10.2.0.1.0),後者包含OWB所必須的Oracle Workflow Server和Oracle HTTP Server。

安裝Oracle Workflow(針對Oracle 10g)

注意:不要通過執行companion目錄下的setup.exe檔案來安裝,而是通過選擇你本機上已經安裝好 的oracle 10g R2的Universal Installer來安裝,在Oracle Universal Installer: 指定源位置介面中,點擊“瀏覽”按鈕,定位companion\stage\products.xml檔案,然後點擊“下一步”按鈕,選擇“Oracle Database 10g Products 10.2.0.1.0”即可正常安裝這些組件。步驟如下:

安裝了oracle10g,在D:\oracle\product\10.2.0下。
安裝了OWB10g2,在D:\oracle\product\10.2.0\OWB下。
下載了Oracle Workflow 2.6.4。安裝時候,指定主目錄詳細資料如下:
名稱:OraDb10g_home1
路徑:D:\oracle\product\10.2.0\db_1
安裝Oracle Workflow 2.6.4的過程,在“選擇要安裝的產品”視窗,選擇了第二項,即“Oracle Database 10g Products 10.2.0.1.0”。此時已包括了HTTP Server的安裝。

Oracle Workflow 2.6.4安裝後,配置 Workflow Configuration Assistant。



最後,你需要賦予owf_mgr “EXECUTE ANY PROCEDURE” 的許可權,用sys 帳號連到SQL Plus,並賦予owf_mgr 如下許可權. 
grant execute any procedure to owf_mgr; 

(*)若要單獨安裝Oracle Workflow,則選擇Oracle Database10g Companion Product;若要安裝HTTP Server則選擇Oracle HTML DB 10.2.0.1.0。

Repository Assistant建立資料庫

使用OWB進行ETL設計和部署前,需要先通過Repository Assistant的嚮導建立資料庫和使用者(包括資料庫所有者和資料庫使用者)。

2 OWB資料處理流程

(1)進入“Design Center”

  • 建立“控制中心(Control Center)”
  • 建立“項目(Project)”
  • 定義“資料來源模組(Module)”
  • 定義“目標資料模組(Module)”
  • 設計“映射(Mapping)”
  • 設計“進程流(Process Flow)”確定映射啟動並執行先後順序
  • 設計“計劃(Schedule)”
  • “配置(Configure)”映射和工作流程,添加不同映射和工作流程的“計劃”,部署後會形成“工作(Job)”

(2)在Design Center中建立Control Center,並且將其配置為預設的Control Center

(3)開啟“控制中心管理器(Control Center Manager)”

  • 確定資料來源和目標資料庫的實際物理配置,“註冊(Register)”“位置(Location)”為部署和執行打下基礎
  • “部署(Deploy)”某個項目、位置、模組下所有對象,這些操作完成了如下工作:DDL、DML、Control File、Workflow代碼、Job產生代碼或者ABAP等代碼在目標使用者所在資料庫上的產生,DDL語句的部署同時完成了對象在目標使用者所在資料庫上的產生,DML、Control File、Workflow、Job需要下一步的執行才可以真正完成
  • “執行(Execute)”工作,實現周期ETL
3 在Design Center中設計ETL

Design Center負責設計工作,這些設計工作都會自動地儲存到OWB資料庫中。

3.1 進入Design Center

開始->程式->Oracle - OWBHOME名稱->Warehouse Builder->Design Center

3.2 建立“項目(Project)”
  • “項目瀏覽器”空白處右鍵,選擇“建立”
  • 按照嚮導,輸入項目名稱,如test_project,“確定”
3.3 建立“資料來源模組”和匯入資料來源
  • 建立一個Oracle表的資料來源,在剛才建立的“項目名稱-資料庫-Oracle”上,右鍵“建立”
  • 按照嚮導建立資料來源Oracle模組
  • 輸入模組名稱,注意選擇“資料來源”選項按鈕
  • 點擊“位置”右側的“編輯”按鈕,進入串連資訊編輯介面

資料來源位置名稱為:HR_LOCATION

使用者名稱(User Name):串連資料來源的表的資料庫使用者名稱稱

口令(Password):串連資料來源的表的資料庫使用者的密碼

主機(Host):作為資料來源的表所在的資料庫伺服器的IP地址(注意,要與資料庫伺服器.../network/admin目錄下的listener.ora中的IP一致)

連接埠(Port):作為資料來源的表所在的資料庫伺服器的連接埠

服務名(Service Name):作為資料來源的表所在的資料庫的Service Name

注意:版本(Version)選擇10.2,若登入Design Center的使用者不具有訪問上述使用者表的許可權,則需要執行賦權語句:

[sql] view plain copy
  1. select ‘grant select on user2.‘||t.table_name||‘ to user1;‘ from dba_tables t where t.owner=‘user2‘;  
  2. ‘或者賦給所有表的select許可權  
  3. ‘grant select any table to user2  
  • 匯入表結構

一種方式是“建立”模組後,選中“完成後匯入”複選框,自動進入“匯入”嚮導;另一種方式是選擇剛才建立的資料來源模組,單擊右鍵“匯入”

  • 按照匯入嚮導匯入作為資料來源的表
3.4 建立“目標資料模組”
  • 建立目標資料模組,“項目名稱-資料庫-Oracle”上右鍵“建立”
  • 按照嚮導輸入模組名,選中“資料倉儲目標”選項按鈕
  • 點擊“位置”右側的“編輯”,進入串連資訊編輯視窗,輸入目標表所在資料庫伺服器的IP、連接埠、使用者名稱、口令
  • 目標表可以用DDL指令碼在資料庫中建立;也可以在OWB中“項目名稱-資料庫-Oracle-目標資料模組名稱-表”右鍵,“建立”通過圖形化介面建立;也可以直接在映射中建立(本例採用這種方式)。
3.5 設計“映射”
  • “<項目名稱>-資料庫-Oracle-<目標資料模組名稱>-映射”,右鍵“建立”,輸入映射名稱,“確定”後進入映射編輯器;從左上方的“瀏覽器”導航表單中選“可用對象”標籤,找到資料來源模組下的表,拖拽到右邊的“映射”框中
  • 從“調色盤(Palette)”框的“全部(All)”視圖中找到“表運算子(Table)”,拖拽到右邊的“映射”框中,此時彈出“添加表運算子(Add Table Operator)”對話方塊,選擇“建立未綁定的運算子(不具有屬性)(Create Unbound operator with no attributes)”,含義是在OWB的資料庫中還沒有這張表的定義(即還沒有採用3.4中建立目標表的另外兩種方法建立所需的目標表),輸入表的名稱
  • “確定(OK)”後,進入映射設計階段,選中資料來源JQ_CJJL表中的某個屬性拖拽都目標表T_JQ_CJJL的“INOUTGRP1”上即可,如

  • “建立和綁定(Create and Bind)”T_JQ_CJJL表到“目標資料模組”,這一步的作用是在OWB資料庫中“目標資料模組”的“表”中添加T_JQ_CJJL,以便以後可以部署這個表,也就是在目標資料庫的目標使用者下產生此表。“右鍵”T_JQ_CJJL表,選擇“建立和綁定”

  • “儲存”,關閉“映射編輯器”
  • 在Design Center的“項目瀏覽器”下,找到“<項目名稱>-資料庫-Oracle-<目標資料模組名稱>-表”,可以看到T_JQ_CJJL,這樣“建立和綁定”就成功了。
3.6 設計“進程流”
  • “<項目名稱>-進程流-進程流模組”右鍵“建立”,輸入“進程流模組”名稱如WF1,點擊“位置”右側的“編輯”,輸入Workflow管理員所在資料庫伺服器IP、連接埠、使用者名稱和口令;如果資料庫是10gR2,Workflow版本是2.6.4。

  • "確定"後自動彈出“建立進程流包”視窗,輸入名稱
  • “確定”後自動彈出“建立進程流”視窗,輸入名稱。也可右鍵“進程流包”建立進程流。進入“進程流編輯器”
  • 進程流的作用是將映射串聯起來,確定映射的執行順序,映射可以串列,也可以並行。簡單起見,只加入一個映射。左上方“瀏覽器”選中“可用對象”找到目標資料模組中的映射MAPPING_JOB,拖拽到右邊的“進程流(Process Flow)”框中
  • 在“START1”表徵圖和“MAPPING_JOB”表徵圖間畫連線,在MAPPING_JOB和END_SUCCESS之間畫連線,如:

3.7 設計“計劃”
  • 不同的“工作流程模組”和“目標資料模組”需要設計不同的“計劃”,下面介紹為“工作流程模組”建立“計劃”
  • “<項目名稱>-計劃”右鍵“建立”,輸入“計劃模組”名稱如SCH_WF,點擊“位置”右側的“編輯”,輸入Workflow管理員所在資料庫伺服器的IP、連接埠、使用者名稱和口令
  • “<項目名稱>-計劃-<計劃模組名稱>”右鍵“建立”,按照嚮導設定即可
  • 更改設定的“計劃”,“<項目名稱>-計劃-<計劃模組名稱>-<計劃名稱>”右鍵“開啟編輯器”,即可更改先前的設定

3.8 “配置”“工作流程”的“計劃”

通過這個步驟將上面兩個步驟中建立的工作流程和計划進行關聯,即“工作流程”將按“計劃”執行。

  • “<項目名稱>-工作流程-<工作流程模組名稱>-<工作流程包名稱>-<工作流程名稱>”右鍵“配置”,如:

  • 點擊“引用的日曆(Referred Calendar)”右邊的空格,從下拉框中選擇3.7中建立的“計劃”SCH_WF_DAY

至此,我們完成了Design Center中的設計工作,下面進入Control Center中部署和運行剛才所作的設計,完成整個ETL流程。

4 在Design Center中建立Control Center並設為預設的Control Center4.1 建立Control Center
  • 在Design Center的“串連瀏覽器”中,“控制中心”右鍵“建立”
  • 輸入CONTROL CENTER名稱,“編輯”CONTROL CENTER位置,輸入OWB資料庫所有者(注意是所有者owner,而不是一般使用者,一般使用者則需要設定其方案為所有者的方案方可)的使用者名稱、口令、所在資料庫伺服器IP、連接埠
  • 雙擊剛才建立的CONTROL CENTER,進入“編輯控制中心”視窗,選擇“資料位元置”標籤,從左邊的“可用位置”將需要的選到右邊“所選位置”中:資料來源模組位置、目標資料模組位置、進程流模組位置、計劃模組位置

4.2 將建立的Control Center設定為預設

  • “<項目名稱>-配置-DEFAULT_CONFIGURATION”右鍵“開啟編輯器”,選擇“詳細資料”標籤,下拉框中選擇剛才建立的

5 在Control Center Manager中部署和執行ETL5.1 進入Control Center Manager

在Design Center中,選擇菜單“工具”-“控制中心管理器(Control Center Manager)”,輸入OWB資料庫所有者口令,即可進入控制中心視窗

5.2 註冊所有位置

在控制中心視窗左側列出了項目下的所有位置。

在本文的例子中,由於實際的目標資料庫和設計時的目標資料庫是同一個,並且在Design Center設計ETL過程時,我們編輯了所有的位置,因此不必在控制中心管理器註冊位置。但在實際應用中,一般地,開發設計時的目標資料庫、資料來源、進程流、計劃所在的資料庫和實際使用的不同,因此在部署上線時需要重新註冊位置。這是OWB設計一次、部署多次的特性。

5.3 部署某個項目下所有對象
  • 選中“<項目名稱>”,右側的“對象詳細資料(Object Detail)”會列出所有對象,如表、映射、進程流、工作(配置了計劃的進程流或映射)
  • 點擊“預設操作(Default Actions)”,所有對象的“部署操作(Deploy Action)”列就會有“無(None)”變為“建立(Create)”,但是存在一些表是資料來源表,無需部署,可以點擊“建立(Create)”改為“無(None)”。然後點擊左上方的第四個小表徵圖“部署”。(對於表、外部表格、物化視圖、隊列等對象,部署代表著產生DDL指令碼,並且將這些指令碼在註冊位置的資料庫使用者下執行,這樣來建立上述對象。但資料來源中已經有這些表了,如果再部署,就會報錯)

  • 注意查看下方的“控制中心作業(Control Center Jobs)”的第三列“Status”,如果都是綠色的對勾,說明部署成功;也可以查看上方所有對象的“部署狀態(Deploy Status)”列,變為“成功”,說明部署成功。“警告”可先忽略。

常見錯誤

(1)RPE-02072: 在 Oracle Workflow 資料檔案庫中尚未啟用 Oracle Workflow NLS 語言 ZHS。請使用 Oracle Workflow wfnlena.sql 伺服器端指令碼啟用該語言。

[sql] view plain copy
  1. C:\oracle\product\10.2.0\db_1\wf\admin\sql>sqlplus owf_mgr/owf_mgr @wfnlena.sql ZHS Y  

注意路徑。

(2)RPE-02260: Database User OWF_MGR must be a Control Center User. Please use the OWB Design Client against the Control Center repository to grant the Control Center User role.

您需要授予 Oracle Workflow (OWF) 使用者 owf_mgr 特定角色,使其具有在 Control Center 中執行進程流的許可權。
您不必將 Control Center 的口令嵌入 OWF 使用者所擁有的資料庫連結中。Control Center 使用者具有高特權,其口令受到嚴格控制。
要註冊 OWF 使用者,可以從 Global Explorer 面板中的 Security > Users 節點使用 Register Warehouse Builder Users 嚮導。要訪問 Security 節點,請確保以資訊庫所有者的身份登入到 Design Center。
1)
如果尚未登入,以使用者名稱/口令 rep_owner/rep_owner 登入 Design Center。
在 Global Explorer 面板中展開 Security 節點。按右鍵 Users 節點並選擇 New。
註:在建立新使用者之前,您必須先儲存或恢複您的更改。要儲存以前的更改,請從 Design 菜單中選擇 Save All,或者單擊工具列中的。
此時出現 Create User 對話方塊。

2)
在 Create User 對話方塊中,您可以從可用資料庫使用者列表中進行選擇,也可以建立一個新使用者,該使用者將自動註冊為 Warehouse Builder 使用者。

在本教程前面的部分中,我們說明了如何安裝 Oracle Workflow Server,如何使用 Oracle Workflow Configuration Assistant,以及如何將 owf_mgr 指定為工作流程帳戶。其結果是將 owf_mgr 建立為資料庫使用者。從 Available DB Users 列表中選擇 owf_mgr,單擊 > 將其移至 Selected Users 列表。單擊 OK。

注意,owf_mgr 使用者已添加到 Global Explorer 面板的 Security > Users 節點中。

5.4 執行“作業”
  • 如果“部署”全部成功,可以選擇右下方“已調度(Scheduled)”,選擇WF_JOB1_JOB,右鍵“開始”
  • 在“計劃”的指定已耗用時間此“作業”就會開始運行
5.5 檢查結果是否正確

查看“目標使用者”下的目標表T_JQ_CJJL,是否記錄了從資料來源表映射過來的資料。

推薦閱讀:

強烈推薦:http://pan.baidu.com/share/link?shareid=513304&uk=1476405502
比較簡單:http://download.csdn.net/detail/kingzone_2008/5492245
官方文檔:http://pan.baidu.com/share/link?shareid=513296&uk=1476405502

參考資料:

Oracle Corporation 2006.Oracle BI Warehouse Builder 10g Release 2自學教程

http://www.oracle.com/ocom/groups/public/@otn/documents/webcontent/229051_zhs.htm

http://doc.chinaunix.net/oracle/200802/159388_7.shtml

資料倉儲(七):Oracle Warehouse Builder(OWB)建立資料倉儲

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.