当前位置: 首页 > 科技观察

北美常用的四种数据仓库技术

时间:2023-03-16 15:20:56 科技观察

数据挖掘和数据仓库近年来在国内越来越流行和普及。他们有更多的需求,被广泛使用。他们经常服务于商业智能活动。一般来说,我们可以统称为数据分析和数据计算。我们介绍数据仓库的商业应用,主要涉及两个方面,一是数据仓库的通用技术,二是数据仓库的应用案例。同时,还涉及到数据仓库的两个背景。在我们经历的北美项目中,一个主要方面属于实际商业应用项目,另一个方面属于高校学术研究领域的项目。两者在很多方面都有明显的区别。这里主要介绍数据仓库的商业应用,因为商业应用的经验是非常宝贵的。数据仓库的商业应用技术之一:异构数据集成技术数据仓库是集成的,数据仓库的要素包括自身集成的、面向主题的、只读的、历史变化的。如图1所示:以Oracle作为数据仓库的支撑环境为例。它有很多数据源,由业务生产系统不断产生,可能包括DB2、SQLServer、MYSQL等不同的源数据。异构数据集成的方法有很多,主要包括:1、如果Oracle作为基于Windows环境的数据仓库,通过MSODBC开放数据库互联;第三方ODBC开放数据库互联,如DataDirectConnectforODBC;专用数据网关,例如TranspatentGateway;2、如果Oracle作为基于Unix或Linux环境的数据仓库,通过UnixODBC开启数据库互联;专用数据网关等。3.通过外部文件导出和导入数据库。#p#数据仓库商业应用技术二:数据ETL抽取、转换、加载技术1、三层ETL系统我们把数据抽取、转换、加载技术称为ETL技术。在ETL技术中,按要素分为三层,即元数据层、数据操作层、数据存储层,三层相互作用。ETL工作首先需要在元数据层进行定义和构建,还涉及到数据存储方式的定义;ETL工作基于元数据层中的对象,在数据操作层对数据进行实际操作,并将数据加载到数据存储层;ETL工作还需要在数据存储层做一些必要的数据管理和优化工作。这形成了一个用于ETL数据操作的三层系统,如下图所示。元数据->数据操作层->数据存储层。2.ETL渐进式数据演化ETL数据转换在实际项目中有多种方法和多个阶段。这里我们根据经验分为4个阶段:LANDING:提取数据到Landing层。STAGING:根据我们的业务需求,将数据转入Staging层。DATACENTER:然后根据需求设计放置在DataCenter层(也就是EDW企业数据仓库)。DATAMART:***按照主题存放在DataMart层,如下图所示。3.并行ETL架构并行处理技术也是数据库的一项核心技术。可以提高ETL过程中数据层处理的执行效率,将大量的查询过程分发到多个节点同时执行。具有并行处理架构的数据仓库系统,不仅要保证底层硬件平台的所有资源得到充分利用,还要能够将这些资源合理分配给多个并发请求,以提高数据层的并发处理能力,如如下图所示。4、ETL任务调度和备份ETL任务调度(SchedulingTasks)非常重要,需要实时备份。常用的ETL任务调度工具(SchedulingTools)有:Unix脚本:Corn可靠性比较稳定。数据库管理工具:OracleEnterpriseManager第三方工具:Control-M专用工具,专门完成数据仓库的任务,主要做ETLScheduling。ETL任务调度备份的方式有很多种,比如:调度备份:Control-M作为Master,UnixCorn作为Backup。这样,就相当于做了两个Scheduling设计,互为备份。#p#数据仓库商业应用技术三:数据仓库架构技术1.多级企业数据仓库:DataMart->EDW在这个数据仓库架构的模型中,左边的数据源转化为数据集市,并且然后从数据集市到企业数据仓库(EDW),***直接被终端用户使用。多层次主要体现在ETL和数据集成上。这种方式的好处是建立了多个数据集市。体现了分布式集成的理念,大大降低了企业级数仓建设的风险,降低了资源投入的风险,如下图所示。2.多层次的企业级数据仓库:EDW->DataMart该模型从一开始就设计了它的企业级数据仓库(EDW)。这种方式针对的是一些覆盖多个业务系统,面向不同用户的需求。具有不同平台的企业,例如银行。在这种方法中,所有的业务系统都被考虑在内,通常是考虑整体设计,然后进行分发。DataMart的划分方式有很多种。它的优点是集成度比较好,从整体设计之初就把所有的数据源都放在了企业级的数据仓库中。缺点是风险大,投资比较大,如下图。一般来说,第一种方法在实际项目中用的比较多。3.近实时数据仓库数据仓库是动态的,随时间变化。使用数据仓库,我们可以每天、每月、每年分段检索数据,如下图所示。近实时(NearRealTime)要求比较高。例如,我们建立了一个全球性的数据仓库。数据仓库中心位于多伦多,数据源分布在北美、欧洲等多地。它需要近乎实时的操作。系统。近实时的概念是操作系统和业务系统产生的数据会在一小时内完成所有的ETL任务,最终进入数据仓库。它对数据源的业务系统有比较高的要求,比如数据的稳定性、可靠性、网络传输速率等,同时也涵盖了很多方面的专门技术来解决实时性。4.后组合数据集市由于业务的扩展,企业增加了新的生产系统,新的数据源由此诞生。我们需要建立一个新的数据源(NewDataSource)通过ETL集成到数据集市(DMART)中,并与企业数据仓库(EDW)结合,最终提供给最终用户,如图以下。#p#数据仓库业务应用技术四:数据仓库优化技术数据仓库优化包括很多内容,包括数据库实例优化、数据库设计优化、数据仓库设计(建模)优化、数据存储优化、存储过程优化、中间层支撑优化、应用支持优化(智能报表、实时查询、数据挖掘等应用)。数据仓库的客户有两个共同的需求,一是快速,二是稳定。快有很多方面。在核心数据库中,影响速度的因素太多了,所以在优化的时候要考虑到方方面面。1、数据仓库设计(建模)优化在设计过程中有很多情况。这里要提一下,数据仓库还需要考虑一个时间因素。有时候在设计之初性能很好,但是随着系统运行的时间长了,出现了很多设计导致的无法解决的问题,比如性能问题。欧洲曾经有一家汽车公司。设计者对数据仓库的模型设计很有想法,但不适合长期运行。数据增加后,性能急剧下降,数据运行可能会很慢,达到无法忍受的地步。结果,运行了两年就失败了。再次修改结构是行不通的,需要从头再来。2.数据存储优化数据存储优化主要是如何最小化存储空间和提高性能。这很重要,因为数据仓库通常会牺牲空间来换取速度。但它也需要优化。很多问题在一些小型的数据仓库系统中可能不存在,但是在比较大的数据仓库系统中就会出现。数据仓库中的数据不断增加。使用时间长了,数据量会过大,性能会急剧下降。为了避免这种情况,我们在开始设计的时候就要考虑到后续的使用,需要对数据存储进行优化,主要包括:DataBlockDesign:基本存储单元的设计。TableSpacing:表空间的设计。表分区:表空间的优化。索引:索引的设计。索引分区:索引优化。DataCompressing:数据压缩(同时牺牲一些性能)。3、存储过程优化:就是对后台一些存储过程的优化。4、中间层支持优化:WEBSERVER等系统优化。5、应用支持优化:主要是智能报表、实时查询、数据挖掘等应用,即一些前端应用也需要优化。发出请求并返回结果。这个过程有很多步骤,需要优化。此外,数据仓库还需要在某些方面进行优化,例如:异构数据库互连优化。异构数据库的互联,在做数据仓库的第一步都会遇到。数据仓库必须有许多不同的数据源。详情如下图所示。上面的例子比较复杂,不同的数据库,不同的操作系统。异构数据库互联优化案例:A.文件导出导入->开放式数据库互联由文件导出导入方案改为开放式数据库互联方案,可以优化异构数据库互联的性能。比如:WindowsODBC,UnixODBC,性能和可控性肯定会更好,但有时候并不是这么简单的需求,还需要考虑数据安全需求。例如,在某些情况下,条件不允许数据库互连。还需要考虑业务系统的健壮性。B.GeneralODBC->Third-partydedicatedODBC由ODBC方案改为第三方专用ODBC方案,可以优化异构数据库互联性能。例如:MSODBC->DataDirectODBC。C.开放数据库互联->专用数据网关由ODBC方案改为专用数据网关方案,可以优化异构数据库互联性能。例如:MSODBC->透明网关。