跳转到主要内容

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件.

当您初次登录到 developerWorks 时,将会为您创建一份概要信息。您在 developerWorks 概要信息中选择公开的信息将公开显示给其他人,但您可以随时修改这些信息的显示状态。您的姓名(除非选择隐藏)和昵称将和您在 developerWorks 发布的内容一同显示。

所有提交的信息确保安全。

  • 关闭 [x]

当您初次登录到 developerWorks 时,将会为您创建一份概要信息,您需要指定一个昵称。您的昵称将和您在 developerWorks 发布的内容显示在一起。

昵称长度在 3 至 31 个字符之间。 您的昵称在 developerWorks 社区中必须是唯一的,并且出于隐私保护的原因,不能是您的电子邮件地址。

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件.

所有提交的信息确保安全。

  • 关闭 [x]

基于 DB2 的高效低成本的数据仓库解决方案

张玉颖, 软件工程师, IBM
张玉颖的照片
张玉颖,高级软件工程师,熟悉 IBM Data Warehouse 相关产品,具有丰富的项目实施经验,尤其擅长数据建模和 ETL 架构设计。

简介: 本文从数据仓库的实际应用出发,描述了基于 DB2 的数据仓库解决方案,该方案不仅降低了成本,保证了性能,同时具有高可用性,线性扩展等能力。

发布日期: 2011 年 12 月 19 日
级别: 中级
访问情况 : 406 次浏览
评论: 


免费下载:IBM® InfoSphere Warehouse 9.7 Enterprise Edition 试用版
下载更多的 IBM 软件试用版,并加入 IBM 软件下载与技术交流群组,参与在线交流。

背景介绍

自上世纪 80 年代以来,数据仓库在理论界掀起了一股热潮,同时在实际应用中也得以普遍推广。数据仓库应用的发展经历了从最初的静态报表到后来的高级分析,包括高级统计、文本分析和数据挖掘等等。对于大多数企业而言,数据仓库的存储平台及其支撑的各种应用已经成为企业运营管理和经营决策不可缺少的系统。

对企业而言,随着数据仓库的投产和使用,用户的交互能力越来越强,应用本身也越来越完善,越来越成熟。数据仓库在经营分析中扮演着越来越重要的角色。更重要的是,在数据仓库存储平台中积累和沉积了大量的历史数据,这些数据已经成为了企业重要的信息资产。某种程度而言,数据就是企业的灵魂这种说法毫不夸张。企业也越来越重视,越来越致力于各种内外部数据的收集和积累。

在数据不断累积,信息迅速膨胀的同时,企业也面临着系统扩容带来的巨大投资,尤其是存储成本的不断增长,成为企业不得不面对的难题。一方面数据必须保留,应用必须支持;另一方面企业预算有限,投资追加有限;很多 IT 部门的领导在数据仓库运营几年之后面临着如此的两难处境。即便是一些刚刚着手建设数据仓库和 BI 应用的企业,在最初的规划阶段,也经常为数据仓库的成本,动辄上千万的投资而望而却步。

如果一味的追求成本的降低,而不考虑架构的合理性,不考虑将来的扩展性,不考虑用户对性能响应的需求,这样的数据仓库建设也往往难以长久,国内外失败的案例也不在少数。如何有效的降低数据仓库的投资成本,同时保证数据仓库应用所需的性能成为一个关键点。而 DB2 产品本身的特性为我们提供了一种高效低成本的数据仓库可选方案,尤其是针对预算紧张的中小型客户,不失为一个最佳选择。

DB2 基于低端设备的数据仓库方案

无可置疑,国内很多用户青睐于 DB2 在 Power server 上的稳定、安全和高效。然而,并不是所有的客户都有充分的预算和资金。针对这种情形,我们为客户提供了基于低端设备的数据仓库方案。

由于 DB2 与生俱来的非共享架构,使得其在低端 PC server 上同样具有支持上百 TB 数据处理的能力。多结点的性能均衡的并行处理机制,使得其对查询和处理的性能支持表现优越。同时,用户可以使用 PC server 的内置存储,而不必购买外置存储服务器,进一步节约了居高不下的存储成本。

我们知道,基于数据仓库的自身特点和应用场景,复杂的查询和大量历史数据的读写,往往使得 I/O 成为系统的瓶颈,事实上,60% 以上的数据仓库性能问题往往都集中在 I/O 上。而 DB2 采用的是非共享架构,如图 1,这种架构能够保证各个数据库分区之间的真正并行处理,进而大大的提高了处理性能,尤其是 I/O 性能,同时具有很好的扩展性。也就是说,可以为数据库建立多个数据库分区,每个分区有自己独占的 Engine, LockMg,Caches 等等,同时可以将每个分区的逻辑存储对应到实际的物理存储上,这样一条查询语句可以在多个分区上并行。如果设计十分合理,数据分布完全均衡,那么一条查询的返回时间最佳可以提高到 1/n。


图 1. 数据库分区示意图
图 1. 数据库分区示意图

正是由于 DB2 的架构特征,我们可以将数据仓库搭建在多个 pc server 节点上,即在每个 pc server 上建立相应的数据库分区,不同节点之间采用高速的网络带宽以保证节点之间的通讯。为了进一步节约成本,我们可以考虑采用每个 pc server 上的内部存储,每个节点独占自己的内部存储,也独享内部存储的 I/O。


图 2. 基于 PC 机的架构图
图 2. 基于 PC 机的架构图

如图 2 所示,在物理架构上,每台 PC 机作为一个独立的物理节点,配置一定数量的内置硬盘,多台 PC 机之间通过高速网络互连,形成一组集群,共同支撑整套数据仓库的架构。在逻辑架构上,每台 PC 机相当于一个 BCU 单元,每个单元内部建立若干个数据库分区,每个分区的逻辑存储对应到相应的内置硬盘组成的盘阵上,即实现物理卷到逻辑卷之间的对应。在节点集群上建立一个多分区数据库,进而最大化的利用每个节点的性能,实现并行处理。其中,至少有一台节点要充当管理节点,用以充当 coordinator 节点,catalog 节点和用于存储单分区数据的节点。其余节点充当数据节点,用于处理多分区数据。如果需要,还可以适当增加应用节点,如 OLAP 节点,ETL 节点或者 Reporting 节点。在数据仓库的设计上,要进行分区的合理划分,更重要的是选择合适的分区键,使得关系密切的数据较为均衡的分布在同一个分区内部,最大程度上避免分区之间过多的数据交互带来的拥堵和等待。同时,节点之间的网络带宽也至关重要,可以考虑万兆以太网。

同时,在此架构基础之上,可以使用 DB2 数据库的一些特性,如数据压缩、MQT、MDC 等技术,进一步提高性能或降低成本。

该方案的主要优势

这台在内置存储的 PC 机集群上搭建 DB2 的数据仓库架构,具有以下明显的优势:

  • 低成本

目前,很多用户都在极力控制和降低数据仓库的投入成本。众所周知,数据仓库的建设并非一蹴而就,而是一个反复迭代,螺旋式上升的过程。在数据仓库的整个生命周期中,伴随着应用的扩展,伴随着数据的积累,软硬件投资都不断增加。尤其是数据量呈摩尔定律迅速增长的情况下,不断攀高的存储成本更是让客户束手无策。而将 DB2 搭建在多台带内置存储的 PC 机上这套方案,不仅减少了高端硬件设备的投资,而且节约了外置存储的消耗。同时,有些企业可以直接就地利用现有的 pc 机资源,而不必额外购买硬件资源。尤其是针对中低端客户,不失为一个最佳选择。

  • 高性能

成本固然是客户所考虑的重要因素,然而针对数据仓库的应用场景,性能也是一个不可忽视的因素。在数据仓库的应用中,经常是大量历史数据的复杂查询或复合计算,如果性能没有保证,既满足不了 ETL 的时间窗口,又大大影响了终端客户的使用效果。尤其是处理频繁、响应要求较高的查询,性能问题更为至关重要。由于 DB2 数据库自身的架构特点,使得上述方案降低成本的同时,很好的保证了性能。其性能已经在真实的用户场景测试中得到了验证,并明显优于同类竞争产品在相同硬件资源之下的性能,得到了用户的认可和好评。

  • 易扩展

在数据仓库的生命周期中,系统的升级和扩容不可避免。即便在数据建设的最早期,就应该很好地考虑和规划将来的扩容方案。很多数据仓库的方案在扩展的时候,不仅成本难以控制,而且性能明显下降,很难维持数据仓库长久的生命力。上述方案的扩展不仅操作简便,而且保证了性能的线性增长。在需要扩容的时候,只需要依据数据量和应用的评估,增加合适数目的节点,然后进行数据的重新分布即可。操作简单、快捷,对现行应用几乎没什么影响,并且保证了预计的性能要求。

该方案在实际应用中的测试

事实上,该方案已经结合客户真实的应用场景进行了全面的验证和测试,其结果明显超出了同类产品的性能。

一、测试环境

该测试在客户现场进行,从最初的环境搭建,到方案的设计,到最后的执行历时近 2 个月。客户的实际数据量约 100TB,从中抽取 5TB 作为样本数据,测试了 800 多个 ETL 工作流和数据查询,涵盖了该企业在真实环境中所有典型的应用场景。测试环境如下:

硬件

  • Server -- 华为赛们铁克 OceanStor T3500
  • CPU – 2 个 4 核 Intel Xeon CPU E5430 2.66GHz
  • 内存 – 32GB
  • 内置硬盘 – 22 个 7200 转 1T SATA 盘
  • 网卡 – 82598EB 10 Gigabit AF

软件

  • OS -- Redhat 5.3
  • DB – DB2 9.7

二、测试方案

对测试数据和测试场景进行初步分析以后,结合 BCU 方法论和最佳实践,建立了 1 个管理节点和 16 个数据节点,每个数据节点上建立的 5 个数据库分区。


图 3. 数据库的分区设计图
图 3. 数据库的分区设计图

VLDB 数据仓库应用所需要的最关键的机器性能指标就是存储容量和存储吞吐能力,存储容量决定了整个数据库所能容纳的数据量大小,存储吞吐能力决定了系统单位时间内所能处理的数据量。在测试过程中,使用了数据压缩特性,不仅提高单位磁盘空间存储用户数据的能力,而且提高了单位 IO 带宽传输有效数据的能力。

三、测试结果

在整个测试过程中,对查询的运行时间,资源的占用情况和系统的繁忙程度进行了全面的监控,其结果均令人满意。同时在与同样基于非共享架构的某友商产品的测试比较中,占明显优势。

例如,针对特定的数据处理过程,友商产品一次运行所需时间为 1 小时 40 分钟,DB2 两次完整运行所需时间为:

第一次: 2009 年 12 月 22 日 59 分钟

第二次: 2009 年 12 月 23 日 1 小时 2 分钟

针对 800 多个数据处理任务,在友商产品所占硬件资源高于 DB2 所占硬件资源 37% 的情况下,运行结果如下:

只有 42 个任务比友商产品慢 (4.8%)

有 57 个任务比友商产品稍快一点,不到 1 倍 (6.6%)

有 256 个任务是友商产品任务的 2 ~ 10 倍 (29.8%)

有 378 个任务是友商产品任务的 10 ~ 100 倍 (43.9%)

还有 71 个任务是友商产品任务的 100 倍以上 (8.3%)

结果表明,仅有 5% 的任务 DB2 慢于友商产品,而有 82% 的任务 DB2 高于友商产品的 2 倍到 100 倍。


图 4. 测试结果比较图
图 4. 测试结果比较图

可见,该方案的性能优势十分明显。

总结

针对数据量较大、投资预算有限的数据仓库用户,将 DB2 搭建在多台带内置存储的 PC 机上的方案不失为一种高效低成本的选择。从根本上来说,正是 DB2 数据库与生俱来的非共享架构,提供了高效的并行机制,才使得这套方案兼顾了成本与性能,并提供了良好的扩展性。


参考资料

学习

获得产品和技术

讨论

关于作者

张玉颖的照片

张玉颖,高级软件工程师,熟悉 IBM Data Warehouse 相关产品,具有丰富的项目实施经验,尤其擅长数据建模和 ETL 架构设计。

关于报告滥用的帮助

报告滥用

谢谢! 此内容已经标识给管理员注意。


关于报告滥用的帮助

报告滥用

报告滥用提交失败。 请稍后重试。


developerWorks:登录


需要一个 IBM ID?
忘记 IBM ID?


忘记密码?
更改您的密码

单击提交则表示您同意developerWorks 的条款和条件。 使用条款

 


当您初次登录到 developerWorks 时,将会为您创建一份概要信息。您在 developerWorks 概要信息中选择公开的信息将公开显示给其他人,但您可以随时修改这些信息的显示状态。您的姓名(除非选择隐藏)和昵称将和您在 developerWorks 发布的内容一同显示。

请选择您的昵称:

当您初次登录到 developerWorks 时,将会为您创建一份概要信息,您需要指定一个昵称。您的昵称将和您在 developerWorks 发布的内容显示在一起。

昵称长度在 3 至 31 个字符之间。 您的昵称在 developerWorks 社区中必须是唯一的,并且出于隐私保护的原因,不能是您的电子邮件地址。

(长度在 3 至 31 个字符之间)


单击提交则表示您同意developerWorks 的条款和条件。 使用条款.

 


为本文评分

评论

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=Information Management
ArticleID=782376
ArticleTitle=基于 DB2 的高效低成本的数据仓库解决方案
publish-date=12192011

标签

Help
使用 搜索 文本框在 My developerWorks 中查找包含该标签的所有内容。

使用 滑动条 调节标签的数量。

热门标签 显示了特定专区最受欢迎的标签(例如 Java technology,Linux,WebSphere)。

我的标签 显示了特定专区您标记的标签(例如 Java technology,Linux,WebSphere)。

使用搜索文本框在 My developerWorks 中查找包含该标签的所有内容。热门标签 显示了特定专区最受欢迎的标签(例如 Java technology,Linux,WebSphere)。我的标签 显示了特定专区您标记的标签(例如 Java technology,Linux,WebSphere)。