三数据仓库的关键技术
那么数据仓库都有哪些组成部分和关键技术呢?与关系数据库不同数据仓库并没有严格的数学理论基础它更偏向于工程由于数据仓库的这种工程性因而在技术上可以根据它的工作过程分为数据的抽取存储和管理数据的表现以及数据仓库的设计的技术咨询四个方面为此我们将分别讨论每一个环节
数据的抽取
数据的抽取是数据进入仓库的入口由于数据仓库是一个独立的数据环境它需要通过抽取过程将数据从联机事务处理系统外部数据源脱机的数据存储介质中导入到数据仓库数据抽取在技术上主要涉及互连复制增量转换调度和监控等几个方面数据仓库的数据并不要求与联机事务处理系统保持实时的同步因此数据抽取可以定时进行但多个抽取操作执行的时间相互的顺序成败对数据仓库中信息的有效性则至关重要
在技术发展上数据抽取所涉及的单个技术环节都已相对成熟其中有一些是躲不开编程的但整体的集成度还很不够目前市场上所提供的大多是数据抽取工具这些工具通过用户选定源数据和目标数据的对应关系会自动生成数据抽取的代码但数据抽取工具支持的数据种类是有限的同时数据抽取过程涉及数据的转换它是一个与实际应用密切相关的部分其复杂性使得不可嵌入用户编程的抽取工具往往不能满足要求因此实际的数据仓库实施过程中往往不一定使用抽取工具整个抽取过程能否因工具的使用而纳入有效的管理调度和维护则更为重要从市场发展来看以数据抽取异构互连产品为主项的数据仓库厂商一般都很有可能被其它拥有数据库产品的公司吞并在数据仓库的世界里它们只能成为辅助的角色
数据的存储和管理
数据仓库的真正关键是数据的存储和管理数据仓库的组织管理方式决定了它有别于传统数据库的特性同时也决定了其对外部数据表现形式要决定采用什么产品和技术来建立数据仓库核心则需要从数据仓库的技术特点着手分析
数据仓库遇到的第一个问题是对大量数据的存储和管理这里所涉及的数据量比传统事务处理大得多且随时间的推移而累积从现有技术和产品来看只有关系数据库系统能够担当此任关系数据库经过近年的发展在数据存储和管理方面已经非常成熟非其它数据管理系统可比目前不少关系数据库系统已支持数据分割技术能够将一个大的数据库表分散在多个物理存储设备中进一步增强了系统管理大数据量的扩展能力采用关系数据库管理数百个GB甚至到TB的数据已是一件平常的事情一些厂商还专门考虑大数据量的系统备份问题好在数据仓库对联机备份的要求并不高
数据仓库要解决的第二个问题是并行处理在传统联机事务处理应用中用户访问系统的特点是短小而密集对于一个多处理机系统来说能够将用户的请求进行均衡分担是关键这便是并发操作而在数据仓库系统中用户访问系统的特点是庞大而稀疏每一个查询和统计都很复杂但访问的频率并不是很高此时系统需要有能力将所有的处理机调动起来为这一个复杂的查询请求服务将该请求并行处理因此并行处理技术在数据仓库中比以往更加重要
大家可以注意以下在针对数据仓库的TPCD基准测试中比以往增加了一个单用户环境的测试成为系统功力(QPPD)系统的并行处理能力对QPPD的值有重要影响目前关系数据库系统在并行处理方面已能做到对查询语句的分解并行基于数据分割的并行以及支持跨平台多处理机的群集环境和MPP环境能够支持多达上百个处理机的硬件系统并保持性能的扩展能力
数据仓库的第三个问题是针对决策支持查询的优化这个问题主要针对关系数据库而言因为其它数据管理环境连基本的通用查询能力都还不完善在技术上针对决策支持的优化涉及数据库系统的索引机制查询优化器连接策略数据排序和采样等诸多部分普通关系数据库采用B树类的索引对于性别年龄地区等具有大量重复值的字段几乎没有效果而扩充的关系数据库则引入了位图索引的机制以二进制位表示字段的状态将查询过程变为筛选过程单个计算机的基本操作便可筛选多条记录由于数据仓库中各数据表的数据量往往极不均匀普通查询优化器所得出得最佳查询路径可能不是最优的因此面向决策支持的关系数据库在查询优化器上也作了改进同时根据索引的使用特性增加了多重索引扫描的能力
以关系数据库建立的数据仓库在应用时会遇到大量的表间连接操作而连接操作对于关系数据库来说是一件耗时的操作扩充的关系数据库中对连接操作可以做预先的定义我们称之为连接索引使得数据库在执行查询时可直接获取数据而不必实施具体的连接操作数据仓库的查询常常只需要数据库中的部分记录如最大的前家客户等等普通关系数据库没有提供这样的查询能力只好将整个表的记录进行排序从而耗费了大量的时间决策支持的关系数据库在此做了改进提供了这一功能此外数据仓库的查询并不需要像事务处理系统那样精确但在大容量数据环境中需要有足够短的系统响应时间因此一些数据库系统增加了采样数据的查询能力在精确度允许的范围内大幅度提高系统查询效率
总之将普通关系数据库改造成适合担当数据仓库的服务器有许多工作可以做它已成为关系数据库技术的一个重要研究课题和发展方向可见对于决策支持的扩充是传统关系数据库进入数据仓库市场的重要技术措施
数据仓库的第四个问题是支持多维分析的查询模式这也是关系数据库在数据仓库领域遇到的最严峻的挑战之一用户在使用数据仓库时的访问方式与传统的关系数据库有很大的不同对于数据仓库的访问往往不是简单的表和记录的查询而是基于用户业务的分析模式即联机分析如图所示它的特点是将数据想象成多维的立方体用户的查询便相当于在其中的部分维(稜)上施加条件对立方体进行切片分割得到的结果则是数值的矩阵或向量并将其制成图表或输入数理统计的算法
图 联机分析数据处理示意图
关系数据库本身没有提供这种多维分析的查询功能而且在数据仓库发展的早期人们发现采用关系数据库去实现这种多维查询模式非常低效查询处理的过程也难以自动化为此人们提出了多维数据库的概念多维数据库是一种以多维数据存储形式来组织数据的数据管理系统它不是关系型数据库在使用时需要将数据从关系数据库中转载到多维数据库中方可访问采用多维数据库实现的联机分析应用我们称之为MOLAP多维数据库在针对小型的多维分析应用有较好的效果但它缺少关系数据库所拥有的并行处理及大规模数据管理扩展性因此难以承担大型数据仓库应用这样的状态直?quot;星型模式在关系数据库设计中得到广泛的应用才彻底改变几年前数据仓库专家们发现关系数据库若采用星型模式来组织数据就能很好地解决多维分析的问题星型模式只不过是数据库设计中数据表之间的一种关联形式它的巧妙之处在于能够找到一个固定的算法将用户的多维查询请求转换成针对该数据模式的标准SQL语句而且该语句是最优化的星型模式的应用为关系数据库在数据仓库领域打开绿灯采用关系数据库实现的联机分析应用称为ROLAP目前大多数厂商提供的数据仓库解决方案都采用ROLAP
在数据仓库的数据存储管理领域从当今的技术发展来看面向决策支持扩充的并行关系数据库将是数据仓库的核心在市场上数据库厂商将成为数据仓库的中坚力量
数据的表现
数据表现是数据仓库的门面这是一个工具厂商的天下它们主要集中在多维分析数理统计和数据挖掘方面
多维分析是数据仓库的重要表现形式由于MOLAP系统是专用的因此关于多维分析领域的工具和产品大多是ROLAP工具这些产品近两年来更加注重提供基于Web的前端联机分析界面而不仅仅是网上数据的发布
数理统计原本与数据仓库没有直接的联系但在实际的应用中客户需要通过对数据的统计来验证他们对某些事物的假设以进行决策与数理统计相似数据挖掘与数据仓库也没有直接的联系而且这个概念在现实中有些含混数据挖掘强调的不仅仅是验证人们对数据特性的假设而且它更要主动地寻找并发现蕴藏在数据之中的规律这听起来虽然很吸引人但在实现上却有很大的出入市场上许多数据挖掘工具其实不过是数理统计的应用它们并不是真正寻找出数据的规律而是验证尽可能多的假设其中包括许多毫无意义的组合最后由人来判断其合理性因此在当前的数据仓库应用中有效地利用数理统计就已经能够获得可观的效益
数据仓库设计的技术咨询
在数据仓库的实施过程中有一些更为基本的问题需要解答它们包括数据仓库提供哪些部门使用?不同的部门怎样发挥数据仓库的决策效益?数据仓库需要存放哪些数据?这些数据以什么样的结构存放?数据从哪里装载?装载的频率多少为合适?需要购置哪些数据管理的产品和工具来建立数据仓库?等等这些问题依赖于特定的数据仓库系统属于技术咨询的范畴
事实上数据仓库决不是简单的产品堆砌它是综合性的解决方案和系统工程在数据仓库的实施过程中技术咨询服务至关重要是一个不可缺少的部分它甚至于比购买产品更为重要目前数据仓库的技术咨询主要来自数据仓库软件产品的供应商和独立的针对数据仓库技术的咨询公司
数据仓库技术九十年代来的进展
年