久久福利_99r_国产日韩在线视频_直接看av的网站_中文欧美日韩_久久一

您的位置:首頁技術文章
文章詳情頁

如何為 DB2 Cube Views 構建元數據橋

瀏覽:2日期:2023-11-10 14:00:13
DB2 的 DB2 Cube Views 功能通過共享關系數據庫和商業智能應用程序之間的多維元數據,使商業智能應用程序與數據倉庫的集成變得更加輕易。了解如何使商業智能應用程序或工具能夠利用這一強大的新功能。本文適用對象本文的適用對象是那些希望通過使用 DB2 Cube Views 應用程序編程接口(API)以便在 IBM® DB2® Universal Database™ V8(UDB)上開發或集成 OLAP 應用程序的技術經理和技術人員。該信息尤其適用于那些構建組件以在 DB2 Cube Views 和其它工具或元數據資源庫之間交換元數據的開發人員。為簡單起見,我們將交換元數據的軟件稱為“元數據橋或者就是“橋。具備關系數據庫、倉庫和 OLAP 概念方面的背景知識將有助于對本文的理解。簡介公司和用戶目前日益需要具有分析大型數據集以及能夠深入訪問和報告更具體數據的能力。象 DB2 UDB 之類高可伸縮性的數據庫服務器在向企業交付 OLAP 解決方案中起著日益重要的作用。通過 DB2 Cube Views,DB2 UDB 提供了一個甚至更健壯的基礎結構,這種基礎結構可以在端對端倉庫和商業智能部署中起到“重大支撐作用。對于許多 OLAP 工具和應用程序而言,與 DB2 Cube Views 的集成需要構建元數據橋。這些橋可以通過使用 DB2 Cube Views 的基于 XML 的存儲過程接口來讀取或創建元數據。我們將在本文中討論如何使用這個接口來構建橋。DB2 Cube Views 的概述IBM DB2 Cube Views 是 DB2 通用數據庫的附加功能部件,它增強了 DB2 UDB,使 DB2 UDB 作為開發和部署商業智能產品和應用程序的平臺。非凡地,DB2 Cube Views 有助于加速位于 DB2 UDB 上的 OLAP 解決方案和應用程序的開發和治理。DB2 Cube Views 功能部件是如何做到這一點呢?首先,它答應 DB2 UDB 支持 OLAP。假如沒有多維數據視圖,關系數據庫對于不熟悉數據庫結構和內容的人來說似乎是一組令人生畏的帶有一些列的表。DB2 Cube Views 元數據使您能夠更完整地記錄 DB2 數據庫中的底層結構。通常,倉庫或數據集市是非凡為維分析設計的。在這種情況下,數據庫通常由被組織為一個或多個星型(或雪花型)模式的表組成。簡單的星型模式包含一個事實表,事實表四周有一些維表。例如,事實表可以記錄公司各個產品和分店每日銷售數據。維表(或許是 PRODUCTS 和 STORES 表)可能包含有關各個產品和分店的具體信息,并且與事實表相連接。元數據對象DB2 Cube Views 元數據尤其擅長捕捉星型或雪花型模式中固有的結構(請參閱 圖 1)。該元數據通過一組元數據對象提供關系數據的“空間視圖。元數據對象被劃分為多層,從簡單對象(如 Attribute,簡單的 Attribute 對表列建模)到更復雜的對象(如 Join、Hierarchy、Dimension 和 Cube Model)。完整定義的多維數據模型對象通常符合星型(或雪花型)模式,并對一組具有公共維數的度量建模。然后,多維數據模型就封裝其它 DB2 Cube Views 元數據對象(如 Dimension 和 Measure),這一點都不希奇。圖 1. 引用關系星型模式的 DB2 Cube Views 多維數據模型如何為 DB2 Cube Views 構建元數據橋簡而言之,DB2 Cube Views 元數據使您能夠捕捉 DB2 數據庫的多維結構和設計。在 IBM DB2 Cube Views Setup and User's Guide 的第 2 章中具體描述了元數據對象。DB2 Cube Views 元數據除了使 DB2 支持 OLAP 外,至少還有兩種使用方法:DB2 Cube Views 功能部件利用元數據來優化命中 DB2 數據庫的 SQL 查詢。位于 DB2 UDB 之上的產品和應用程序可以使用元數據。讓我們簡要地討論一下這兩種用法。將 DB2 Cube Views 元數據用于優化DB2 Cube Views 通過創建合適的實例化的查詢表(materialized query table,MQT)來加速 SQL 查詢,這些 MQT 中保存了預先聚集的數據。MQT 也稱為(自動)匯總表。假如可以,DB2 優化器會將 SQL 查詢重新路由給 MQT(請參閱 圖 2)。MQT 通常比底層的基本表(MQT 構建于這些基本表之上)小好幾個數量級。因而,對于同一個 SQL 查詢,將該查詢重新路由給 MQT 這種查詢方法通常比用查詢基本表的方法快得多。DB2 Cube Views 有一個基于元數據和用戶輸入的優化顧問程序,它推薦一組合適的 MQT。有關更多信息,請參閱 DB2 Cube Views Setup and User's Guide中有關優化的章節。圖 2. DB2 優化器在適當時將查詢路由到 MQT元數據使用者多維數據視圖元數據還有其它好處。商業智能工具可以從 DB2 UDB 讀取元數據來了解 DB2 表的維結構。然后,根據元數據,這些工具提供處理 DB2 UDB 數據的查詢和報告解決方案。使用 DB2 Cube Views 元數據的工具和應用程序一般分為兩類:第一類應用程序“咬住DB2 Cube Views 。它們通常通過使用元數據來構造 SQL 查詢,以讀取元數據并直接用它對 DB2 數據庫進行分析。大多數情況下,這些工具對 DB2 Cube Views 多維數據模型和多維數據對象進行查詢和報告。第二類工具使多維數據視圖元數據從 DB2 流入自己的工具,然后根據自己的元數據查詢 DB2。這些工具必須能夠將 DB2 Cube Views 元數據映射到自己的元數據。這一映射的復雜程度取決于元數據的相似程度(或相異程度)。元數據生產者請注重:并非所有對 DB2 Cube Views 元數據感愛好的應用程序都讀取元數據,這一點也很重要。還有一類工具和應用程序產生元數據并將它 推入 DB2。維元數據通常來自數據庫設計、抽取-轉換-裝入(extract-transform-load,ETL)和其它數據庫治理工具。通過使維元數據流入 DB2 UDB,這些工具可以利用先前提到的這些優化和治理好處。顯然,為了讀取、創建、修改和刪除元數據對象,工具和應用程序需要一種與 DB2 中多維數據視圖元數據交互的方法。DB2 Cube Views 為此提供了一個 API,我們接下來將研究它。API — db2info.md_message() 的概述DB2 Cube Views API 是用于訪問維元數據的接口。它以名為 db2info.md_message() 的 DB2 存儲過程的方式實現,該存儲過程為其所有參數傳入(出)XML 文檔。存儲過程的優點是使該 API 變成與語言無關。任何可以與 DB2 交流的編程語言都可以調用這個存儲過程??梢允褂们度胧?SQL 和通過 ODBC 或 JDBC™ 的動態 SQL 等。您可以從 DB2 Cube View Setup and User's Guide 的附錄中獲得有關這個 API 的詳盡描述。在本文中,我們將向您演示幾個示例:向這個存儲過程傳入什么,以及期望從它那兒返回什么,通過這幾個示例來設法讓您更快地理解該存儲過程。輸入參數這個存儲過程的語法如下:DBINFO.MD_MESSAGE(operation IN, metadata IN/OUT, response OUT)所有參數都屬于 CLOB 類型。該存儲過程有兩個輸入參數。第一參數是必需的,它指定調用程序希望執行什么操作。這些操作有:DESCRIBECREATEALTERRENAMEDROPIMPORTVALIDATE某些操作(象 CREATE 和 IMPORT)需要通過第二個參數將元數據傳入這個存儲過程。操作 DESCRIBE 通過第二個參數返回元數據。輸出參數該存儲過程的第三個參數是輸出參數。對于對該存儲過程的每個調用,都會通過第三個參數返回響應文檔。然而,假如發生某些嚴重錯誤,則不會創建任何輸出響應文檔。解析 XML要使用 API,程序必須構造要傳入該存儲過程的 XML 文檔。還需要解析該存儲過程所返回的 XML。DB2 Cube Views API 使用的 XML 的語法由隨該產品一起提供的 XSD 模式文件(位于 sqllib/cfg 目錄中)指定。您將使用的 XSD 模式文件如 表 1所示。表 1. 與輸入和輸出參數相關聯的 XSD 文件API 參數 模式文件 操作和響應(第一個和第三個參數) db2md_parameter.xsd 元數據(第二個參數)db2md_metadata.xsd 和db2md_types.xsd 使用 API用于調用 md_message() 存儲過程的樣本 C++ 代碼與 DB2 Cube Views 產品一起提供,位于 sqllib/samples/olap/client/db2mdapiclient.cpp 中。關于用 Java™ 編寫的代碼,下面是使用 JDBC 來調用該存儲過程的樣本代碼片段:/* Calls the DB2 stored procedure passing in the request string  * as the first parameter and the metadata string as the second  * parameter. If xmlRequestString contains a script or no output  * metadata is required the xmlMetadata parameter may be null.  * The outputMetadata boolean controls what is returned by the  * method. If it is true any output metadata is returned. If  * false the response output is returned. */ private String callDB2StoredProc(String  xmlRequestString,  String  xmlMetadataString,  boolean outputMetadata)  throws OCException, OCApiException {/* Create an SQL command to call the Stored procedure in DB2 * to get the XML */Stringsql = "CALL db2info.MD_MESSAGE (?, ?, ?)";Stringresponse= null;StringxmlMetadataResponse = null;CallableStatement callStmt= null;try{ callStmt = auroraCatalogConnection.prepareCall(sql); /* Set input parameter to request and metadata strings. */ callStmt.setString (1, xmlRequestString); callStmt.setString (2, xmlMetadataString); /* Register the output parameters. */ callStmt.registerOutParameter (2, Types.VARCHAR); callStmt.registerOutParameter (3, Types.VARCHAR); /* Call the stored procedure */ callStmt.execute(); /* Retrieve output parameters. If the procedure was called with  * a request that returns metadata in the middle parameter then  * xmlMetadataResponse will store the output XML. */ if (outputMetadata == true)xmlMetadataResponse = callStmt.getString(2); response= callStmt.getString(3); /* See if there are any warnings. */ SQLWarning warning = callStmt.getWarnings(); /* If execute returns a warning with a non-zero SQL state  * then the API has had an error and returned some response  * info in the output XML document. */ if (warning != null) {OCLog.trace("Stored procedure execute returned a warning.");OCLog.trace("SQL state: " + warning.getSQLState());OCLog.trace("SQL state: " + warning.getErrorCode());/* readResponseFromXML will throw an OCApiException containing * the error info (which will then be thrown to our caller) or * it will throw an OCException if a parsing error occurred. If * for some strange reason the file does not contain error * info it will just return and then we'll throw an OCException * to notify the user. */try { readResponseFromXML(response); }/* If an API exception was thrown add the SQL state etc to * it and then throw it again. */catch (OCApiException apie){ apie.setSqlException(warning); throw apie;}/* If we have had a warning we always want to rollback any changes. * If we have a problem rolling back the exception will be caught * below. */finally{ auroraCatalogConnection.rollback();}/* If we got here there must have been a warning with nothing * in the output XML so throw an exception explaining this. */throw new OCException("OC_ERR_API_DB2_STORED_PROC_FAIL_NO_INFO"); }}/* If we had an error executing the SQL, log the information and * throw an exception. We also rollback any changes and catch * the exception if the rollback has a problem. */catch (SQLException e){ OCApiException newe = new OCApiException(e); OCLog.trace( newe.getMessage() ); logExceptionInfo(e); try { auroraCatalogConnection.rollback(); } catch (SQLException e2) {OCLog.trace("An exception also occurred rolling back.");logExceptionInfo(e2); } throw newe;}讀取元數據在獲得成功調用該 API 的一些代碼之后,將需要把注重力放在將正確的 XML 傳遞給該 API,以及能夠解析輸出 XML。大多數程序將需要通過使用 DESCRIBE 操作來從 DB2 Cube Views 讀取元數據。下面是一些示例:示例 1. 讀取所有元數據下面是您要使用的操作 XML:<olap:request xmlns:olap="http://www.ibm.com/olap"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:xsd="http://www.w3.org/2001/XMLSchema" version="8.1.2.1.0"><describe objectType="all" recurse="no"></describe></olap:request>注:調用程序和服務器上的 DB2 存儲過程之間的版本號(如 8.1.2.1.0)必須一致。請注重,應該將請求標記限定為 <olap:request> 。輸出時,第二個參數將返回包含元數據的 CLOB。通常會返回許多對象。假如 DB2 只有一個 Attribute 對象,那么輸出元數據 XML 將類似于:<olap:metadata xmlns:olap="http://www.ibm.com/olap"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:xsd="http://www.w3.org/2001/XMLSchema" version="8.1.2.1.0"><attribute name="FAMILY" schema="MDSAMPLE" businessName="FAMILY"createTime="2003-04-11T21:28:22" creator="db2admin"><datatype schema="SYSIBM" name="VARCHAR" length="15" scale="0"/><sqlExpression template="{$$1}"><column name="FAMILY" tableSchema="MDSAMPLE" tableName="FAMILY"/></sqlExpression></attribute></olap:metadata>假如成功,響應文檔將類似于:<olap:response xmlns:olap="http://www.ibm.com/olap"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:xsd="http://www.w3.org/2001/XMLSchema" version="8.1.2.1.0"><describe><status id="0" text="Operation completed successfully. No errors were encountered."type="informational"/></describe></olap:response>示例 2. 獲取特定的多維數據模型及相關對象下面是您將用來獲取 db2admin.MyCubeModel 的多維數據模型及其相關對象的操作 XML:<olap:request xmlns:olap="http://www.ibm.com/olap"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:xsd="http://www.w3.org/2001/XMLSchema" version="8.1.2.1.0"><describe objectType="cubeModel"recurse="yes"><restriction><predicate property="name" operator="=" value="MyCubeModel"/><predicate property="schema" operator="=" value="db2admin"/></restriction></describe></olap:request>注:Recurse="yes" 告訴 API 返回多維數據模型以及該多維數據模型遞歸引用的所有對象。請注重,謂詞的運用,謂詞指定我們感愛好的多維數據模型。創建元數據有兩個用于創建新元數據的操作:CREATE 和 IMPORT。在創建新的元數據時,使用 CREATE。假如您想要創建的對象碰巧與現有對象沖突(因為名稱相同),則使用 IMPORT。示例. 在 DB2 Cube Views 中創建一些元數據對象下面是您要使用的操作 XML:<olap:request xmlns:olap="http://www.ibm.com/olap"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:xsd="http://www.w3.org/2001/XMLSchema" version="8.1.2.1.0"><create/></olap:request>通過第二個參數以 XML 格式將一個或多個元數據對象傳遞給存儲過程。改變元數據有兩個用于修改元數據對象的操作:ALTER 和 RENAME。示例 1. 改變連接對象ALTER 操作類似于 CREATE,但被傳入的元數據對象必須已經存在。由新定義的對象替代原有對象。下面是您要使用的操作 XML:<olap:request xmlns:olap="http://www.ibm.com/olap"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:xsd="http://www.w3.org/2001/XMLSchema" version="8.1.2.1.0"><alter/></olap:request>對于元數據 XML,傳入我們想讓它成為的 Join 對象:<join name="ProductFamily" schema="db2admin" businessName="ProductFamily"  type="inner" cardinality="n:1"><attributeJoin operator="="><leftAttributeRef name="FAMILYID" schema="db2admin"/><rightAttributeRef name="FAMILYID (FAMILY)" schema="db2admin"/></attributeJoin></join>示例 2. 重命名多維數據模型對象假設我們想要將多維數據模型對象 db2admin.SalesModel 重命名為 db2admin.SalesModel (2003) 。下面是做到這一點的操作 XML:<olap:request xmlns:olap="http://www.ibm.com/olap"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:xsd="http://www.w3.org/2001/XMLSchema" version="8.1.2.1.0"><rename objectType="cubeModel"><currentRef name="SalesModel" schema="db2admin"/><newRef name="SalesModel (2003)" schema="db2admin"/></rename></olap:request>對于重命名,不需要元數據 XML。刪除元數據用 DROP 操作刪除元數據對象。示例 1:刪除 所有元數據對象執行該操作時必須小心!下面是要使用的操作 XML:<olap:request xmlns:olap="http://www.ibm.com/olap"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:xsd="http://www.w3.org/2001/XMLSchema" version="8.1.2.1.0"><drop objectType="all"/></olap:request>示例 2. 刪除多維數據對象及其相關對象下面是刪除 db2admin.MyCube 及其相關對象的操作 XML。請注重,非凡的 <script> 標記,它可以在一次 API 調用中執行多次刪除:<olap:request xmlns:olap="http://www.ibm.com/olap"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:xsd="http://www.w3.org/2001/XMLSchema" version="8.1.2.1.0"><script><drop objectType="cube"><restriction><predicate property="name" operator="=" value="My Cube"/><predicate property="schema" operator="=" value="db2admin"/></restriction></drop><drop objectType="cubeFacts"><restriction><predicate property="name" operator="=" value="Cube Facts (My Cube)"/><predicate property="schema" operator="=" value="db2admin"/></restriction></drop><drop objectType="cubeDimension"><restriction><predicate property="name" operator="=" value="Market (My Cube)"/><predicate property="schema" operator="=" value="db2admin"/></restriction></drop><drop objectType="cubeHierarchy"><restriction><predicate property="name" operator="=" value="Region (My Cube)"/><predicate property="schema" operator="=" value="db2admin"/></restriction></drop></script></olap:request>無需傳入任何元數據 XML。調試錯誤盡管您必須習慣于消息中如何引用對象的命名約定,但是存儲過程中的大多數錯誤都相當清楚,無需解釋。正因如此,您經常不得不相當仔細地閱讀消息。下面是報告錯誤的 API 響應示例。當我們試圖刪除已不存在的 Cube 對象( db2admin.My Cube )時,會返回下面的響應。( 請注重:由于空間有限,狀態消息被分成兩行。)<olap:response xmlns:olap="http://www.ibm.com/olap"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:xsd="http://www.w3.org/2001/XMLSchema" version="8.1.2.1.0"><drop><status id="6006" text="No objects were found matching search criteria:"objectType=CUBE & name=My Cube & schema=db2admin"." type="warning"><tokens><text value="objectType=CUBE & name=My Cube & schema=db2admin"/></tokens></status></drop></olap:response>跟蹤當發生錯誤而您又無法斷定 API 失敗的原因時,通常有必要打開 API 跟蹤。從高級別跟蹤(信息量最少)開始,僅當絕對需要時才打開中級或低級跟蹤(這些級別的信息要具體得多)。要打開跟蹤,請修改配置文件 db2md_config.xml ,如下所示。每個 DB2 實例都有一個這樣的文件,可以在實例目錄中找到它。在 Windows 上,缺省的 DB2 實例名為“DB2,可以在 sqllib/DB2/db2md_config.xml 中找到這個配置文件。在下面的 XML 中,已經將跟蹤級別設置為 high。<?xml version="1.0" encoding="UTF-8" ?><!-- <copyright> --><!-- Licensed Materials - Property of IBM  --><!-- 5724-E15  --><!-- (c) Copyright IBM Corp. 2002, 2003 All Rights Reserved.  --><!-- US Government Users Restricted Rights - Use, duplication or disclosure --><!-- restricted by GSA ADP Schedule Contract with IBM Corp. --><!-- </copyright> --><olap:config xmlns:olap="http://www.ibm.com/olap"> <log> <trace level="high" logFile="db2mdtrace.log" bufferSize="0"/> <error level="medium" logFile="db2mderror.log" bufferSize="0"/> </log> </olap:config>請注重:不要嘗試重命名跟蹤文件。其名稱必須是 db2mdtrace.log ??梢栽趯嵗夸浿姓业礁櫸募?db2mdtrace.log 。創建元數據橋元數據橋是將元數據從一種格式映射成另一種格式的軟件組件或實用程序。開發橋是為了在第三方商業智能或 OLAP 工具與 DB2 Cube Views 之間交換元數據。圖 3. 元數據橋例如,IBM 在 DB2 Cube Views 和 IBM DB2 OLAP Server™ 產品之間提供了橋。更準確地講,橋在 DB2 Cube Views 和 DB2 OLAP Server 的 OLAP 集成服務器附加功能部件之間交換元數據。在規劃元數據橋時,有許多初始考慮事項。我們將更具體地討論其中一些問題。DB2 Cube Views 元數據對象模型與其它格式的對象模型相比,兼容性/相似程度如何?橋應該是單向的還是雙向的?同時可以映射什么高級別的元數據分組?通常,多維數據模型或多維數據對象(以及所有引用對象)是橋的源或目標。橋將支持并治理增量元數據更改嗎?將使用何種編程語言?該編程語言可以使用哪些 XML 解析器?當使用 DB2 Cube Views 元數據時,橋將調用 API 來讀取元數據還是讀取導出的元數據 XML 文件?當產生 DB2 Cube Views 元數據時,橋將調用 API 來創建元數據還是將元數據寫入 XML 文件?映射練習做映射練習是設計橋的首要步驟。做這個練習的架構設計師或開發人員必須通曉 DB2 Cube Views 元數據對象模型和其它元數據對象模型方面的應用知識。我們建議在原型設計和實現工作開始之前,仔細地記錄并復查映射。如 表 2所示,每個 DB2 Cube Views 對象在進行映射時都有一些需要考慮的公共特性。表 2. DB2 Cube Views 對象的公共特性特性 說明 模式當映射到 DB2 Cube Views 時,所有新對象通常都被放入單個模式中。但答應多維數據視圖對象引用其它不同模式中的多維數據視圖對象。DB2 Cube Views 中每個對象的完整名稱由它的模式和名稱構成,如 MYSCHEMA.MYATTRIBUTE 。模式的長度不超過 30 個字節。 名稱每個 DB2 Cube Views 對象類型都有自己的名稱空間,除了 Attribute 和 Measure 共享同一個名稱空間。因此,例如,Attribute 和 Join 可以具有同一個完整名稱。至 DB2 Cube Views 的橋通常必須生成一些目標對象的名稱。名稱的長度不超過 128 個字節。 商業名稱最多 128 個字節。注釋最多 254 個字節。創建者當映射到 DB2 Cube Views 時不需要。創建時間當映射到 DB2 Cube Views 時不需要。修改者當映射到 DB2 Cube Views 時不需要。修改時間當映射到 DB2 Cube Views 時不需要。必須對 DB2 Cube Views 對象模型進行研究,并將它與作為映射目標或源的元數據進行比較。請仔細地注重元數據間的差異,在映射元數據時,這些差異會導致元數據丟失。假如橋是雙向的,那么在元數據往返時確定將如何改變元數據。對于大多數橋,不推薦使用元數據往返,因為您最終會得到一個與開始時明顯不同的元數據。 表 3 包括一些按對象類型分需要牢記的說明。當映射至 DB2 Cube Views 時,輸出元數據 XML 必須有效。XML 在語法上必須是正確的。橋應該通過依據模式文件 db2md_metadata.xsd 驗證它們輸出的 DB2 Cube Views 元數據 XML 來檢查是否格式良好。此外,輸出元數據必須遵守 DB2 Cube Views 指定的所有元數據驗證規則。在 DB2 Cube Views 中,有三種驗證級別。當映射到 DB2 Cube Views 時,遵守“基本規則就足夠了。從 DB2 Cube Views 進行讀取的橋或許想要堅持:元數據要遵守“多維數據模型完整性元數據規則。請參閱 Setup and User's Guide,以獲取有關 DB2 Cube Views 中元數據驗證級別的具體信息。表 3. 不同對象類型的映射說明對象類型 映射說明 AttributeSQL 表達式模板是映射過程中最難的特性,因為它通常需要對表達式進行解析。另外,始于 DB2 Cube Views 的橋需要處理引用其它 Attribute 的 Attribute,并以遞歸方式遍歷所有 Attribute 來確定給定 Attribute 的最終 SQL 表達式。當映射為 Attribute 時,不需要數據類型特性;當創建該 Attribute 時,由 DB2 多維數據視圖確定它。 Join當映射到 DB2 Cube Views 時創建 Join 很重要,因為它們捕捉構建 Dimension 和 Cube Model 所需的結構信息。Attribute Relationship屬于 Hierarchy 的一部分??稍谳^復雜的 Cube Model 中找到它。Measure與 Attribute 的問題一樣(即 SQL 表達式模板的映射很難)。通常,橋對支持十分復雜的量方面有一些限制。Facts一組具有相同維數的 Measure。請注重,需要映射可選的 Attribute 和 Join。Dimension當創建 Dimension 時,請確保包括了所有的 Attribute。請注重,Hierarchy 和 Join 是可選的。層次結構請注重,Attribute 列表是經過排序的。還要注重,并不答應所有的類型和部署的組合。有時候,橋在可以映射的層次結構類型方面有一些限制。Cube Model它是橋在通常的映射過程中的最高一層對象。假如完全可能的話,至 DB2 Cube Views 的橋應該創建 Cube Model 對象。Cube(和 Cube Facts、Cube Dimension、Cube Hierarchy)被映射為 Cube Model 的一部分(假如它有意義的話)。使用者或生產者橋可以產生或使用 DB2 Cube Views 元數據。人們經常期望橋是雙向的,而且通常先實現一個方向,然后再實現另一個方向。在這個實例中,我們建議先針對 兩個方向理解和記錄映射,即使只馬上實現了一個方向,也是如此。通過定義兩個方向的映射,將有助于確保映射是合理而完整的。映射什么Cube Model 是 DB2 Cube Views 中豐富的元數據對象,它通常是橋進行映射過程中的對象。有時候,橋還會與 Cube Model 一起產生或使用 Cube 對象。將元數據推入 DB2 UDB 的橋并不總是具有足夠的信息來創建 Cube Model。要創建 Cube Model,橋通常需要知道哪些表是事實表,哪些表是維表。假如橋沒有這些信息,那么它仍可以創建象 Attribute 和 Join 之類比較簡單的對象,這些對象仍然要增加值。增量更改支持增量元數據更改是橋在企業倉庫環境中運用的一個重要特性。所有多維數據視圖元數據對象都有一個“修改時間,如在對象的 XML 表示中有 modifyTime="2003-03-25T09:54:51" 。使用這來確定已經更改了哪些元數據對象。API 沒有提供一種方法來查詢自某一時間戳記以來更改的所有對象,所以您必須讀取一組對象,然后檢查每個對象的修改時間。使用這個 API 的 altER 或 IMPORT 操作,將元數據更改推入 DB2。通過使用 IMPORT 操作,可以決定是否要覆蓋已經更改的對象。還可以在實際執行導入之前發現哪些對象有沖突。請參閱 Setup and User's Guide中具體描述的 IMPORT“方式。編程語言假如映射是從 XML 到 XML 的映射,則經常考慮使用 XSLT。但要知道,有時候,映射所需的復雜邏輯難以用 XSLT 實現。我們所知道的大多數橋都是用 Java 或 C/C++ 實現的。XML 解析器可以選擇使用 Xerces 解析器。有關信息,請參閱 http://xml.apache.org/xerces-c/index.html。API 還是 XML 文件不管是產生還是使用 DB2 Cube Views XML,橋都需要決定是調用 API 還是處理 XML 文件。這兩種方法各有優缺點。使用 XML 文件的優缺點使用 XML 文件的優點是橋可以獨立于 DB2 Cube Views 運行,如在另一個客戶機或服務器機器上運行。使用 XML 文件的缺點是:當使用多維數據視圖 XML 時,您不能確保元數據是有效的并與 DB2 中的關系模式同步。當產生 DB2 多維數據視圖 XML 時,您不能確保稍后可以成功地導入元數據。使用 API 的優缺點使用 API 的優點是:橋可以使用 VALIDATE 操作來確保它從 DB2 讀取的任何元數據都是有效的。橋可以通過查詢 DB2 系統目錄表來讀取有關引用表和列的附加信息。橋可以查看 DB2 中的所有元數據。API 的缺點是實現橋所花的時間會較長,因為您需要添加代碼來調用 DB2 Cube Views API。程序將需要產生操作 XML 并解析響應 XML。實現步驟下面是如何成功地設計并實現橋的基本概述:產生一個設計文檔,該文檔包括具體的映射。針對實際的測試案例設計原型并測試映射。根據需要,修訂設計。實現橋(產品級代碼)。對橋執行嚴格的 QA。經驗告訴我們,典型的橋項目需要三個以上的人月來完成。一個月左右的時間用于設計,至少有一個月的時間用于實現,測試大致需要一個月。建議用戶進行 Beta 版測試。結束語IBM 鼓勵商業智能工具和解決方案的開發人員能夠使他們的產品與 DB2 UDB 的 DB2 Cube Views 功能部件相互操作。對于許多 OLAP 工具和應用程序,與 DB2 Cube Views 的集成需要通過使用基于 XML 的存儲過程接口來讀取或創建元數據。正如我們所看到的,在我們熟悉了存儲過程在輸入和輸出中所使用的 XML 語法之后,該接口就很簡單了。在我們對 API 感到滿足之后,就可以從事將 DB2 Cube Views 元數據映射到其它格式的工作。有關為 DB2 Cube Views 構建元數據橋方面,我們已經分享了許多應牢記的考慮事項。對元數據進行合理映射的橋將受到解決方案構建者的高度贊揚,因為一個好的橋將為他們節省構建和部署解決方案的時間。
標簽: DB2 數據庫
主站蜘蛛池模板: 一区二区日本 | 免费久久网站 | 粉色午夜视频 | 999精品嫩草久久久久久99 | 精品专区| 欧美在线综合 | 国产在线一级片 | 精品久久久久久久久久久久久久 | www一起操| 亚洲国产精品成人无久久精品 | 在线观看毛片视频 | 小草av| 伊人久色 | 中文字幕亚洲综合 | 小泽玛丽娅 | 日韩高清av | 涩涩999| av一区二区在线观看 | 欧美日韩综合 | 日本天天操 | 亚洲wu码| 亚洲av毛片一级二级在线 | 成人国产精品视频 | 91午夜伦伦电影理论片 | 亚洲第一黄 | 成人黄色电影小说 | 国产一区二区欧美 | 亚洲成人一区二区三区 | 国色天香成人网 | 亚洲成人精品视频 | 91九色视频国产 | 亚洲伊人久久综合 | 国产精品久久久久久久一区探花 | 另类sb东北妇女av | 91在线成人| 国产免费一区二区三区 | 亚洲国产高清高潮精品美女 | 中文字幕不卡在线 | 国产亚洲久久 | 在线视频中文字幕 | 欧美成人a| 久久99这里只有精品 | 四虎影视| 成人aaa | 日韩另类 | 中出片 | 麻豆亚洲| 久久噜噜噜精品国产亚洲综合 | 黄桃av | av在线官网 | 毛片久久久 | 男人天堂中文字幕 | 永久精品 | 日本做暖暖视频高清观看 | 九九视频这里只有精品 | 欧美性一区二区三区 | 免费色在线 | 久久视频一区二区 | 亚州中文字幕蜜桃视频 | 日韩黄色片免费看 | 久国产 | 欧美日韩一级二级三级 | 精品在线一区二区 | 亚洲网站在线免费观看 | 91精品国产欧美一区二区成人 | 成人亚洲视频 | 在线视频亚洲 | 欧美hdfree性xxxx | 日韩一区欧美 | 国产伦精品一区二区三区四区视频_ | 北条麻妃99精品青青久久 | 999视频在线| 久草视频播放 | 欧美一区二区精品 | 一级在线观看视频 | 91精品国产欧美一区二区 | 色黄网站 | 欧美日韩久久久 | 国产馆一区二区 | 国产精品久久久久久久久久久久 | 精品免费国产一区二区三区 | 亚洲成人精品在线观看 | 免费视频一区二区 | 黄毛片网站 | 亚洲欧美日韩在线 | 国产精品美女久久久久久久久久久 | 国外成人在线视频 | 亚洲国产精品成人无久久精品 | 999精品视频 | 亚洲国产成人在线 | 欧美日韩精品一二区 | 在线99| 欧美日韩视频在线观看一区 | 亚洲日韩中文字幕一区 | 欧美在线一区二区 | 欧美精品一二三 | 亚洲一区二区中文字幕 | 国产精品成人3p一区二区三区 | 一级免费大片 | 日本久久精品电影 | 亚洲一二三 | 国产精品欧美一区二区三区 | 久草在线视频免费播放 | 日本不卡一区 | 国产一区二区在线免费观看 | 私人毛片免费高清视频 | 婷色综合 | 亚洲免费电影一区 | 精品欧美激情在线观看 | 一级片免费视频 | 国产高清久久 | 午夜精品视频在线观看 | 国产人体视频 | 五月天中文字幕 | 亚洲视频在线免费观看 | 国产精品久久久久久久午夜片 | 国产精品久久久久久久久 | 成人精品网站在线观看 | 日韩福利 | av中文字幕在线观看 | 成人欧美一区二区三区黑人孕妇 | 狠狠躁夜夜躁人人爽天天高潮 | 欧美自拍视频在线 | 九九99九九 | 先锋av资源在线 | 久久免费精品视频 | 亚洲狠狠爱一区二区三区 | 美女午夜影院 | 欧美与黑人午夜性猛交久久久 | 毛片网站在线观看 | 日本中文在线 | 欧美日韩激情 | 欧美美女爱爱视频 | 久久精品欧美一区二区三区不卡 | 黄色高清视频在线观看 | 美女一区二区三区在线观看 | 成人久久久 | 2019天天操 | 国产精品久久久久久久久久 | 91视视频在线观看入口直接观看 | 夜夜艹| 天天操网| 欧洲一级视频 | 欧美黑人xxx | 国产一区二区三区久久久 | 欧美精品成人一区二区三区四区 | 在线中文字幕av | 人人澡人人射 | 精品久久久久久 | 国产激情在线看 | 亚洲成人精品 | 国产精品久久婷婷六月丁香 | 国产高清视频 | 欧美99| 在线视频成人永久免费 | av中文字幕在线 | 蜜桃视频精品 | 欧美日韩国产一区二区 | 亚洲香蕉精品 | 国产91在线观看 | 国产精品久久久久久久一区探花 | 伊人91 | 亚洲h在线观看 | 欧美国产日韩一区 | av在线入口| 精品久久久久久久 | av黄色在线| 日韩精品视频在线 | 亚洲视频在线观看 | 男女国产网站 | 精品少妇一区二区三区日产乱码 | 美女视频黄的免费 | 正在播放亚洲 | 草草草久久久 | av手机在线电影 | 久久综合爱 | 日本高清中文字幕 | 2021最新热播中文字幕-第1页-看片视频 青青青久草 | 最新中文字幕在线资源 | 蜜桃官网 | 中文字幕亚洲欧美精品一区四区 | 国产一区二区黑人欧美xxxx | 免费啪啪网站 | 久久综合精品视频 | 日韩在线成人 | 欧美不卡一区二区三区 | 成人精品视频一区二区三区 | 国产在线中文字幕 | 亚洲电影一区 | 视频一区在线观看 | 国产一区在线看 | 中文字幕在线永久在线视频 | 国产精品视频yy9299一区 | 国产一区国产二区在线观看 | 欧美视频一区 | 国产精品久久久久久久久免费软件 | 中文字幕日韩在线视频 | 91精品国产欧美一区二区 | 日韩在线视频第一页 | 91不卡 | 久久国产精品99久久久久久老狼 | 亚洲精品乱码久久久久久麻豆不卡 | 免费看的黄色 | 国产黄色av | 日韩极品在线 | av网站观看 | 国产第一亚洲 | 99久久夜色精品国产亚洲1000部 | 亚洲国产精品一区二区久久 | 影音先锋亚洲精品 | 国产丝袜一区 | 国产成人av在线 | 在线色网 | 久久国产精品系列 | 日本精品国产 | 国产成人99 | www.伊人网| 一区二区三区高清 | 中文字字幕一区二区三区四区五区 | 狠狠狠干 | 欧美精品理论片大全 | 一区二区视频 | 国产成人免费 | 国产精品视屏 | 日韩在线视频资源 | 91精品国产高清一区二区三区 | 91麻豆精品国产91久久久资源速度 | 日韩爱爱网址 | 亚洲一区二区三区精品视频 | 国产精品美女久久久久久久久久久 | 美女久久| 亚洲精品乱码久久久久久花季 | 久久国产精品免费一区二区三区 | 91精品国产综合久久久久久丝袜 | 亚洲成人一区二区 | 日韩欧美高清视频 | 国产精久| 欧美高清视频在线观看 | 精品乱子伦一区二区三区 | 欧美日韩精品一区二区三区在线观看 | 久久国产精品久久久久久 | 久久精品一区二区三区中文字幕 | 色一情一乱一伦一区二区三区 | 国产精品久久久久久久久久 | ririsao久久精品一区 | 波多野结衣一区在线观看 | 日本不卡免费新一二三区 | 精品视频网| 亚洲国产伊人 | 国产大学生一区 | 青青草视频在线免费观看 | 日韩爱爱网址 | 91久久久久久久久久久久久 | 99国产精品一区 | 999在线观看视频 | 无码日韩精品一区二区免费 | 在线观看亚洲一区二区 | 成人久久18 | 国产一区二区免费电影 | 9999久久久久 | 蜜月va乱码一区二区三区 | 国产精品久久久久久久久久久久久久 | 国产精品第2页 | 欧美亚洲综合久久 | 91视频免费看 | 亚洲人人| 日韩在线网 | 涩涩视频在线 | 超碰97人人人人人蜜桃 | 91日日| 国产精品极品美女在线观看免费 | 亚洲精品二区 | 日韩a∨精品日韩在线观看 山岸逢花在线 | 精品视频一区二区三区四区 | 欧美欧美欧美 | 偷拍电影一区二区三区 | 国产18av| 国产免费一区二区 | 精品一区二区三区国产 | 在线观看成人网 | 亚洲国产精品久久 | 亚洲成人精品一区二区三区 | 在线中文字幕视频 | 欧美性大战久久久久久久蜜臀 | 午夜精选视频 | 欧美一区二区三区电影 | 国产精品69久久久久水密桃 | 免费国产一区 | 视频一区久久 | 欧美第一页 | 亚洲国产精品久久人人爱 | 夜夜夜久久久 | 日日干天天干 | 在线观看国产视频 | 国产日韩一区二区 | 国产成人不卡 | 国产日韩精品一区二区在线观看播放 | 中文字幕在线三区 | 国产精品乱码一区二区三区 | 综合久久精品 | 伊人网伊人 | 亚洲污视频 | 精品成人佐山爱一区二区 | 久久网页 | 在线观看欧美一区 | 91最新网站| 人人爽日日爽 | 亚洲中午字幕在线观看 | 亚洲91| www.久久久.com | 精品一区二区三区四区 | 不卡一区二区三区四区 | 海外中文字幕在线观看 | 久久成| 夜夜操天天干, | 中文字幕天堂在线 | 精品一区二区三区在线观看 | 在线观看视频一区 | 欧美精品欧美极品欧美激情 | 黄色在线免费 | 欧美日韩在线观看一区二区三区 | 国产一区二区在线看 | 久久综合一区二区 | 亚洲综合欧美日韩 | 欧美性一区二区 | 国产偷录视频叫床高潮对白 | 亚洲精品一区二区另类图片 | 九九免费视频 | 欧美日韩国产91 | 国产人妖一区 | 精品日韩一区二区 | 麻豆资源| 成人av片在线观看 | 99久久国产综合精品女不卡 | 午夜电影网站 | 日韩视频免费在线播放 | 久久久性色精品国产免费观看 | 一区视频| 欧美激情一区二区三区四区 | 国产在线精品一区二区三区 | 国产福利免费视频 | 日韩中文字幕在线观看 | 国产日韩精品一区二区 | 天天干天天操天天干 | 免费观看一级淫片 | 日韩精品一区二区三区四区视频 | 日韩一区二区三区在线播放 | 国产免费黄色大片 | 天堂资源 | 色婷婷av一区二区三区软件 | 午夜天| 久久久久久这里只有精品 | 亚洲国产aⅴ成人精品无吗 一区视频在线 | 男女网站在线观看 | 成人亚洲网站 | av大片在线 | 欧美男人天堂网 | av黄色在线 | 亚洲人成网站999久久久综合 | 国产精品夜色一区二区三区 | 国内在线一区 | 久久97视频| 久久国产一区 | 中文字幕av网 | 成人精品福利视频 | 日韩精品一区二区三区在线播放 | 国产区在线观看 | 91久久久久 | 欧美激情首页 | 久久久国产精品视频 | xvideos.蜜桃一区二区 | 成人av入口 | m豆传媒在线链接观看 | 国产羞羞视频在线观看 | 日韩欧美在线免费观看 | 亚洲区在线 | 一级片在线免费观看视频 | 超碰8| 欧美精品a∨在线观看不卡 欧美日韩中文字幕在线播放 | 国产伦精品一区二区三区照片91 | 国产中文在线 | 日韩福利一区 | 国产欧美久久一区二区三区 | 一级黄色影片在线观看 | 成人在线免费网站 | 国产一在线 | 最新高清无码专区 | 丝袜美腿一区二区三区 | 国产精品久久久久久久久久东京 | 国产视频久久 | 久福利 | 精品无人乱码一区二区三区 | 亚洲欧美日韩精品久久亚洲区 | 午夜在线电影 | 北条麻妃99精品青青久久 | 色综久久 | 日韩欧美在线观看一区 | 国产日本韩国在线 | 色玖玖 | 国产女人免费看a级丨片 | 国产丝袜在线 | 亚洲国产自产 | 国产男女做爰免费网站 | 亚洲免费视频网站 | 在线观看黄色大片 | 久久久久久久久国产成人免费 | 亚洲国产精品一区二区久久,亚洲午夜 | 久热中文在线 | 91久久国产精品 | 中文字幕在线观看 | 国产成人精品一区二区三区四区 | 午夜av毛片 | 国产精品久久久久久婷婷天堂 | av网站推荐 | 日本韩国欧美一区 | 午夜私人影院在线观看 | 伊人电影综合网 | 久久99深爱久久99精品 | 亚洲成人免费影院 | 国产特一级黄色片 | 午夜精品一区二区三区在线播放 | 日本a v在线播放 | 欧美第8页| 黄色片网站在线观看 | 久久精品系列 | 欧美中文一区 | 毛片网免费| 亚洲精品久久 | 在线看国产 | 在线日韩成人 | 99精品一区二区三区 | 日韩三区在线 | 成人久久18免费观看 | 精品久久久久久久久久久久 | 久久伦理电影网 | 国产精品日韩欧美一区二区 | 欧美一级片在线 | 欧洲视频一区二区三区 | www.久久久| 五月天婷婷综合 | 电家庭影院午夜 | 中文字幕一区二区三区精彩视频 | 欧美日韩国产一区二区三区不卡 | 婷婷精品视频 | 天天干欧美| av高清在线免费观看 | 久久久久中文 | 成人免费小视频 | 91在线看片 | 干干人人 | 国产精品成人在线视频 | 久久久久久成人 | 中文字幕高清视频 | 激情一区| 性欧美精品高清 | 蜜桃视频麻豆女神沈芯语免费观看 | 国产一区二区在线电影 | 91视频在线免费观看 | 国产精品国产精品国产专区不片 | 亚洲免费在线看 | 国产成人在线视频 | 日韩免费网站 | 国产二区视频 | 九色91在线| 色视频www在线播放国产人成 | 日本成人中文字幕 | 青娱乐国产精品视频 | 国产一区二区在线播放 | 国产视频1 | 亚洲大尺度视频 | 另类五月 | 亚洲一区二区在线视频 | 国产一区二区三区久久久久久久久 | 国产精品无码久久久久 | 国产免费一区二区三区最新不卡 | 国产精品久久久久久久娇妻 | 91香蕉视频 | 日韩视频在线观看视频 | 先锋资源中文字幕 | 亚洲精品国产综合区久久久久久久 | 亚洲欧美中文字幕 | 欧美大片网站 | 一级欧美一级日韩片 | 亚洲瑟瑟 | 特级黄一级播放 | 国产69精品99久久久久久宅男 | 国产日韩精品在线 | 国产精品中文字幕在线观看 | 最新黄色网址在线播放 | 亚洲视频一区二区三区 | 国产午夜精品久久久久免费视高清 | 国产精品美女久久久久久免费 | 亚洲国产成人在线 | 久久成人国产精品 | 麻豆高清免费国产一区 | 久久艹久久 | 日韩精品视频在线 | 欧美一区二区三区免费电影 | 91精品久久久久久久久中文字幕 | 成人免费一区二区三区视频网站 | 欧美成人精品一区二区三区 | 国产欧美精品一区二区三区四区 | 欧美一区二区三区aa大片漫 | 毛片久久久 | 亚洲精选一区二区 | 成人免费黄色片 | 精品二三区 | 久久久精品456亚洲影院 | 一卡二卡久久 | 成人精品久久 | 日韩在线观看中文字幕 | 欧美国产日韩精品 | www亚洲一区 | 久久日韩 | 青青久久 | 日本一本在线 | 国产高清一级 | 亚洲国产精品一区二区久久 | 欧洲亚洲精品久久久久 | 黄色网址大全在线观看 | 伊人久久一区二区三区 | 成年人在线视频 | 图片区 国产 欧美 另类 在线 | 久久午夜电影 | 国内在线精品 | 亚洲高清在线观看 | 日韩一区二区免费视频 | 免费久久99精品国产婷婷六月 | 视频一区 日韩 | 精品亚洲一区二区三区 | 精品一区二区久久 | 操操网站 | 亚洲一区二区日韩 | 成人久久久久久久久 | 久久久久久免费毛片精品 | 欧美日韩在线视频一区二区 | av天空| 伊人操操 | 国产91在线视频 | 亚洲不卡 | 欧美视频免费在线观看 | 日韩五码 | 国产精品久久免费观看spa | av观看| 亚洲毛片在线观看 | 在线播放一级片 | 一区二区三区视频 | 成人高清视频免费观看 | 成人精品视频99在线观看免费 | 亚洲成a人v欧美综合天堂麻豆 | 久久久国产视频 | 中文字国产精久久无 | 美女精品视频 | 曰本人一级毛片免费完整视频 | 国产精品九九九 | 国产永久免费 | 99精品免费 | 中文字幕在线第一页 | 欧美精品一区二区三区免费视频 | 亚洲天堂免费 | 夜夜夜操| 99免费在线播放99久久免费 | 欧美99| 黄网站涩免费蜜桃网站 | 欧美日韩在线一区二区三区 | 小草av| 久久av网 | 成人精品在线 | 97视频久久久 | 国产色区 | 日韩一区欧美一区 | 男人电影天堂 | 一区在线视频 | 欧美日韩精品久久久 | 日韩一区二区在线观看 | 羞羞视频免费在线观看 | 亚洲精品乱码久久观看网 | 欧美极品视频 | 国产精品美女久久久久久久久久久 | 亚洲一区电影 | 亚洲精品一区二区三区在线 | 欧美视频精品在线观看 | 天天操操| 亚洲精品国产综合区久久久久久久 | 色com| 欧美中文一区 | 自拍视频网 | 人人鲁人人莫一区二区三区 | 欧美狠狠操| 香蕉视频成人在线观看 | 免费在线一区二区 | 欧美一区二区在线视频 | 亚洲精品久久一区二区三区 | 美女视频一区二区三区 | 三级视频在线 | 国产亚洲在线 | 国产精品中文字幕在线 | 97视频观看 | 伊人逼逼 | www九九热| 国产精品久久久久久久久久久久 | 老司机深夜福利视频 | 一级a毛片 | 在线视频 亚洲 | 中文字幕一区二区三区四区 | 美女福利视频网站 | а√天堂中文在线资源8 | 色免费在线观看 | 丁香婷婷在线 | 午夜免费视频 | 欧美喷潮久久久xxxxx | 亚洲精品乱码久久久久久蜜桃不卡 | 成人福利影院 | 欧美一区二区视频 | 五月婷婷在线观看视频 |