构建DB2 Cube View元数据桥 (4)

发表于:2007-05-26来源:作者:点击数: 标签:
【导读】本文的目标读者群是对基于IBM DB2通用 数据库 V8(UDB)使用DB2 Cube View应用编程接口(API) 开发 或者整合OLAP应用程序感兴趣的技术管理者和工作人员。 尤其是对于构建组件在DB2 Cube View和其它工具或元数据容器之间交换元数据的开发者。 删除元数

【导读】本文的目标读者群是对基于IBM DB2通用数据库V8(UDB)使用DB2 Cube View应用编程接口(API)开发或者整合OLAP应用程序感兴趣的技术管理者和工作人员。 尤其是对于构建组件在DB2 Cube View和其它工具或元数据容器之间交换元数据的开发者。

 

 

删除元数据

 

使用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>;

 

 

例子⒉删除一个cube对象和它的关联对象

 

这里是删除db2admin.MyCube和它的关联对象的操作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">;
            <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>;

 

跟踪

 

当一个错误出现的时候,你不清楚为什么应用程序接口会失败,那么常常需要启动应用程序接口跟踪。一般是开启高级跟踪,如果绝对必要的时候也可只开一个中级或者低级跟踪。

 

为了打开跟踪,象下面显示的这样修改你的配置文件DB2md_config.XML。每个DB2实例都有一个配置文件,你可以在实例目录中找到它。在Windows中,默认的DB2实例被命名为"DB2"并且配置文件可以在sqllib/db2/db2md_config.xml中找到。在下面的XML中,跟踪等级已经被设置为高级别。

 

 

 

<?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 View之间交换元数据。

 

 

 

图1 一个元数据桥

 

例如,IBM提供了一个DB2 Cube View和IBM DB2 OLAP Server产品之间的桥。更确切地说,这个桥在DB2 Cube View和DB2 OLAP Server上的OLAP Integration Server之间交换元数据。

 

当设计一个元数据桥的时候,有许多事项需要考虑。我们将更详细地讨论其中的一些问题。

 

· DB2 Cube View元数据对象模型与其它格式的兼容性/相似性?

 

· 桥是单向还是双向?

 

· 每次映射什么级别的元数据?通常,Cube模型或者Cube对象(连同所有被引用的对象一起)是一个桥的来源或者目标。

 

· 桥支持和管理逐渐增加的元数据变化吗?

 

· 使用哪种程序设计语言?

 

· 对于这种程序设计语言,哪些XML语法分析程序有效?

 

· 当使用DB2 Cube View元数据的时候,桥会调用应用程序接口来读取元数据或者读入一个输出元数据XML文件吗?

 

· 当产生DB2 Cube View元数据的时候,桥将调用应用程序接口来创建元数据,或者把元数据写入一个XML文件吗?

原文转自:http://www.ltesting.net