数据仓库优化方案内容摘要:

功的大型事务数据库多为关系数据库,但关系数据库系统并不能满足数据仓库的数据存储要求,需要通过使用一些技术,如动态分区、位图索引、优化查询等,使关系数据库管理系统在数据仓库应用环境中的性能得到大幅度的提高。 数据仓库在构建之初应明确其主题。 主题是一个在较高层次将数据归类的标准,每一个主题对应一个宏观的分析领域,针对具体决策需求可细化为多个主题表,具体来说就是确定决策涉及的范围和所要解决的问题。 但是主题的确定必须 建立在现有联机事务处理( OLTP)系统基础上,否则按此主题设计的数据仓库存储结构将成为一个空壳,缺少可存储的数据。 但一味注重OLTP 数据信息,也将导致迷失数据提取方向,偏离主题。 需要在OLTP 数据和主题之间找到一个 “平衡点 ”,根据主题的需要完整地收集数据,这样构建的数据仓库才能满足决策和分析的需要。 根据决策主题设计数据仓库结构,一般采用星型模型和雪花模型设计其数据模型,在设计过程中应保证数据仓库的规范化和体系各元素的必要联系。 主要有以下 3 个步骤: 1. 定义该主题所需各数据源的详细情况,包括所在计算机平台、拥有者、数据结构、使用该数据源的处理过程、仓库更新计划等。 2. 定义数据抽取原则,以便从每个数据源中抽取所需数据;定义数据如何转换、装载到主题的哪个数据表中。 3. 将一个主题细化为多个业务主题,形成主题表,据此从数据仓库中选出多个数据子集,即数据集市( Data Mart)。 数据集市通常针对部门级的决策或某个特定业务需求,它开发周期短,费用低,能在较短时间内满足用户决策的需要。 因此,在实际开发过程中可以选择在成功建立几个数据集市后再构建数据仓库这种策略。 这些数据定义直接输入系统中,作为元数据( metadata)存储,供数据管理模块和分析使用。 元数据存储在元数据库中,它不仅是数据仓库的文档资料,供管理、维护人员使用,而且亦可供用户查询,以便更好地了解数据仓库结构,提高自己的使用水平。 根据元数据库中的主题表定义、数据源定义、数据抽取规则定义对异地异构数据源(包括各平台的数据库、文本文件、 HTML 文件、知识库等)进行清理、转换,对数据进行重新组织和加工,装载到数据仓库的目标库中,这就是数据抽取。 加工数据是保证目标数据库中数据的完整性、一致性。 早期数据抽取是依靠手工编程和程序生成器实现,现在则通过高效的工具来实现,如 Ardent 公司的 Infomoter 产品、SAS 的数据仓库产品 SAS/WA( WarehouseAdministrator)及各大数据仓库厂商推出的、完整的数据仓库解决方案。 数据维护与管理 数据维护与管理分为目标数据维护和元数据维护两方面。 目标数据维护是根据元数据库所定义的更新频率、更新数据项等更新计划任务来刷新数据仓库,以反映数据源的变化,且对时间相关性进行处理。 更新操作有 二 种情况,即在仓库的原有数据表中进行某些数据的更新和产生一个新的时间区间的数据,因为汇总数据与数据仓库中的许多信息元素有关系,必 需完整地汇总,这样才能保证全体信息的一致性。 数据仓库规模一般都很大,从建立之初就要保证它的可管理性,一个企业可能建立几个数据仓库或数据集市,但他们可共用一个元数据库对其进行管理。 首先从元数据库查询所需元数据,然后进行数据仓库更新作业,更新结束后,将更新情况记录于元数据库中。 当数据源的运行环境、结构及目标数据的维护计划发生变化时,需要修改元数据。 元数据是数据仓库的重要组成部分,元数据的质量决定整个数据仓库的质量。 对企业自身来说,数据仓库的建设是一个系统工程,是一个不断建立、发展、完善的过程,通常需要较长的时间。 这就要求各企业对整个系统的建设提出一个全面、清晰的远景规划及技术实施蓝图,将整个项目的实施分成若干个阶段,以 “总体规划、分步实施、步步见效 ”为原则,不仅可迅速从当前投资中获得收益,而且可以在已有的基础上,结合其他已有的业务系统,逐步构建起完整、健壮的数据仓库系统。 二、数据仓库的优化 优化的思路分析 数据仓库 ETL 过程的主要特点是:面对海量的数据进行抽取;分时段对大批量数据进行删除、更新和插入操作; 面对异常的数据进行规则化的清洗;大量的分析模型重算工作;有特定的过程处理时间规律性,一般整个 ETL 过程需要在每天的零点开始到 6 点之前完成。 所以,针对 ETL 过程的优化主要是结合数据仓库自身的特点,抓住需要优化的主要方面,针对不同的情况从如何采用高效的 SQL 入手来进行。 方法 目前数据仓库建设中的后台数据库大部分采用 Oracle,以下的SQL 采用 Oracle 的语法来说明,所有的测试在 Oracle10g 环境中通过,但其优化的方法和原理同样适合除 Oracle 之外的其他数据库。 索引的正确使用 什么是索引 索引是对数据库表中一列或多列的值进行排序的一种结构,使用索引可快速访问数据库表中的特定信息。 数据库索引好比是一本书前面的目录,能加快数据库的查询速度。 例如这样一个查询: select * from table1 where id=44。 如果没有索引,必须遍历整个表,直到 ID 等于 44 的这一行被找到为止;有了索引之后 (必须是在 ID 这一列上建立的索引 ),直接在索引里面找44(也就是在 ID 这一列找),就可以得知这一行的位置,。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。