数据仓库
数据仓库(数据 Warehouse,DW)是一个面向主题的、集成的、稳定的、随时间变化的数据的集合,它是一个综合的解决方案,主要用来帮助企业有关主管部门和业务人员做出更符合业务发展规律的决策。数据仓库的优势在于分析历史数据、整合多来源数据,以及保证数据质量的一致性和准确性。
数据仓库最早的概念可以追溯到20世纪70年代,初衷是为了实现全企业的集成。而最早将数据仓库提升到理论高度进行分析并提出数据仓库这个概念的则是学者比尔·恩门(Bill Inmon)。数据仓库于20世纪90年代开始流行。1994年,拉尔夫·金博尔(Ralph Kimball)提出数据集市概念,允许构建更小、更专注的数据仓库,以解决企业级数据仓库实施中的困难。随着数据集市的增多,企业面临数据一致性问题,最终比尔·恩门(Bill Inmon)提出的CIF(Corporation Information 工厂)架构将数据集市整合进行统一地企业信息框架中。
数据仓库基本架构包括了数据源、数据存储与计算、OLAP服务器和前端工具与应用,分为逻辑结构、客户端-服务器(C/S)结构及不同的架构模式。其由数据源、数据抽取、数据仓库管理、数据集市等四个层次组成,同时涵盖索引和分区等技术。由于它为终端用户处理所需要的决策信息提供了一种有效方法,因此在银行、金融服务、消费物品和零售批发部门,以及诸多基于需求的产品的生产部门被广泛应用。
发展历程
概念萌芽阶段
数据仓库最早的概念可以追溯到20世纪70年代麻省理工学院的一项研究,该研究致力于开发一种技术框架,MIT的研究员曾提出了一个指导性的意见。他建议将业务系统和分析系统分开,业务处理和分析处理也分成不同的层次,并采用单独的数据存储和完全不同的设计准则。
1979年,三库的概念被初步提出,该理念恰好与MIT的研究成果相吻合,因为二者都描述了一个与决策系统相关的理想框架。但当时数据库技术应用并不广泛,理论研究多于系统建设,以至于决策支持系统的开发缺乏可操作、可实施的技术、方法和工具。于是在1986年,DEC作为当时技术最先进的公司,集合人员研究了新的分析系统框架,并结合MIT的研究,创建了TA2(Technical 建筑 2)规范,该规范推动了数据仓库的发展。后于1988年,IBM爱尔兰公司的巴里·德夫林(Barry Devlin)和保罗·墨菲(Paul Murphy)提出了“信息仓库”的概念,虽然IBM仅用于市场宣传未实际应用,但数据仓库的基本原理和架构已初步形成,相关技术如关系型数据存取、网络、客户端-服务器架构和图形界面也已基本具备。
确立发展阶段
1991年,比尔·恩门(Bill Inmon)发布了关于数据仓库的开创性著作,阐释了数据仓库的必要性、益处,并提供了构建指南。这本书确立了他在该领域的权威地位,并为数据仓库的基础理论、架构和分析原则奠定了基石。
1994年,企业级数据仓库的设计、实施逐渐出现困难,最早实施数据仓库的公司遭遇大面积的失败。因此,数据仓库的建设者和分析师开始考虑只建设企业级数据仓库的一部分,之后再逐步增加,但是该想法与比尔·恩门(Bill Inmon)相悖。此时,拉尔夫·金博尔(Ralph Kimball)提出了数据集市的概念及详细指导意见,为传统的关系型数据模型和多维OLTP之间建立了良好桥梁,解决了当下企业级数据仓库实施中的困难。自此,数据集市代替数据仓库开始流行起来。
1996年,就关于“企业级数据仓库和部门级数据集市”“关系型和多维”两者问题形成对立的“Inmon”和“Kimball”两派。最初,数据集市的成功实施占据上风。但是,随着数据集市的增多,企业面临数据一致性问题,因此,数据集市被当作了OLTP的其中一个系统。之后数据集市频频出错,这也导致了数据 Warehouse、Data Mart、ODS等一些新的应用出现,由于概念的模糊,数据仓库被理解为OLTP。一直到2001年,比尔·恩门(Bill Inmon)提出的CIF(Corporation Information 工厂)架构最终将数据集市整合进行统一地企业信息框架中。
快速发展阶段
21世纪初,随着互联网技术的快速发展,大数据时代逐渐到来。数据仓库与大数据的融合也成了当下的发展趋势,例如在传统的数据源基础上,引入了来自于传感器、地理信息、社交网络等多方面的非关系型数据。通过Hadoop进行数据处理,运用数据虚拟化技术可以将不同的数据源进行整合,再利用压缩技术来管理更大规模的数据,从而进一步提供数据分析。
同时,OLAP技术、面向文件的hdfs、面向资源管理的yarn等一些传统的数据仓库工具逐渐与大数据工具融合,方便了大规模数据的分析及统计,可为决策提供参考和支持,这些工具都显著提升了数据仓库在决策支持系统、商业智能等领域的应用。
构成
基本架构
数据仓库的基本架构包括了数据源、数据存储与计算、OLAP服务器和前端工具与应用。其中数据源主要是由多个业务系统的数据汇总而来,数据存储与计算主要负责对数据进行清洗和加工,并构建数据仓库的基本元数据系统。OLAP服务器主要对多维数据模型的分析需求的数据进行再次重组,支持用户多种角度和多种层次的分析,前端工具与应用主要有数据仓库的查询、分析、报表工具以及基于数据仓库开发的各种应用。
核心组成
数据仓库组成主要包括了数据源、数据抽取、数据仓库管理、数据集市等四层。
数据源
数据仓库的数据来源于多种数据源,主要来源于大、中型关系数据库(如Oracle数据库、SQL Server等)、桌面数据库(如Access、Visual FoxPro等)、文件及其他(如Excel、Word、图像文件、图形文件等)、互联网上数据(如网页等数据、E-mail数据)。从地域上讲,数据源可以分布于不同地区,从数据结构与数据模式上讲,它有不同的构造形式。从数据内涵上讲,它又有不同的语义理解,它们构成了数据仓库的原始信息来源,为数据仓库加工数据提供了基础素材。
数据抽取
数据抽取层是数据源与数据仓库间的数据接口层,它的任务是将散布于网络结点中不同平台、不同结构、不同语法(语义)的数据源经这一层的处理后构建一个统一平台、统一结构、统一语法(语义)的数据统一体——数据仓库。因此,这一层的功能是极为重要的。它的主要任务是为数据仓库提供统一的数据并及时更新这些数据。
元数据
元数据是指描述数据源到数据仓库中数据转换过程中遵循的规则和规律。这些规则通常定义了数据如何被提取、转换和加载。元数据通常存储在元数据管理系统中,并由该系统进行管理。在功能上,元数据相当于数据库管理系统中的数据字典,为数据的抽取和更新提供了基本依据和指导。
数据仓库管理
数据仓库管理层一般由数据仓库管理系统完成,其管理方法与传统关系数据库管理系统类似。因此,一般用传统数据库管理系统作适当改变后用作数据仓库管理,如:可用Oracle数据库、DB2、SQL Server等作适当改进即作为数据仓库管理系统,有时也可用专用的系统管理。
数据集市
数据集市是指在实际应用中将数据仓库按部门或特定任务建立反映子主题的局部性数据组织,而数据仓库反映主题的全局性数据组织太大。二者的关系相当于传统数据库中的视图与数据库的关系,数据集市的数据来自数据仓库,它是数据仓库中数据的一个部分与局部,往往是直接面向应用的一层。
逻辑结构
数据仓库的逻辑结构包含后置数据源、中间数据存储管理和前置数据分析三个部分。
后置数据源:主要指的是操作系统数据存储器,数据仓库当中的数据信息来源广泛,包括企业内部数据和外部数据都是通过相应数据存储器完成存储。
中间数据存储管理:主要是在明确决策主题要求后,进行数据建模,然后将存储的数据信息经过清理和转换,放置到数据仓库当中,并划分维数,确定数据仓库物理存储结构。
前置数据分析:是指数据仓库当中的数据经过部门数据中心或者多维数据中心,形成有用信息,以供用户查询应用,在此过程中,需要使用多维分析工具、数据挖掘工具以及报表和查询工具等,以此落实自身支持决策功能。
客户端-服务器(C/S)结构
普遍的C/S结构既能够简化整体工作流程,同时也能够减少系统数据传输量,数据仓库就具有这样典型的特征,提高整个数据仓库的效率。其客户端上主要功能要求包括客户交互、格式化查询,以及报表生成等,服务器端的主要功能包括辅助决策查询,复杂计算以及其他综合支持功能。
架构模式
星型模式
星型模式是最常见的数据仓库结构模式,由一个大的、包含大批数据、不含冗余的事实表和一组小的维表构成,个个维度表通过主键连接到事实表中,形成类似星星散射的结构,维表围绕中心表显示在射线上。
雪花模式
雪花模式是星型模式的一个变体,其结构类似于雪花,更加规范和详细。在这种模式中,某些维度表被进一步分化为多层次的详细分类表,减小事实表的规模。
特征
面向主题:数据仓库是围绕关键业务领域组织的,提供了对分析对象的高层次、一致性描述,涵盖企业各方面的数据及其相互关系。。
集成性:数据仓库集成了来自不同数据源的信息,通过抽取、清理、加工、汇总和整理步骤,形成全面而准确的决策支持数据。这种集成是建设数据仓库中最关键且最复杂的一环。
稳定性:数据仓库存储的是用于分析的稳定历史数据,主要操作包括查询和定期更新。数据一旦载入仓库,通常会长期保存,很少进行修改或删除。
时变性:数据仓库包含长期历史数据,总是涵盖时间维度,便于研究趋势和周期性变化。它允许用户回顾过去的数据,分析和预测未来趋势。
关键环节
数据抽取
数据抽取是数据进入仓库的入口。由于数据仓库是一个独立的数据环境,它需要通过抽取过程将数据从联机事务处理系统、外部数据源、脱机的数据存储介质中导入数据仓库。数据抽取在技术上主要涉及互联、复制、增量、转换、调度和监控等几个方面的处理。
数据清洗
数据清洗是数据仓库构建的关键步骤,主要是清除错误和不一致数据的过程,并且解决记录重复问题。所以它又叫数据清理、数据擦洗。数据清洗主要应用在数据仓库、数据挖掘、综合数据质量管理三个领域。
数据转换
数据转换是将数据源中的数据根据转换规则转换成数据仓库中的数据,转换规则一般包括数据类型转换、数据表示方法、命名转换、数据综合、数据筛选。数据转换的实施一般要通过相应的软件工具才能实现。
数据挖掘
数据挖掘(DM)是从超大型数据库或数据仓库中发现并提取隐藏在内部的信息的一种新技术。目的是帮助决策者寻找ju间潜在的关联,发现经营者被忽略的要素,而这些要素对预测趋势、决策行为也许是十分有用的信息。
设计
数据仓库系统的设计分为五个步骤,分别是需求分析、概念模型设计、逻辑模型设计、物理模型设计和数据仓库生成。
需求分析:是数据仓库设计的基础,在数据仓库设计的开始,要详细了解需求。
概念模型:是从现实世界到计算机世界的一个中间层次,通过概念模型可以适合计算机世界的语言和模型对客观世界的具体问题进行描述。
逻辑模型设计:目的是对每个装载主题的逻辑实现进行定义,并在数据仓库元数据中记录相关内容。
物理模型设计:主要目的是确定数据的存储结构、索引策略和存储策略等与物理有关的内容。
数据仓库的生成:是构建数据仓库的重要环节,将从数据源中抽取所需要的数据,经过数据转换后,最终按照预先定义好的数据仓库模型将数据加载到数据仓库中。
相关技术
索引
索引技术的作用在于提高数据仓库访问效率,主要有位索引技术、广义索引、标识技术这三种重要的数据仓库索引技术。
位索引技术
位索引在数据仓库存储结构中是一项非常重要的索引技术。其在存储数据的方式上与传统的关系数据库有所不同,它不是以“行记录”而是以“列”为单位存储数据,即对数据进行垂直分割。对于每一个记录的字段满足查询条件的真假值用“1”或“0”的方式表示,或者用该字段中不能取值(即多位二进制)来表示。
广义索引
在从操作型数据环境抽取数据并向数据仓库中装载的同时,可以根据用户的需要建立各种“广义索引”。对于一些经常性的查询,建立“广义索引”来代替对事实表的查询速度要快得多。广义索引一般以元数据方式存放,但其建立的目的和普通索引一样,都是为了帮助用户快速完成信息查询。
标识技术
使用标准的数据库技术来存储数据仓库是非常昂贵的,较好的替代方法是用基于标识的技术来存储数据仓库。其有利在于可以大量压缩数据,可以索引所有的行和列,且数据越多,标识数据比标准的、基于记录的数据更有利。标识技术就是为数据库中的每个实体创建一个标识,原来的数据库就可以被简化为一系列标识,记录被标识后,存储这些记录的空间将大大缩小。此外,数据量越大,标准的数据库和标识数据库的存储需求差异也就越大,基于标识的数据库的优势就越明显。
分区
数据分区在数据仓库中非常重要,通常是在应用层进行,它是将数据分解为小的物理单元,使得数据可以在小的分开的离散单元中进行管理。这会让数据仓库中的数据装载变得简单,建立索引也更顺畅,数据归档也变得容易。
数据治理和安全措施
数据质量管理
数据仓库中的数据质量主要依赖于各种源系统的数据质量以及数据抽取、清洗、转换和转移过程的质量。主要通过数据收集、数据识别/匹配、数据标准化以及数据清理和数据聚集等过程来实现,从而保证数据具有完整性、一致性、集成性和概括性。
数据访问控制
访问控制在对访问主体身份识别的基础上,根据身份对提出的资源访问请求加以控制。如果数据仓库采用基于关系数据库的星型模式数据模型实现,其访问控制可以通过扩展原有的SQL或数据库管理系统实现,以支持数据仓库的访问语义;如果数据仓库基于超立方体数据模型实现,则需要定义不同于数据库的、针对超立方体数据模型的访问控制模型和机制。
常用数据仓库安全模型
知名产品
应用领域
银行业务
银行部门将数据仓库用于市场研究、个别产品的绩效评估、汇率和汇率研究以及制定营销计划。通过对持卡人交易、消费习惯和商户分类的分析,提供利润丰厚的讨价还价和特别优惠。银行家可以通过数据仓库解决方案有效地处理可用资源。帮助他们做出更好的决策,可以更好地检查消费者数据、政府要求和市场趋势。甚至有的银行还利用数据仓库来有效管理其可支配的资源。
政府
政府公共部门能将数据仓库用于与会计相关的服务,例如:工资管理、人力资源、招聘等。除了将完整的刑法数据库连接到下级的数据仓库之外,政府还可以使用数据仓库来维护和分析税务记录和健康保险信息。这可以帮助根据模式和趋势预测犯罪活动、查找恐怖分子档案、评估威胁并检测欺诈。对前罪犯的历史信息进行数据分析得出的模式和趋势可用于预测犯罪活动。
制造业生产及流通
制造和分销供应商可以利用数据仓库将所有数据整合到一起。这有助于预测市场变化、检查当前模式、识别潜在增长领域,并最终做出产生积极影响的决策。
零售数据管理
零售商使用数据仓库是用于组织数据存储。这可以密切关注产品、广告活动和消费者购买模式。此外,还可以使用预测消除过程通过分析销售来识别快销和慢销产品线来计算每个产品线的货架空间。
保险承保
数据仓库对于保险业来说是重要的,它可以保存当前客户的记录并对其进行分析以发现模式。除了跟踪记录之外,还主要用于评估数据模式和未来客户趋势。可以为每个客户量身定制保险促销和优惠。最后,它最突出的用途是评估承保过程中的客户风险并设定最佳保险费。
其他架构对比
数据湖屋是一种现代数据架构,将数据仓库和数据湖的功能集成在统一平台中。可以像数据湖一样以原始格式存储原始数据,同时还提供像数据仓库一样的数据处理和分析功能。它们之间的主要区别在于它们管理和存储数据的方法。数据仓库以预定义模式存储结构化数据,数据湖以其原始格式存储原始数据,而数据湖屋是结合了两者功能的混合方法。
以上资料来源于:
系统对比
数据库与数据仓库
数据库是一种逻辑概念,是用来存放数据的仓库,通过数据库软件来实现,其存放的是当前值,数据是动态变化的,且访问量最少但访问频率高。数据库中的数据结构比较复杂,有各种结构以满足业务处理系统的需要,主要面向业务处理人员,为业务处理人员提供信息处理的支持。
数据仓库是一个面向主题的、集成的、相对稳定的、反映历史变化的数据集合,用于支持管理决策和信息的全局共享,其存放静态的历史数据,只是定期添加、更新数据,访问频率低但访问量却很高。数据仓库中的数据结构相对简单,面向高层管理人员,为其提供决策支持。它更像一个过程,这个过程涉及数据的收集、整理和加工,它生成决策所需要的信息,并且最终把这些信息提供给使用者,供他们做出正确决策。数据仓库的重点是能够准确、安全、可靠地从业务系统中取出数据,经过加工转换成有规律的信息之后,供管理人员进行分析使用。
大数据的数据仓库与传统数据仓库
传统数据仓库通常是指基于关系型数据库的数据仓库,但不限于SQL Server或MySQL,可以是基于任何关系型数据库管理系统(RDBMS)的。而大数据时代,基于Hadoop生态组件的架构,数据仓库基本上都是基于hive的数据仓库,其中,离线数据仓库和实时数据仓库就是在大数据下产生的,前者通常是指基于批量处理的数据仓库,而不是特指基于Hadoop生态组件的大数据技术,架构方案中以hive为主。后者与前者方案相似,不同之处在于数据是实时的。
参考资料
什么是数据仓库?.aws.amazon.2024-04-29
The Warehouse Layer: A short history of data warehousing (Part 6).alexpetralia.2024-05-06
History of Data Warehouse.services-technologies.2024-05-06
Oracle Exadata.Oracle Exadata.2024-05-26
Amazon Redshift.Amazon Redshift.2024-05-27
Teradata.Teradata.2024-05-27
Snowflake.Snowflake.2024-05-27
Microsoft SQL Server.Microsoft SQL Server.2024-05-27
What Is a Data Warehouse? Definition, Architecture, Tools, and Applications.spiceworks.2024-05-02
What is a data warehouse?.databricks.2024-05-02