一、 数据仓库设计概况
数据仓库的作用在于从企业的应用系统中获取信息并转换到一个新的数据库,通过对新库中的历史信息和面向主题的信息进行分析,为领导层决策提供支持。数据仓库的设计不同于传统的数据库设计,数据库是为捕获数据而设计,数据仓库是为分析数据而设计,它的两个基本的元素是维表和事实表。维是看问题的角度,比如时间,部门,维表放的就是这些东西的定义,事实表里放着要查询的数据,同时有维的ID。要成功地建立一个数据仓库,必须有一个合理的数据模型,PowerDesigner就是这样一种企业建模工具,它能帮助用户构建成功的数据仓库。本文首先对简要介绍了Sybase PowerDesigner和Sybase IQ这两个产品,接着重点分析了如何利用PowerDesigner来加速IQ数据仓库的设计与实现,最后是一个总结。
二、 Sybase PowerDesigner 与 Sybase IQ 简介
PowerDesigner 是一款优秀的企业建模工具,它强大的数据建模功能在业界始终处于领先的地位,同时它还是优秀数据仓库模型设计工具。PowerDesigner在数据仓库设计工具市场中占有很大份额。它能从已有的数据库进行反向工程,从运行系统中将现存的数据结构抽取出来形成数据模型,使数据仓库的设计变得简单。PowerDesigner 15是其最新版本,它全面支持IQ的数据建模。使用PowerDesigner 和模型驱动的方式开发数据仓库及应用可以极大的加速开发速度,提高生产率、减少IQ数据仓库设计和实现过程中的错误。
Sybase IQ是一个专门面向数据仓库环境的关系型数据库。Sybase IQ与传统的关系型数据库最关键的不同之处就是,它是专门为高性能的分析型进程设计的。该性能通过存储数据的方式——列存储,而不是传统关系型数据库中的行存储而获得。IQ中的关键技术是纵向数据存储(通过列而不是通过行来进行)、Bit-Wise查询索引、数据压缩和Multiplex技术。使数据仓库应用拥有卓越的查询性能与最低的总拥有成本。与传统数据库不同,Sybase IQ 在体系结构设计上是面向分析的-而不是面向事务的-它具有基于列的结构以及获得专利的索引技术,这都使它成为数据仓储的首选 。
三、利用PowerDesigner实现IQ数据仓库的最佳实践
1. 获取查询或报表需求并识别报表和查询所需的数据
数据仓库的设计通常由大量的数据查询或生成报表需求驱动,用户通过建立包含大量聚集数据的数据仓库或数据集市来加速数据查询和生成报表。例如考虑一个企业电子商务网站的例子。该企业需要作出如下典型决策,如哪些产品最有利可图?哪些客户会为我们带来最大利益?哪些环节需要花费很高的费用?哪些市场活动运行得最好,为什么?我们有可能会失去哪些客户等等。这些都是设计数据仓库的原动力。在获取了这些需求之后,我们需要找出要进行这些分析需要哪些的数据,比如,需要分析哪些客户会给企业带来最大利益时,这必需找到订单数据表和客户信息表数据才能进行分析。这些需求都可以通过PowerDesigner 提供的需求模型进行分析。如图 1所示:
图 1 数据仓库的需求分析
2. 基于OLTP(在线事务处理系统)数据库模式生成IQ数据仓库模型(Data Warehouse Model)
在明确了需求并识别出所需的数据及数据表之后,可以全新开始设计一个IQ数据仓库模型,也可以从原有数据库出发,通过PowerDesigner提供的反向工程功能来加速创建IQ数据仓库模型。下面介绍一下如何利用反向工程来创建IQ数据仓库模型。
首先,需要通过PowerDesigner菜单File ->Reverse Engineer->Database…来进行OLTP数据库的反向工程。
图2 数据库反向工程设置
在反向工程的设置页面中(如图2所示)需要选中 “Statistics”选项,表示我们需要在反向工程的模型中生成关于数据库的一些统计数据(例如,一个表有多少行,一个列中有多少个不同的值,一个列的数据类型是什么等信息),这些统计信息是下面步骤中生成IQ索引的重要信息。
其次, 使用Tools->Generate Physical Data Model… 菜单生成基于的IQ数据仓库物理数据模型(PDM)。在PDM生成对话框的“General”页面中将DBMS选项中选择“Sybase As IQ 12.7”,在“Detail”页面中选择“Generate mappings...” 点击确定后,PowerDesigner就已经帮您生成了一个基于IQ物理数据仓库模型。
图3 生成IQ物理数据模型
3. 创建IQ 列索引(Column Index)及联合索引(Join Index)
IQ 需要列索引来提高各种性能,这些列索引的类型可以是:LF,HG,HNG,
CMP,DATE,TIME,DTTM,WD,PowerDesigner支持这些列索引的建模。
如果用户是通过反向工程最后生成的IQ数据模型(包含统计数据),PowerDesigner支持自动生成IQ列索引。用户通过Tools->Rebuild Objects->Rebuild Indexes 命令可以自动的创建所有的IQ列索引。联合索引是为了优化连接操作的性能而设计的。用户可以通过Tools->Multidimension->Retrieve Multidimension Objects 命令来确定事实和多维表,通过Tools>Rebuild Object>Rebuild Join Indexes 来重建联合索引。这些功能极大地加速了数据仓库的设计过程,减少了大量的设计和开发的时间。
4. 多维数据建模(Multi-dimension Data Modeling)
多维数据建模以直观的方式组织数据,并支持高性能的数据访问。每一个多维数据模型由多个多维数据模式表示,每一个多维数据模式都是由一个事实表和一组维表组成的。PowerDesigner支持多种数据仓库模型,包括星型模式(Star Schema)和雪花模式(Snowflake Schema),如图4,图5所示。PowerDesigner 支持多维数据建模如图6所示,用户还可以通过使用映射编辑器来实现从Cube到Table的映射并支持脚本的生成。
图4 星型模式
图5 雪花模式
图6 多维图建模
5. 使用映射编辑器(Mapping Editor)定义数据转换(Data Transformation)
为了将数据从OLTP数据库移动到数据仓库中,用户需要定义源数据表/列到目的数据表/列的映射关系。对于简单的数据移动任务,例如源数据源和目的数据源的数据库Schema相同的情况下,可以通过将数据导出到平面文件中,然后使用“Bulk Copy”命令来加载数据。对于复杂的数据移动任务,数据抽取转换(ETL)工具例如Sybase ETL可以被用来实现这种转换。在PowerDesigner中用户可以通过两个物理数据模型(PDM)来定义OLTP数据库和IQ数据仓库模式之间的映射关系,当IQ数据仓库的模式是从OLTP数据库模式生成时,这种映射关系已经默认被生成了(如果用户在生成过程中选中了“Generate mappings”)。当然,用户还可以通过映射编辑器(Tools->Mapping Editor…)手动去修改这种映射关系。
图7显示了源数据源与目的数据源数据之间的映射关系。
图7 映射编辑器
6. 生成IQ数据仓库
至此,我们已经基本完成了IQ数据仓库模式的设计的过程,可以通过Database->Generate Database… 将数据仓库定义直接生成到IQ数据仓库中去(如图8所示)。
图8 数据仓库生成设置
7. 移动数据到数据仓库中
在完成了数据仓库的设计和实现之后,需要将数据从OLTP数据移动到数据仓库中去,利用PowerDesigner可以很容易的帮助用户实现这种数据移动的功能。PowerDesigner通过以下两种方式的来实现数据移动任务。方法一:生成数据导出脚本将数据从OLTP数据库导出到平面文件中去,再通过生成的数据导入脚本将数据导入到IQ数据仓库中去。方法二:生成“Insert … location”脚本直接将数据从OLTP数据库中导入到IQ数据库中。在PowerDesigner内部实现中是通过上文提到的数据映射定义来生成这些脚本的。目前,PowerDesigner支持的源数据库主要有:Sybase ASE, Sybase ASA, Oracle, IBM DB2, Microsoft SQL Server。接下来我们以方法一为例来介绍一下如何利用PowerDesigner来实现数据移动任务。
在IQ 物理数据模型中,通过Model->Extended Model Definitions…菜单添加“Data Movement IQ”扩展数据模型定义。
图 9 添加“IQ数据移动”扩展模型
定义数据源属性
选择Model->Data Sources,打开数据源定义属性对话框,定义用户名、密码、服务器名、数据库名、数据源名、导出目录等。(图10,图11所示)
图 10 数据库连接设置
图 11 数据移动设置
定义默认分隔符、加载目录
在浏览器中右键选择数据仓库模型,点击属性选项打开模型属性定义对话框,定义默认分隔符,加载目录等信息(图12所示)。
图12 默认分隔符、目录设置
预览和生成数据导入导出脚本
在模型属性对话框中,用户点击“Preview”可预览到自动生成的导入导出脚本(图13,图14),通过Tools->Extended Generation命令可将这些脚本生成到磁盘中去。
图13 数据导出脚本预览
图14 数据导入脚本预览
执行数据导出导入脚本
首先在OLTP数据库中执行PowerDesigner生成的数据导出脚本,执行的结果是模型中已经设置的导出目录中生成一系列的数据平面文件。接着需要将导出目录中生成的数据平面文件拷贝到安装IQ的机器中去,并在IQ中运行PowerDesigner生成的数据导入脚本,执行的结果就是将数据导入到IQ 数据库中。至此我们完成了数据仓库的设计和实现整个过程。
四、总结
综上所述,大家可以看出利用PowerDesinger来设计数据仓库极大简化了设计过程,设计出的数据仓库模型对象直观明了,而且许多的操作都可以通过它来自动帮您去完成,加速了数据仓库的实现过程,用户只需要针对自己的一些特殊要求做适当的调整即可实现原来比较复杂数据仓库设计。所以无论设计者所面临的业务需求多么复杂,都可以从PowerDesigner里得到强有力的支持。
相关推荐
在"PowerDesigner的数据库设计与实现"中,可能涵盖了如何使用PowerDesigner创建实体关系图(ER图),这是概念模型设计的核心。实体代表业务对象,关系则描述了实体之间的联系。通过PowerDesigner,我们可以直观地拖...
在《PowerDesigner 加速IQ数据仓库设计与实现.doc》中,我们可以了解到如何利用Power Designer 15加速IBM InfoSphere IQ数据仓库的设计过程。该文档可能涵盖了数据仓库的逻辑和物理建模,以及如何通过Power Designer...
powerdesigner生成数据字典模板,powerdesigner生成数据字典模板,powerdesigner生成数据字典模板powerdesigner生成数据字典模板powerdesigner生成数据字典模板powerdesigner生成数据字典模板powerdesigner生成数据...
PowerDesigner是一款强大的数据库设计与管理工具,它允许用户进行概念数据模型(CDM)、逻辑数据模型(LDM)和物理数据模型(PDM)的设计,并支持多种数据库管理系统,包括Oracle。 在PowerDesigner中配置Oracle...
数据仓库的设计与实现过程中,选择合适的工具至关重要。PowerDesigner作为一款强大的CASE工具,在数据仓库设计中发挥了重要作用。本文旨在介绍如何使用PowerDesigner来构建数据仓库中的多维模型,并通过具体案例...
PowerDesigner 16.5 是一款功能强大且广泛应用的数据建模和数据库设计工具。它提供了强大的数据模型设计、数据库设计和数据架构管理功能,帮助开发者和数据库管理员更好地设计、开发和管理数据库。今天,我们将对 ...
PowerDesigner是一款强大的数据建模工具,由Sybase公司开发,广泛应用于系统分析和设计中。本实验重点在于使用PowerDesigner中的Process Analyst(PA)模块来创建数据流图(DFD),帮助理解和设计机票预定系统的流程...
本书系统地介绍了业务建模、数据建模和应用程序建模的方法和过程,通过PowerDesigner的实现,使读者全面掌握软件分析建模的思想,是软件工程师学习软件分析、建模的入门教材。PowerDesigner 12.5集中体现了软件分析...
PowerDesigner数据字典模板
### PowerDesigner与数据字典 #### 数据字典的作用 数据字典是一种用于存储有关数据元素(字段)和数据结构(表)的元数据文档。它包含了所有数据库对象的详细描述,如字段名、数据类型、长度、约束条件、注释等,...
总的来说,PowerDesigner的数据模型转换功能是其强大之处,它简化了数据库设计流程,提高了工作效率,并确保了模型在不同环境下的适应性和一致性。无论是在初期设计还是后期维护,PowerDesigner都是数据库专业人士不...
### 和用PowerDesigner建立数据仓库多维模型的研究 #### 摘要与关键词解析 本文主要探讨了如何使用PowerDesigner工具来构建数据仓库中的多维模型,并对其在“学生成绩分析”系统中的具体应用进行了深入分析。...
PowerDesigner是一款强大的数据库设计工具,它提供了从概念数据模型(CDM)到物理数据模型(PDM)的转换,以及数据库脚本生成和数据库逆向工程等功能。在数据建模领域,PowerDesigner扮演着至关重要的角色。...
总的来说,PowerDesigner是一个强大且全面的数据建模工具,它帮助IT专业人员高效地设计和实现数据库结构,确保数据模型满足业务需求并优化数据库性能。通过使用PowerDesigner,我们可以创建清晰、规范化的数据模型,...
《PowerDesigner数据库分析设计与应用》是一本深入探讨数据库建模工具PowerDesigner的专著,旨在帮助读者理解和掌握如何高效地使用此工具进行数据库的设计和分析。PowerDesigner是一款强大的数据建模工具,广泛应用...
《软件分析建模与PowerDesigner实现》一书深入探讨了软件开发过程中的一项关键技术——分析建模,并聚焦于使用PowerDesigner这一强大的建模工具来实现这一过程。在软件工程领域,分析建模是理解系统需求、组织信息和...
- **表空间和存储参数设定**:通过PowerDesigner,设计人员可以精细控制每个表的存储参数,包括指定表空间、数据块大小、压缩选项等,实现物理存储层面的性能优化。 - **自动化脚本生成**:PowerDesigner支持一键...