DB2数据仓库环境的物理数据库设计:简介

良好的">数据仓库设计是最大程度地提高和加速数据仓库实现的投资回报的关键所在。良好的数据仓库设计能带来在可伸缩性、平衡性、灵活性方面都足以满足当前和未来需求的数据仓库。按照本文中提供的最佳实践建议,您可以在设置数据仓库时保证高效的查询性能、简化的维护和健壮的恢复选项,从而获得长期成功。 数据仓库设计分为两个阶段:设计逻辑数据模型和设计物理数据模型。

数据仓库设计的第一个阶段是创建逻辑数据模型,定义各种逻辑实体以及各实体之间的关系。 数据仓库设计的第二个阶段是创建物理数据模型。良好的物理数据模型具有以下属性:

有助于加速各种数据库活动性能的模型。
该模型将在集群化仓库环境中的多个数据库分区之间平衡数据。
该模型支持快速数据恢复。

数据库设计应利用了数据库分区、表分区、多维集群和物化查询表等 DB2 功能。

本文中的建议遵循 IBM Smart Analytics System 产品的某些指南,旨在帮助您开发在可伸缩性、平衡性、灵活性方面都足以满足当前和未来需求的物理数据仓库设计。IBM Smart Analytics System 产品整合了为数据仓库数据库实现和配置硬件、固件及软件的最佳实践。此外还整合了构建文档、可伸缩的数据仓库环境的指导原则。

为了规划一个出色的数据仓库设计,除了需要在数据于某个时间段内进入和退出数据库仓库的时候满足整个生命周期内的目标之外,还要求满足查询性能目标。

在必须制定的许多设计决策中,了解数据仓库数据库的使用和维护方法极为重要。在开始设计数据仓库之前,请先回答以下几个问题:

预期查询性能是怎样的?表示性查询应该是怎样的? 理解查询性能至关重要,因为这对数据仓库设计的许多方面都会产生影响,例如数据库对象及其放置。

数据可用性预期如何? 数据可用性影响着维护操作的安排。这种安排决定了要选择哪些 DB2 功能和分区表选项。

备份等维护操作的安排是怎样的? 这种安排影响着您的数据仓库设计。针对这些操作的战略也影响着数据仓库设计。

如何将数据载入数据仓库?如何从数据库仓库中移除数据? 理解如何在您的数据仓库中执行这些操作可以帮助您确定是否需要临时层。您移除或存档数据的方式也影响着表分区和 MDC 设计。

系统架构和数据仓库设计是否支持预期的数据量类型? 要加载的数据量影响着聚合层的索引、表分区和维护。

本文中的建议和样例提供了这些问题的答案。这些信息可以帮助您规划数据仓库设计。

为各层设计数据库模型

考虑为以下各层采用独立的数据库设计模型: 临时层 临时层是在将数据转入数据仓库之前加载、转换和清理数据的层。在为临时层设计物理数据模型时,应考虑以下指导原则:

创建临时表,跨多个数据库分区存储大量事实数据和大型维度表。

避免在临时表中使用索引,尽可能减少加载过程中的 I/O 操作。然而,如果要在加载数据之后对数据执行操作,则需要根据所用的提取、转换和加载 (ETL) 工具在临时表中定义索引。
将临时表放置在专用的表空间之中。在备份等维护操作中忽略这些表空间,以减少待处理的数据量。
将临时表存放在专用架构中也很有帮助。专用架构能帮助您减少维护操作的数据量。
避免定义与临时层以外的表之间的关系。与临时层中的瞬态数据有依赖关系的数据以后有可能导致生产环境中的恢复操作出现问题。

数据仓库层

数据仓库表是数据库设计的主要组件。它们表示数据仓库内最细粒度的数据级别。应用程序和查询工作负载可以直接访问这些表,也可以通过使用视图、别名或同时使用二者来访问这些表。数据仓库表也是聚合层的数据源。数据仓库层也称为记录系统 (SOR) 层,它是用来存储主数据的地方,能保证跨整个组织的数据一致性。

数据集市层

数据集市是针对组织特定部分(例如部门或业务线)的数据仓库子集。数据集市可以量身定制为提供个别客户、产品或运营行为的洞察。它能提供客户体验和报告功能的实时视图。 您可以操作和提取数据仓库层内的数据,将它们存放在单独的表中,从而创建数据集市。此外,您还可以使用基于数据仓库层中的表格的视图。

聚合层

聚合或汇总数据有助于提高查询性能。引用聚合数据的查询需要处理的行数更少,性能更高。需要刷新这些聚合表或汇总表来反映载入数据仓库的新数据。

时间: 2024-09-21 14:20:43

DB2数据仓库环境的物理数据库设计:简介的相关文章

DB2数据仓库环境的物理数据库设计:DB2 10.1数据仓库设计特性

在您的http://www.aliyun.com/zixun/aggregation/8302.html">数据仓库中,利用 DB2 版本 10.1 的新特性进一步简化数据生命周期管理.优化存储利用率,并存储和检索基于时间的数据.DB2 版本 10.1 引入了以下新特性: "存储优化""多温度带数据存储"第 32 页介绍的"自适应压缩"第 32 页介绍的"使用时态表实现时间旅行查询" 存储优化 在 DB2 版本

DB2数据仓库环境的物理数据库设计:设计聚合层

聚合或汇总数据有助于提高查询性能.您可以利用 DB2 数据库对象,这有助于您聚合数据,例如物化查询表 (MQT).视图或视图 MQT. MQT 也称为汇总表,它能预先计算开销较高或使用频繁的某个(或一组)查询的结果.结果集会存储在专用表中,随后可利用此表来应答常用的查询或类似的查询.在填充或刷新 MQT 中的数据时,引用的源表称为基表. 使用物化查询表 通过利用 MQT 聚合不同级别的数据,可以支持分析数据的应用程序,无需设计多个基表,也无需牺牲数据的原子粒度. 分析查询的次优性能往往是使用 M

DB2数据仓库环境的物理数据库设计:样例场景

这一节介绍了一个物理http://www.aliyun.com/zixun/aggregation/14208.html">数据模型,此模型是针对一家销售大量产品的虚构企业的数据仓库样例场景而设计.该企业数据仓库存储所有这些产品的日常销售数据. 本文中的示例基于样例场景. 物理数据模型设计 下图中的物理数据模型展示了样例数据仓库中使用的表和关系. 图 5. 样例数据仓库的物理数据模型 维度表 样例场景的物理数据模型包含以下维度表,其中存有日期.产品和店铺数据: TB_DATE_DIM TB

DB2数据仓库环境的物理数据库设计:设计物理数据模型

为http://www.aliyun.com/zixun/aggregation/8302.html">数据仓库设计物理数据模型时,应集中精力关注各表的定义以及表之间的关系. 在为物理数据模型设计表时,应考虑使用以下指导原则: 为各维度表定义一个主键,确保最细粒度的级别键的惟一性,并在必要时促进引用约束的实现. 避免在事实表上使用主键和惟一索引,在涉及大量维度键时尤为如此.在摄取大量数据时,这些数据库对象会导致性能成本. 将所连接的各维度对之间的引用约束定义为信息型约束,帮助优化器生成有效

DB2面向OLTP环境的物理数据库设计:数据库操作和维护

在数据库系统进入生产环境之后,工作重点会转向对数据库系统的日常维护.日常运营方面包括性能管理.问题诊断和维护,它们必须继续满足业务http://www.aliyun.com/zixun/aggregation/14189.html">服务水平协议. 面向 OLTP 环境的物理数据库设计应包括运营和维护任务的时间表.本节提供了此类活动的总结. 恢复策略 作为 RAS 整体策略的一部分,恢复策略在满足您的 RAS 目标中发挥着重要作用.虽然事实上在许多层次上都存在冗余,但在定义恢复点目标 (R

DB2面向OLTP环境的物理数据库设计:查询设计

在最基本的层面,包括选择.插入.更新和删除在内的 SQL 操作是应用程序与 DB2 数据库进行交互的方式.应用程序的总体性能和体验受到该应用程序所用的 SQL 操作的影响. 设计.维护.监视和调优 SQL 查询的完整处理超出了本文的范围.然而,我们从较高层次概述了查询设计的工具和一般准则,因为查询设计和物理数据库设计彼此密切相关. 大多数物理数据库设计的特征对 SQL 语句并不明显,但为了更好地使用 DB2 特性,在编写查询时需要考虑到数据库的物理特征,如索引.例如,使用范围分区表时,选择查询即

DB2面向OLTP环境的物理数据库设计:数据建模

收集需求并创建逻辑模型,这是良好的物理数据库设计的关键. 数据建模的第一步是收集需求.该步骤涉及识别需要维护的关键业务工件.数据和信息.这些业务工件被称为实体.对于http://www.aliyun.com/zixun/aggregation/7976.html">在线购物目录,有关客户.产品和定价的信息都是业务关键信息,即实体. 可以通过利益相关者的输入来收集需求.需求和数据模型通过迭代方式向对方输送数据而得到进一步完善,从而创建一个逻辑模型. 图 1 显示了迭代数据建模范例: 收集需求

DB2面向OLTP环境的物理数据库设计:表

DB2 数据库将数据存储在表中.有几种类型的表可以存储永久性数据,如多维集群表.分区表和范围集群表.除了用于存储永久性数据的表之外,也有一些表可用来展示结果.汇总表.临时表. 根据数据的显示形式和事务类型,您可能会找到一个表类型,提供可以为您的环境优化存储和查询性能的特定功能. 选择合适的表类型 表类型的选择取决于业务和应用程序的需求.表中存储的数据的性质和查询的性能要求.下节描述了每种表类型适合在何时使用. 基表 基表可以保存永久性数据.DB2 数据库的基表有以下几种类型: 常规表 有索引的常

DB2面向OLTP环境的物理数据库设计:数据类型

为一个数据库设计表,这涉及到选择一个合适的http://www.aliyun.com/zixun/aggregation/14208.html">数据模型和数据类型.数据类型是一个列属性定义,它指示了应该将什么类型的数据存储在一个表列中. 根据所存储的数据的性质小心选择正确的数据类型,这有助于最大限度地减少存储需求. 最大限度地减少数据行消耗的空间,这有助于将更多行放在一个数据页面中.如果一个数据页面中有更多的行,那么这样可以提高缓冲池命中率,减少 I/O 成本,并实现更好的查询性能.DB