DB2 V9.7 pureXML 增强 XML 数据的业务洞察力和可伸缩性

IBM DB2® for Linux®, UNIX®, and Windows®, Version 9.7(2009 年 4 月 22 日发布)为 pureXML 提供新的数据库设计、管理和开发特性。了解这些技术如何帮助公司更有效地把 XML 数据集成到业务智能化环境中,以及公司如何应对不断增长的 XML 数据量。本文总结新的 pureXML...显示全部
IBM DB2® for Linux®, UNIX®, and Windows®, Version 9.7(2009 年 4 月 22 日发布)为 pureXML 提供新的数据库设计、管理和开发特性。了解这些技术如何帮助公司更有效地把 XML 数据集成到业务智能化环境中,以及公司如何应对不断增长的 XML 数据量。本文总结新的 pureXML 功能,解释如何使用它们,讨论示例应用场景。

  简介

  许多组织力求创建灵活可靠的 IT 环境,从而更好地洞察力关键业务操作,这要求核心信息管理系统能够适应不断变化的业务需求。为了帮助公司解决这个难题,IBM 在几个重要方面改进了 DB2 9.7 的 pureXML 特性。

  DB2 9.7 中的新特性提供针对 XML 数据的新的数据库设计选项,包括散列分区(数据库分区)、范围分区(表分区)和多维聚簇。这些选项可以帮助公司应对巨大的数据量,实现并行处理环境,简化时间敏感数据的添加或删除,提高许多查询的性能。通过单独或结合使用这些 DB2 设计选项,公司可以把 XML 数据集成到关系数据仓库中;为 XML 消息、文档和数据 feed 创建操作性数据存储;提高 XML 事务处理工作负载的可伸缩性。

  这些新的数据库设计选项只是 DB2 9.7 提供的 pureXML 改进的一部分。本文介绍这些选项和其他新的 pureXML 功能,解释它们对哪些场景最有帮助,提供帮助您入门的提示。本文讨论以下主题:

  DB2 pureXML 简要概述,帮助不熟悉这种技术的读者了解基本知识。


  DB2 pureXML 的 示例用例 和应用场景。


  基于散列的分区,这会显著提高可伸缩性。

基于范围的分区,这有助于随时间的推移滚入 和滚出 数据(数据仓库中的一项常见需求)。


  多维聚簇,常常能够提高分析查询的性能。


  XML 数据和索引的压缩,这会改进某些工作负载的存储效率和运行时性能。


  用户定义函数,它们可以使用、处理和返回 XML 数据。这些函数有助于促进代码重用,简化查询的开发和维护。


  新的存储过程、系统提供的函数、性能改进和其他特性,它们可以简化 DB2 pureXML 管理和应用程序开发

  DB2 pureXML 概述

  从 2006 年开始,DB2 9 为表和 XML 层次结构中建模的数据提供一种通用的应用程序编程接口和数据库管理平台。这种混合型数据库管理体系结构(见图 1)让公司能够扩展传统的关系数据库环境,直接管理 XML 消息和文档,而不需要把数据分解 或映射到多个表的多个列(由此把 XML 转换为传统的 SQL 数据类型)。XML 数据可以按照原有的层次化格式与关系数据一起存储。应用程序可以轻松高效地获取 XML 数据的相关部分。应用程序还可以简便地集成 XML 数据和关系数据。

图 1. 支持关系和 XML 数据的 DB2 9 体系结构



  为了使用 DB2 pureXML 功能,管理员必须创建 XML 类型的一个或多个列。XML 索引、查询优化、存储管理和其他 DB2 服务有助于确保出色的效率和运行时性能。

接下......收起
参与7

返回mudanjiang的回答

“答”则兼济天下,请您为题主分忧!
接上......

与管理只包含关系列的范围分区表相比,管理包含一个或多个 XML 列的范围分区表的差异并不大。尤其是,对于范围分区表,仍然可以使用以前支持的创建和修改表的 SQL 语句。另外,分区键仍然必须基于关系数据。
  清单 3 创建一个包含关系和 XML 数据的范围分区表,滚出(分离)包含老数据的分区,滚入(附加)包含最近数据的分区。

清单 3. 结合使用范围分区和 DB2 pureXML
-- Create a range-partitioned table 
CREATE TABLE salespart ( 
  orderid   INT, 
  orderdate  DATE, 
  ordermonth INT NOT NULL GENERATED ALWAYS AS (month(orderdate)), 
  orderyear  INT NOT NULL GENERATED ALWAYS AS (year(orderdate)), 
  customerid INT, 
  salesrepid INT, 
  details   XML) 
PARTITION BY RANGE (orderyear, ordermonth) 
 (PART q109 STARTING(2009, 1) ENDING (2009, 3) INCLUSIVE, 
  PART q209 ENDING (2009, 6) INCLUSIVE, 
  PART q309 ENDING (2009, 9) INCLUSIVE, 
  PART q409 ENDING (2009, 12) INCLUSIVE); 
 
-- Insert or load data for 1Q – 4Q 2009 sales into the table  
. . . 
 
-- Create another table to contain new sales data to be attached 
CREATE TABLE currentsales ( 
  orderid   INT, 
  orderdate  DATE, 
  ordermonth INT NOT NULL GENERATED ALWAYS AS (month(orderdate)), 
  orderyear  INT NOT NULL GENERATED ALWAYS AS (year(orderdate)), 
  customerid INT, 
  salesrepid INT, 
  details   XML) ; 
 
-- Insert or load new sales data for 1Q 2010 into the "currentsales" table 
. . . 
 
-- Attach a new partition for the 1Q 2010 sales data. 
-- Perform an integrity check for index maintenance, range checking, etc. 
ALTER TABLE salespart ATTACH PARTITION q110 
 STARTING (2010, 1) ENDING (2010, 3) INCLUSIVE 
 FROM TABLE currentsales ; 
 
SET INTEGRITY FOR salespart IMMEDIATE CHECKED; 
 
-- Detach the partition containing old sales data from 1Q 2009 
ALTER TABLE salespart DETACH PARTITION q109 INTO OLDSALES; 

现在,可以使用 Net Search Extender (NSE) 对范围分区表进行全文搜索。

  使用多维聚簇提高查询性能

  对包含 XML 数据的表进行多维聚簇是另一个新的数据库设计选项。在以前的版本中,这个功能只能应用于不包含 XML 列的表。多维聚簇对于分析应用程序尤其有用,分析应用程序通常会对多个列中的数据执行查询。

  例如,分析应用程序可能需要按产品、地区和日期(三个维)获取一个大型事实表中的销售信息。为了支持这样的查询,管理员可以通过使用多维聚簇让 DB2 按这些维组织 SALES 表中的行。与同一产品在同一地区同一时间段内的销售相关的行集中存储在一个或多个数据块中,所以这种设计有助于减少 I/O 和改进多维查询的运行时性能。另外,多维聚簇还可以改进数据重组、插入和删除的性能。

  在 DB2 9.7 中,包含 XML 列的表可以应用多维聚簇,但是聚簇维必须由关系列定义。与以前的版本一样,管理员使用 CREATE TABLE 语句的 ORGANIZE BY DIMENSION (…) 子句指定多维聚簇。清单 4 创建一个按产品、地区和日期对销售数据进行多维聚簇的表。

清单 4. 创建使用多维聚簇的包含关系和 XML 数据的表

CREATE TABLE salesMDC ( 
   id     INT, 
   product  VARCHAR(25), 
   region   VARCHAR(25), 
   time    DATE, 
   details  XML) 
ORGANIZE BY (product, region, time) 

  使用 XML 数据和索引压缩提高存储效率和性能

  压缩 XML 数据和 XML 索引可以提高存储效率和受 I/O 限制的查询的运行时性能。DB2 9.7 在这两方面提供了新选项。
  可以以两种方式压缩 XML 数据:

占用的存储空间少于 32KB 的小型 XML 文档可以与关系数据一起内联存储 在同一行中,可以对整行进行压缩。这种内联功能是在 DB2 9.5 中引入的,现在仍然是有用的选项。


  更大的 XML 文档存储在与关系数据分离的数据区域中,它们也可以压缩。在默认情况下,DB2 把 XML 数据放在一个称为 XML Data Area (XDA) 的单独位置,可以处理最大 2GB 的文档。DB2 的新版本允许压缩 XDA 中存储的 XML 数据。

  在 DB2 9.7 中,只需通过 CREATE TABLE 语句的 COMPRESS YES 子句启用 XML 数据的压缩功能,这会同时压缩表中的关系和 XML 列。为了取得最好的压缩效果,DB2 使用两个单独的压缩词典,一个用于关系列,另一个用于表的 XML Data Area。这两个词典是在表中填充了几 MB 数据之后自动生成的。还可以为现有的表启用压缩,然后可以重组它以便压缩数据。

  IBM 所做的早期测试表明,压缩 XML Data Area 中存储的 XML 数据常常可以节省 60%-80% 的磁盘空间,见图 6。

图 6. 压缩 XDA 中存储的 XML 数据可以节省 60%-80% 的磁盘空间



  图 6 是 IBM 对客户提供的或公共领域中的六个数据集进行测试的结果。这些数据集包含从 2KB 到 100MB 的各种大小的文档。

接下......
2009-12-21
浏览853

回答者

mudanjiang
擅长领域: 数据库

mudanjiang 最近回答过的问题

回答状态

  • 发布时间:2009-12-21
  • 关注会员:0 人
  • 回答浏览:853
  • X社区推广