第三章 数据仓库

自从数据仓库的概念被提出以来,它已经经历了从探索阶段到实用阶段的发展历程。在当前的经济形势下,企业面临着越来越大的市场竞争和经济增长的减缓,需要通过提高效率和准确性来应对挑战。数据仓库作为一种高效集成、管理数据的技术,已经成为企业管理和决策的重要工具之一。

随着信息技术的广泛应用和数据的爆炸式增长,企业面临着组织和管理数据的难题,数据仓库作为一种高效的数据管理技术,可以帮助企业有效地组织和存储数据,并把内部隐藏的信息转化为商业价值,为企业效益提供服务。

当企业的经营策略从以产品为中心转变为以顾客为中心时,数据的潜在价值得到了更多的关注。数据仓库可以帮助企业了解顾客需求和行为,为企业提供更加个性化的服务和更加精准的营销决策,从而提高企业的竞争力。

总之,随着企业对数据资产价值的认识不断提升,数据仓库作为一种高效的数据管理技术,将在企业管理和决策中发挥越来越重要的作用。

3.1 从数据库到数据仓库

数据库和数据仓库是两种不同的数据管理系统,它们的设计和目的也有所不同。数据库是用于管理和组织企业中的交易性数据,例如订单、库存和客户信息等。它们通常被用于支持应用程序,例如企业资源计划 (ERP)、客户关系管理 (CRM) 和电子商务系统等。

数据仓库则是用于管理企业中的历史性数据,例如销售数据、财务数据和客户反馈等。它们通常被用于支持企业的决策制定和分析。数据仓库的设计旨在支持企业的数据分析和报告需求,包括数据挖掘、在线分析处理 (OLAP) 和商业智能 (BI) 等。

从数据库到数据仓库的转变通常是因为企业需要更加深入地了解他们的业务和顾客,以便更好地做出决策。传统的数据库管理系统往往只能提供企业的交易性数据,而不包括更广泛的历史数据和其他信息。数据仓库则可以通过整合来自多个数据源的数据,提供更全面和深入的数据分析和报告。

操作型处理和分析型处理是两种不同类型的数据处理方式,它们各自具有不同的特征和用途。以下是它们的主要区别:

数据类型 操作型处理主要处理企业的交易性数据,例如客户订单、库存和交易记录等。这些数据通常是实时的、频繁的、短期的,需要快速地记录和更新。分析型处理则主要处理企业的历史数据,例如销售数据、财务数据和客户反馈等。这些数据通常是大量的、复杂的、长期的,需要深入地分析和挖掘。 数据存储方式 操作型处理通常使用关系型数据库或其他基于事务的数据存储方式,以确保数据的完整性和一致性。这种方式通常适用于需要频繁更新和查询的数据。分析型处理则通常使用数据仓库或其他基于列的数据存储方式,以支持大规模数据分析和复杂查询。 处理方式 操作型处理通常是事务性的,需要快速地完成数据的记录、更新和查询等操作。这种方式通常需要高效的事务处理能力和快速的数据访问速度。分析型处理则是基于查询的,需要进行复杂的数据分析和挖掘,通常需要使用统计分析和数据挖掘技术等。 用途和目的 操作型处理的主要目的是支持企业的日常运营和业务流程,例如订单处理、库存管理和客户服务等。分析型处理的主要目的是支持企业的决策制定和业务规划,例如市场分析、产品开发和业务优化等。

操作型处理和分析型处理面向不同的用户和目的,它们的应用场景和功能也有所不同。

操作型处理主要面向企业的日常业务流程,例如订单处理、库存管理和客户服务等,旨在支持企业的日常运营。其用户主要是企业的业务人员,他们需要快速、准确地处理和查询数据,但不需要进行复杂的数据分析和挖掘。 分析型处理则主要面向企业的决策制定和业务规划,例如市场分析、产品开发和业务优化等,旨在支持企业的决策制定和业务规划。其用户主要是企业的各级管理人员,他们需要深入地分析和挖掘历史数据,以获取信息、知识和见解,帮助他们做出更明智的决策。

因此,操作型处理和分析型处理虽然都是数据处理的方式,但它们的目的和应用场景不同,需要针对不同的用户需求和业务目标进行选择和应用。

3.2 数据仓库的概念

数据仓库的初衷是为了解决企业在从操作型系统向决策支持系统过渡过程中的数据集成和分析问题。传统的操作型处理系统主要关注业务流程和交易处理,而对于企业的决策制定和分析需求缺乏支持。因此,设计数据仓库可以提供一种工具或整个企业范围内的数据集成环境,以支持企业的决策制定和业务规划。

数据仓库的设计和实现需要解决很多数据流相关的问题,例如如何从传统的操作型处理系统中提取与决策主题相关的数据,如何将分散的、不一致的业务数据转换成集成的、低噪声的数据等。因此,数据仓库不仅仅是一个存储数据的仓库,它还需要具备数据抽取、转换、加载和处理等功能,以确保数据的准确性和一致性。

Bill Inmon提出的数据仓库概念包括面向主题、集成的、非易失的和时变的四个特征。

面向主题意味着数据仓库是针对企业的某个特定主题或问题领域而设计的,例如销售、客户、市场等。集成的意味着数据仓库可以从多个数据源中获取数据,并将其集成到一个统一的数据模型中,以确保数据的一致性和准确性。非易失的意味着数据仓库中的数据一般是只读的,即不允许在数据仓库中直接修改数据,以确保数据的完整性和稳定性。时变的意味着数据仓库中存储的数据是历史数据,它可以跟踪数据的变化,以支持历史数据分析和趋势预测。

总之,数据仓库是面向分析的数据存储方案,它专注于支持决策制定和业务规划,与操作型数据库不同。数据仓库需要对分布在企业中的多个异构数据源进行集成,并按照决策主题选择数据并以新的数据模型存储。此外,存储在数据仓库中的数据一般不能修改,以确保数据的完整性和稳定性。

1. 面向主题

面向主题是数据仓库的一个重要特征,它意味着数据仓库是针对企业的某个特定主题或问题领域而设计的,例如销售、客户、市场等。

在传统的操作型数据库中,数据是按照应用程序的需求进行组织和存储的,而数据仓库则是按照主题进行组织和存储的。数据仓库的主题通常是围绕着企业的业务问题或决策需求展开的,例如销售趋势、客户满意度、市场份额等。

通过面向主题的方式,数据仓库可以提供更加灵活和高效的数据查询和分析功能。因为数据仓库中的数据是按照主题进行组织和存储的,所以用户可以更加方便地查询和分析与特定主题相关的数据。此外,面向主题的方式还可以帮助用户更好地理解和解决企业的业务问题,提高决策制定的效率和准确性。

2. 集成性

集成性是数据仓库的另一个重要特征,它意味着数据仓库可以从多个数据源中获取数据,并将其集成到一个统一的数据模型中,以确保数据的一致性和准确性。

企业中通常存在着大量的异构数据源,例如关系型数据库、文件系统、Web服务等,这些数据源的数据格式和结构都不同,难以直接进行查询和分析。数据仓库通过数据抽取、转换和加载等技术,可以将这些异构数据源中的数据进行集成,并按照特定的数据模型进行组织和存储。

通过集成性的方式,数据仓库可以提供更加全面和准确的数据分析和决策支持功能。因为数据仓库中的数据已经被集成到一个统一的数据模型中,所以用户可以更加方便地进行查询和分析,而且可以避免数据冗余和不一致性的问题。

3. 数据的非易失性

数据的非易失性是指数据仓库中存储的数据是持久的,不会因为系统故障或断电而丢失。这是数据仓库与传统的操作型数据库不同之处之一。

在传统的操作型数据库中,数据通常是被频繁地修改、更新、删除的,因此需要采用事务处理和日志记录等技术来确保数据的一致性和可靠性。然而,在数据仓库中,数据通常是被定期抽取、转换和加载的,而且不会被频繁地修改、更新、删除,因此不需要采用事务处理和日志记录等技术来确保数据的一致性和可靠性。

在数据仓库中,数据的非易失性可以通过多种方式来实现,例如数据备份和恢复、磁盘镜像、热备份等技术。这些技术可以确保数据仓库中的数据在系统故障或断电情况下不会丢失,并且可以快速地恢复到之前的状态。

4. 数据的时变性

数据的时变性是指数据仓库中存储的数据具有历史记录,可以追溯到不同的时间点。这是数据仓库与传统的操作型数据库不同之处之一。

在传统的操作型数据库中,数据通常只包含最新的状态,而不包含历史记录。然而,在数据仓库中,数据通常包含不同时间点的历史记录,以支持时间序列分析和趋势分析等应用。

在数据仓库中,数据的时变性可以通过多种方式来实现,例如采用特定的数据模型和数据结构,记录每个数据记录的时间戳信息,以及采用特定的查询语言和工具来支持时间序列分析和趋势分析等应用。

通过数据的时变性,数据仓库可以提供更加全面和准确的数据分析和决策支持功能。因为数据仓库中的数据具有历史记录,所以用户可以更加方便地进行时间序列分析和趋势分析,了解企业的业务发展和趋势,从而更好地制定决策和战略。

数据仓库建设是一个持续的过程,需要不断地进行数据抽取、转换、加载和维护等工作,以保证数据仓库中的数据始终保持最新和准确。

数据仓库的数据随时间的变化表现在以下几个方面:

数据仓库的数据时限一般要远远长于操作型数据的数据时限:操作型系统存储的是当前数据,而数据仓库中的数据是历史数据。因此,数据仓库中存储的数据时限一般要比操作型数据的数据时限长得多。这是为了支持历史数据分析和趋势分析等应用,从而更好地支持企业的决策和战略制定。 操作型系统存储的是当前数据,而数据仓库中的数据是历史数据:操作型系统主要用于企业的日常业务处理,存储的是当前的业务数据。而数据仓库则主要用于数据分析和决策支持,存储的是历史数据。因此,数据仓库中的数据更加适合进行数据分析和决策支持。 数据仓库中的数据是按照时间顺序追加的,它们都带有时间属性:数据仓库中的数据是按照时间顺序追加的,每个数据记录都带有时间属性。这样,在进行时间序列分析和趋势分析等应用时,可以方便地追溯不同时间点的数据状态和变化,进行更加全面和准确的数据分析和决策支持。

数据仓库的建立通常包括以下几个主要部分:

数据的抽取、转换与装载(ETL):这是数据仓库建立的第一步,也是最重要的一步。数据抽取是指从各种数据源中提取数据,转换是指对提取的数据进行转换和加工,装载是指将转换后的数据加载到数据仓库中。ETL过程的目的是将各种异构的数据源整合到一个统一的数据仓库中,为后续的数据分析和决策支持提供数据基础。 元数据管理:元数据是数据仓库中关于数据的描述信息,包括数据的来源、格式、定义、关系等。元数据管理是指对元数据进行管理和维护,以确保数据仓库中的数据具有一致性和准确性。元数据管理可以支持数据仓库的查询和分析,同时也为数据仓库的维护和管理提供必要的信息基础。 数据集市:数据集市是数据仓库中的一个子集,通常包含一些特定的主题或领域的数据。数据集市的目的是为企业提供更加专业化和个性化的数据服务,支持各部门和用户对特定领域的数据进行查询和分析。 操作数据存储:操作数据存储是指数据仓库中存储的用于操作性应用的数据。与数据仓库中的历史数据不同,操作数据存储包含当前的业务数据,用于支持企业的日常业务处理和决策。

总之,数据仓库的建立需要进行数据的抽取、转换与装载(ETL)、元数据管理、数据集市和操作数据存储等多个部分的构建和管理,以支持企业的数据分析和决策支持。

3.3 数据集市

人们在早期开发企业级数据仓库时,一般是先建立一个全局的数据仓库,然后在此基础上建立各种应用,即采用“自顶向下”的方法。但在开发的过程中会出现以下问题。

如果按“自顶向下”的方法建立企业级数据仓库,建设规模往往较大,建设周期长投资大。在数据仓库建好后,随着使用数据仓库的部门增多,对数据仓库资源的竞争将成为企业面临的一个难题。各个部门都希望能定制数据仓库中的数据,但数据仓库是面向企业的

为解决上述问题,人们提出了数据集市的概念,如图 3.4所示。 数据集市支持某一业务单元或部门特定的商业需求,其中的数据可以来自数据仓库。数据集市可以在数据仓库的基础上进行设计,如图3.4(a)所示,也可类似数据仓库直接设计,如图 3.4(b)所示。 数据集市中的数据具有数据仓库中数据的特点,只不过数据集市是专为某一部门或某个特定的商业需求定制的,而不是根据数据容量命名的。

数据集市是专为某个特定部门、业务单元或应用而建立的数据存储区域,因此规模相对较小,便于快速实现,成本也相对较低。数据集市的应用不仅可以满足部门的数据处理需求,还有助于构建完整的企业级数据仓库。

通过建立数据集市,可以更加准确地满足某个部门、业务单元或应用的数据需求,提高数据的使用效率和价值。同时,数据集市可以作为数据仓库的子集,有助于构建完整的企业级数据仓库,提高企业数据管理的整体水平和效果。

3.4 元数据

**元数据(metadata)**可以被看作是数据的“描述信息”,就像电话黄页一样,提供了关于某个企业或服务的重要信息。就像电话黄页中包含的信息可以帮助人们快速了解企业的业务内容、联系方式等,元数据也可以帮助人们快速了解数据的结构、含义、来源等信息。

通过元数据,我们可以了解数据的定义、格式、逻辑关系、业务规则等,这些信息对于数据的管理和使用都至关重要。元数据的管理可以帮助我们更好地管理和理解数据,提高数据的质量和可靠性,同时也可以提高数据的分析和决策效率。

1. 元数据的定义

数据仓库中的元数据是关于数据仓库中数据的数据。它的作用类似于数据库管理系统的数据字典,用于保存逻辑数据结构、文件、地址和索引等信息。从广义上讲,在数据仓中,元数据是描述数据仓库内数据的结构和建立方法的数据。

元数据是数据仓库管理系统的重要组成部分,元数据管理器是企业级数据仓库中的关键组件,贯穿于数据仓库构建的整个过程,直接影响着数据仓库的构建、使用和维护。

构建数据仓库的主要步骤之一是 ETL。这时元数据发挥了重要的作用,它定义了源数据到数据仓库的映射、数据转换的规则、数据仓库的逻辑结构、数据更新的规则、数据导人的历史记录以及装载周期等相关内容。数据抽取和转换的专家以及数据仓库管理员正是 通过元数据高效地构建数据仓库的。用户在使用数据仓库时,通过元数据访问数据,明确数据项的含义以及定制报表。数据仓库的规模及其复杂性离不开正确的元数据管理,包括增加或移除外部数据源,改变数据清洗方法,控制出错的查询以及安排备份等。

元数据分为技术元数据和业务元数据。技术元数据是为开发和管理数据仓库的IT人员所使用,描述了与数据仓库开发、管理和维护相关的数据,包括数据源信息、数据转换描述、数据仓库模型、数据清洗与更新规则、数据映射和访问权限等。而业务元数据是为管理层和业务分析人员服务,从业务角度描述数据,包括商务术语、数据仓库中有什么数据、数据的位置和数据的可用性等,使业务人员更好地理解数据仓库中哪些数据是可用的以及如何使用它们。

上述表明,元数据不仅定义了数据仓库中数据的模式、来源、抽取和转换规则等,而且整个数据仓库系统的运行都是基于元数据的,元数据把数据仓库系统中各个松散的组件联系起来,组成了一个有机的整体。

2. 元数据的存储方式

元数据是描述数据的数据,用于管理和维护数据集的信息。

它有两种常见的存储方式:以数据集为基础的元数据文件存储和以数据库为基础的元数据库存储。

元数据文件存储方式独立性强,便于在不同数据库系统之间操作,但是在规模巨大的数据库中会有大量的元数据文件,管理起来不方便。

相比之下,元数据库存储方式提供统一的数据结构和业务规则,易于集成多个数据集市,具有较好的数据一致性和准确性。

因此,建议使用元数据库存储方式。

元数据库最好选用主流的关系数据库管理系统,包含用于操作和查询元数据的机制。建立元数据库的主要好处是提供统一的机制来操作和查询元数据,易于把企业内部的多个数据集市有机地集成起来。对于一些企业倾向于建立多个数据集市的情况,建议在建立数据仓库之前先建立一个用于描述数据和服务应用集成的元数据库,以保证数据仓库数据的一致性和准确性,为企业进行数据质量管理奠定基础。

3. 元数据的作用

在数据仓库中,元数据的主要作用如下:

描述数据:元数据可以描述数据仓库中包含哪些数据,帮助决策分析者对数据仓库中的数据进行定位和选择。 定义数据进入方式:元数据可以定义数据进入数据仓库的方式,包括数据的汇总、映射、清洗等过程,作为数据管理的指南。 记录业务事件的发生和数据抽取时间:元数据可以记录业务事件的发生时间和随之进行的数据抽取工作的时间安排,帮助追溯数据的来源和变化过程。 检测数据一致性:元数据可以记录并检测系统数据一致性的要求和执行情况,保证数据仓库中的数据准确、一致、可靠。 评估数据质量:元数据可以评估数据质量,包括数据的准确性、完整性、一致性等指标,帮助数据管理员进行数据质量管理和改进。

4. 粒度

粒度是指数据在数据仓库中的组织层次和存储细节程度。粒度越小,数据越细,查询范围就越越小;相反,粒度级别越高,表示细节程度越低,查询范围就广泛。例如,在数据仓库中,信用卡发行商需要查询某个地区的信用卡使用情况和不同类别用户的消费记录,这就涉及不同细节的数据。数据仓库中的数据冗余程度较高,因此采用数据分区存储技术以提高数据仓库的可维护性、查询速度和加载性能。

根据粒度不同,数据可以分为早期细节级、当前细节级、轻度综合级和高度综合级等。

在ETL后,元数据首先进入当前细节级,然后根据需要进一步进入轻度综合级和高度综合级。一旦数据过期,当前数据粒度的具体划分会直接影响到数据仓库中的数据量和查询质量。数据仓库的粒度结构非常重要,可以帮助我们更好地理解数据和进行数据分析。

5. 通用数据仓库元模型

数据仓库中的多粒度化为用户提供了灵活性,例如,家用电器销售数据可以满足市场、财务和销售等部门的需要。如果财务部门想要了解某地区的销售收入,只需改变相关数据的粒度即可。然而,目前大部分商务智能产品都有不同的元数据模型,这可能会给集成不同产品带来麻烦。因此,标准化管理元数据模型是必要的。通用数据仓库元模型(CWM)是一种元数据模型的标准化管理方法,它是OMG为解决元数据交换而采用的一个标准。得到了IBM、Oracle、NCR、Sun和HP等公司的支持,这个标准提供了基于XML的元数据交换模型,可能会大量应用于新一代的数据仓库系统。

通用数据仓库元模型通过不断完善的模型标准管理元数据,其中Package通过OMG提供的标准交互式数据语言(IDL)转换为关系数据库管理系统中的SQL或存储过程实现。这里的Package利用统一的接口方便应用存储元数据。这样,元数据就可以在不同商务智能系统之间交换和共享,从而减少商务智能构建的费用。因此,CWM可以帮助企业更高效地管理和利用数据仓库中的元数据,提高数据仓库和BI应用程序的开发和管理效率。

3.5 ETL

数据仓库并非只是数据的简单累积,而是要经过一系列的抽取(Extract)、转换(Transform)和加载(Load)的过程,即ETL。ETL 是构建数据仓库的重要环节,也是企业数据管理的核心,对数据仓库的后续环节影响比较大。目前市场上主流的 ETL 工具主要有 Informatica 的 PowerCenter、IBM的DataStage、Oracle 的 Warehouse Builder 以及 Microsoft 的 SQL Server IS等。

1. 数据抽取

数据仓库是面向主题的,并非源数据库的所有数据都是有用的,所以在把源数据库中的相关数据导人到数据仓库之前,需要先确定该数据库中哪些数据是与决策相关的,数据抽取的过程可以大致分为以下几个步骤:

确认数据源的数据及其含义:在进行数据抽取之前,需要了解数据源中的数据结构、内容和含义,以便确定需要抽取哪些数据。只有明确了数据的意义和价值,才能确保数据的有效性和正确性。 抽取:确定需要访问源数据库中的哪些文件或表,并提取其中与决策相关的字段。这些字段可能涉及不同的数据类型和数据结构,因此需要使用相应的工具或技术进行数据抽取。 抽取频率:需要定期更新数据仓库的数据,因此需要确定数据抽取的频率。根据不同数据源的变化情况和重要性,可以设置不同的抽取频率,例如每天、每星期、每月或每季度等。 输出:抽取的数据需要输出到数据仓库,同时也可以输出到其他目的地,例如报表、数据集成工具或其他应用程序中。数据输出的格式可以是结构化的表格、文本文件或二进制文件等。 异常处理:在数据抽取过程中,可能会出现各种异常情况,例如数据源无法连接、数据丢失或数据错误等。为了保证数据的完整性和准确性,需要对这些异常情况进行处理,例如记录异常日志、重新抽取数据或通知系统管理员等。

2. 数据转换

数据仓库的数据来自多种数据源,这些数据源可能由不同的平台开发,使用不同的数据库管理系统,因此数据格式也可能不同。在将数据装载到数据仓库之前,需要进行一定的数据转换,以确保数据的一致性和可用性。主要有以下两种转换:

不一致数据的转换:不一致数据包括数据源内部的不一致和多个数据源之间的不一致。例如,在一个应用系统中,BJ表示北京,SH表示上海,GZ表示广州。而在另一个应用系统中,对应的代码分别为1、2、3。此外,不同业务系统的数量单位、编码、值域或语义等也需要统一,例如某供应商在结算系统的编码是990001,而在CRM中编码是YY0001。这时就需要抽取后统一转换编码,以确保数据在数据仓库中的一致性。 数据粒度的转换:业务系统一般存储细粒度的事务型数据,而数据仓库中的数据是用于查询、分析的。因此,需要多种不同粒度的数据。这些不同粒度的数据可以通过对细粒度的事务型数据进行聚合(aggregation)而产生。例如,将某一年的销售额按月、季度或年份进行汇总,就需要进行数据粒度的转换。这种转换可以通过SQL语句中的GROUP BY子句来实现。

3. 数据清洗

数据源中数据的质量是非常重要的,低质量的数据可能会导致错误的决策和不准确的分析结果。因此,有必要进行数据清洗以提高数据的质量和可用性。数据清洗是指对数据进行预处理和过滤,以去除数据中的错误、重复、冲突和缺失等问题。

主要的数据质量问题包括:

缺失数据:指数据源中缺少某些信息或字段的数据。这种问题可能会导致数据的不完整性和不准确性,因此需要进行数据填充或插值处理。 错误数据:指数据源中存在的不正确、不一致或不准确的数据。这种问题可能会导致错误的决策和不准确的分析结果,因此需要对数据进行修正或删除。 数据重复:指数据源中存在多个相同的数据记录。这种问题可能会导致数据的冗余性和不准确性,因此需要进行数据去重处理。 数据冲突:指数据源中存在的不一致或矛盾的数据记录。这种问题可能会导致错误的决策和不准确的分析结果,因此需要进行数据冲突解决处理。

商务智能企业提供的数据质量防火墙可以自动减少数据的噪声,但是仍需要进行业务主管的确认和修正。数据清洗是一个复杂的过程,需要对数据进行全面的校验和处理,以确保数据的质量和准确性。

4. 数据装载

数据转换和清洗完成后,需要将数据装载到数据仓库中,以支持数据分析和决策。通常有以下几种装载方式:

初始装载:一次对整个数据仓库进行装载,适用于首次建立数据仓库或需要对整个数据仓库进行重构的情况。 增量装载:在数据仓库中,增量装载可以保证数据库与源数据变化的同步性。适用于需要定期更新或新增数据的情况,可以节省时间和资源。 完全刷新:周期性地重写整个数据仓库,有时也可能只对一些特定的数据进行刷新。适用于数据源的变化比较频繁,需要保持数据的有效性和准确性的情况。

在初始装载完成后,为维护和保持数据的有效性,可以采用更新和刷新的方式。更新是指对数据源的变化进行记录,以便在下次装载时进行更新。而刷新则是指对特定周期的数据进行重新装载,以保证数据的完整性和准确性。

以上装载方式都需要考虑数据的质量和完整性,以确保数据仓库中的数据能够支持有效的数据分析和决策。

3.6 操作型数据存储

数据仓库将操作型数据和分析型数据分离,建立了数据库-数据仓库(DB-DW)两层体系结构。然而,DB-DW并不能完全满足企业所有的数据处理需求。在实际应用中,有时会遇到需要实时或近实时数据的问题,这就需要在DB-DW之间增加一个新的层次,即操作型数据存储(ODS),它属于操作型处理和分析型处理之间的一个中间层次,这样就形成了数据仓库的DB-ODS-DW结构,满足实时或近实时的查询要求和报表需求。例如,电信公司渠道支撑分析人员需要及时地了解顾客消费行为的变化,尽快为顾客提供主动的服务,从而挽留高价值顾客,提高收人,这就需要对近实时的数据进行分析。

操作型数据存储与数据仓库相似,其数据组织方式也是面向主题的、集成的,因此在进入操作型数据存储之前,数据也需要进行集成处理。不同的是,操作型数据存储只存储当前或接近当前的数据,存取的数据是最近一段时间产生的,而不是历史数据。同时,操作型数据存储也具有类似操作型数据库的特点,即它是联机可变的,会根据需要对数据执行增删和更新等操作。操作型数据存储的数据可作为数据仓库的数据源批量导入到数据仓库中进行分析。

3.7 数据仓库模型

数据模型是将现实世界的事物及其相关特征转换为信息世界的数据的一种工具。在数据仓库的设计中,数据模型起着非常重要的作用,可以帮助设计人员更好地理解和组织数据,从而提高数据仓库的效率和可靠性。

数据仓库的模型包括概念模型、逻辑模型和物理模型等。概念模型是最初的模型,用于描述数据仓库中的概念和关系。逻辑模型是在概念模型的基础上进一步细化和完善的模型,用于描述数据的逻辑结构和关系。物理模型则是将逻辑模型转换为物理存储结构的模型,用于描述数据在物理存储介质中的组织方式和存储方式。

元数据模型是描述数据仓库中元数据的模型,用于管理和维护数据仓库的元数据信息。元数据模型包括数据定义、数据字典、数据目录、数据质量等内容,可以帮助用户更好地理解和使用数据仓库中的数据。

数据粒度和聚合模型是在数据仓库设计中非常重要的概念。数据粒度指的是数据仓库中数据的细节程度,聚合模型则是用于描述数据在数据仓库中的聚合方式和过程。在数据仓库设计中,需要根据实际需求选择合适的数据粒度和聚合模型,以满足用户的查询和分析需求。

1. 概念模型

信息世界是人们对现实世界的认知和反映,概念模型是用来表达信息世界中的信息结构的工具,一般由用户和设计者共同确定。关系数据库通常使用实体-关系(E-R)图来表示概念模型,因为它简单易懂、易于操作,并且具备较强的现实世界描述能力。

现今的数据仓库通常采用主题分析方法来表示概念模型,每个主题由若干个维度和度量组成。

维度是人们观察世界的特定角度,例如销售经理需要了解某个时间段、特定地区、不同销售部门销售新产品的利润,可以按照时间、地区、分销机构和产品型号等维度进行评价。度量是与维度分析有关的数值信息,如销售量等。在银行卡业务分析中,银行卡业务的收入主要包括用户年费、透支利息、特约商户收取的刷卡消费手续费和其他收入。以顾客为中心,银行卡业务分析的主题包括顾客、商户和卡业务,目的是获取有价值的顾客。

概念模型通常用信息包图表示,包括主题的多维特性、每个维度的层次和分析指标(度量)。

总之,概念模型是一个多维信息结构,用于帮助企业更好地理解业务问题和数据需求,为后续的数据仓库设计和数据分析提供基础,从而帮助企业进行数据驱动的决策和管理。

2. 逻辑模型

在确定了概念模型中的主题、分析维度和度量后,就可以设计数据仓库的逻辑模型。数据仓库可以采用多维数组实现,具有查询方便、快速的优点。但随着关系数据库的成熟,数据仓库也可以建立在关系数据库的基础上,在进行维度分析时利用原有的关系模型构建事实表和维表。事实表包括分析的主题相关维度 ID 和度量,维表包括维度的具体内容。

例如,在银行卡业务分析中,可以将用户主题用用户基本信息、时间、渠道、产品、人口统计和用户细分信息等维度进行透视,全方位把握用户信息。

目前,主要的数据库厂商都扩充了数据仓库管理功能。数据仓库通常有以下两种基本的逻辑模型:

星型模型:由一个中心的事实表和多个维表组成,事实表和维表之间通过外键关联。星型模型的查询速度快,但是不够灵活,适用于维度数少、查询频繁的场景。

图 3.8 所示为某公司销售数据仓库的星型模型,其中销售记录表是事实表,而日期表、商店表、产品表和顾客表都是维表。

雪花模型:在星型模型的基础上,对维表进行规范化,即将维表中的某些属性拆分成多个表,形成一个类似于雪花的形状。雪花模型的查询速度相对较慢,但是更加灵活,适用于维度数多、查询复杂的场景。

图3.9所示为一个雪花模型,在星型模型的基础上做了进一步的扩展,在商店维表的基础上增加了店铺所在地区的细节维表。

除了星型模型和雪花模型之外,还有衍生模型,例如星系模型描述了数据仓库中多个事实表共享一个或多个维表的情况。这些衍生模型通常用于解决数据仓库设计中的特定需求和复杂性。例如,星系模型适用于建模涉及多个事实表共享维度的复杂业务流程。它允许更灵活地查询数据仓库,因为可以在共享相同维度的多个事实表之间编写查询。

总而言之,逻辑模型设计包括确定数据仓库中数据粒度、数据分割策略、关系模式以及记录系统定义等工作。逻辑模型对每个当前要装载主题的逻辑实现进行定义,并把相关容记录在数据仓库的元数据中,包括适当的粒度划分、合理的数据分割策略、适当的表结构划分以及数据源等。

数据仓库逻辑模型设计中要解决的一个重要问题是决定数据仓库的粒度划分,粒度分适当与否直接影响数据仓库中的数据量和所适合的查询类型。在划分数据仓库的粒度时,可以通过估算数据行数和所需的直接存储设备(direct access storage device,DASD)数确定采用单一粒度还是多重粒度。

在确定数据分割策略,选择适当的数据分割标准时,一般要考虑以下因素:数据量、据分析处理的实际情况、是否简单易行以及粒度划分情况等。数据量的大小是影响是否进行数据分割以及如何进行分割的主要因素,而如何进行数据分析处理是选择数据分割标准的一个主要依据,因为数据分割与数据分析处理的对象是紧密联系的。此外,还要使选择的数据分割标准是自然的、易于实施的,确保数据分割的标准与粒度划分是互相适应的。

3. 物理模型

数据仓库的物理模型是逻辑模型在数据仓库中的实现,主要包括软硬件配置、存储结构与索引、数据存放位置和存储分配等。

在设计物理模型时,需要全面了解所选用的数据库管理系统、数据的环境、使用频率、规模以及响应速度等因素,以平衡时间和空间效率。同时,还需要了解外部存储设备的特性,如分块原则、块大小和设备的I/O特性等。

物理模型是在逻辑模型的基础上实现的,设计时应该权衡存取时间、存储空间利用率和维护代价等因素。在数据量很大时,需要仔细设计存取路径或建立索引以提高数据存取效率。在物理设计时,可以根据数据的重要程度、使用频率以及对响应速度的要求进行分类,将不同类的数据分别存储在不同的存储设备上。重要程度高、经常存取并对响应时间要求高的数据存放在高速存储设备上,而存取频率低或对存取响应时间要求低的数据则放在低速存储设备上。

确定数据存储位置时,还要考虑一些其他因素,以设计相应的元数据,例如是否对一些常见应用建立数据序列,是否对常用的、不常修改的表或属性冗余存储。老管统提供了存储分配的参数供设计者做物理优化处理,例如块的大小、缓存等,这些参数都要在进行物理设计时确定。

设计数据仓库的物理模型需要考虑以下几个问题

确定项目资源:在设计数据仓库的物理模型时,需要确定项目资源,包括人力资源、财务资源、技术资源等,以保证项目的顺利进行。 确定软硬件配置:在设计数据仓库的物理模型时,需要根据数据的规模和复杂程度,确定合适的软硬件配置,以保证数据仓库的性能和可靠性。 数据仓库存储设计:在设计数据仓库的物理模型时,需要考虑数据的存储结构、索引、存储位置和存储分配等问题,以提高数据的访问效率和降低维护成本。 数据仓库ETL策略:ETL是数据仓库中数据抽取、转换和加载的过程,需要设计合理的ETL策略,包括数据抽取策略、数据转换策略和数据加载策略,以确保数据的准确性和完整性。

3.8 数据挖掘查询语言

略。

3.9 医保数据仓库设计

1. 医保的业务分析

某市的医保信息化建设已经涵盖了多项业务,但由于缺乏整体规划和标准化,每个子系统都有局部的业务数据,形成数据孤岛,导致数据杂乱、冗余和数据交换繁杂,影响了医保管理的综合分析能力和时效性。此外,随着医保数据采集力度的加大,数据量急速增长,未来数据中心存储的数据量将达到TB或PB级。

为了解决这些问题,某市医保管理部门决定采用数据仓库建立集成的数据平台,以整合各分布系统源的数据,提高医保管理的综合分析能力,及时、有效地反映医保基金的运作情况。该数据平台将采用分布式存储、星型或雪花模型、元数据管理、数据集市等技术,通过数据ETL以及清洗、合并和转换等操作,确保数据的一致性和完整性,以满足医保业务分析和决策的需求。

2. 医保数据仓库系统架构

医保数据仓库的设计采用了典型的数据仓库三层架构。从数据源到最终呈现给用户中间经过数据获取、数据管理和信息传递等过程。

数据获取:采用ETL工具从分布异构的数据源抽取相关的源数据,并经过转化、清洗、装载到操作型数据存储中。操作型数据存储提供当前操作型数据的统一视图,其中的数据以日为单位或以自定义的时间间隔进行定时更新,提供短期业务分析,例如日常报表等。同时,也可以使用ETL工具把存储在外部数据源的数据或操作型数据批量加载到数据仓库中。 数据管理:考虑到基础数据量大和增长速度快的情况,医保系统选用了Oracle数据仓库管理系统,利用其分区技术,把数据仓库划分为主仓库、元数据库和数据集市。Oracle数据仓库管理系统提供了一个多维OLAP服务器Oracle Express Server,使用多维模型存储和管理多维数据库或多维高速缓存,同时也能够访问多种关系数据库。在整个医保数据仓库解决方案实施过程中,通常把汇总数据存储在Express多维数据库中,而把详细数据存储在Oracle关系数据库中。 信息传递:医保数据仓库系统利用Hyperion Essbase套件设计了OLAP模型,先由业务人员制定需求,然后根据业务需求明确OLAP主题,并建立相应的映射数据。同时,根据业务人员习惯使用Microsoft Office查看报表的特点,在展现层保留了原有Word、Excel等报表模式,利用Hyperion Essbase的Office Addin模块进行基于Microsoft Office的报表分析。

3. 医保数据ETL

在医保数据仓库设计时 ETL 采用中间文件的间接加载和不含中间文件的直接加载等模式实现。

根据业务特征,医保数据仓库的ETL过程可以采用以下步骤:

预处理:在ETL之前,需要进行预处理,包括清空工作区、定义数据源、检查目标数据仓库、定义ETL规则和数据映像等。这一步骤可以确保ETL的顺利进行。 数据批处理:在ETL过程中,需要进行数据的批处理加载。这一步骤可以将从数据源中抽取的数据进行处理,进行清洗、校验、转换、合并、聚合、计算等操作,生成符合要求的数据。 维表加载:在ETL过程中,需要加载维表。维表的加载需要注意维的对应和比较。在加载维表时,需要进行维度的映射和关联,以确保维度数据的准确性和一致性。 事实表加载:在ETL过程中,需要进行事实表加载。参照维表,查找相关主键进行事实表加载。在加载事实表时,需要进行事实表的聚合、计算等操作,以生成符合要求的事实数据。 日志检测:在ETL过程中,需要进行日志检测。日志检测可以监控数据加载的过程,及时发现并处理问题,确保数据的正确性和可用性。

4. 建立数据集市

在某市医保数据仓库系统中,为了满足特定业务需求并提高分析性能,设计了日常分析、监督审核和顾客关系等数据集市。这些数据集市采用的是“自顶向下”的模式,即从高层业务需求出发,逐步细化为具体的数据集市设计。

这种设计模式的优点是能够确保数据集市的设计与业务需求高度契合,同时也可以节省设计和实现的时间和成本,提高数据集市的可用性和可维护性。

此外,数据仓库的设计还采用了反馈模式,即在提出新需求后,将其移交给数据集市进行实现,同时数据集市的需求也不断汇总到数据仓库中。这种设计模式可以确保数据集市与数据仓库之间的协调和一致性,同时也可以更好地支持业务的变化和发展。

5. 元数据的管理

在设计医保数据仓库时,采用了Sybase数据仓库构建工具来建立统一的元数据库,实现元数据的集中管理。医保数据仓库系统中的元数据具有以下功能:

描述哪些医保数据在数据仓库中:元数据记录了数据仓库中所包含的医保数据的名称、类型、结构、含义等信息,以便用户能够清楚地了解数据内容和使用方法。 定义进入数据仓库的数据以及数据仓库中产生的数据:元数据记录了数据仓库中数据的来源和去向,以及每个数据的处理过程和结果,从而确保数据的准确性和完整性。 业务发生而随之进行的数据抽取时间安排:元数据还记录了数据抽取的时间安排和频率,以确保数据能够及时、准确地更新到数据仓库中。 记录、检测系统数据一致性和执行情况:元数据还记录了数据仓库系统的执行情况和数据一致性问题,以便管理员能够及时发现和处理问题,确保数据的质量和可靠性。

医保数据仓库系统的建立解决了医保信息化过程中的“信息孤岛”问题,为医保统计分析、查询、诊疗、检查等项目的费用预警和审核筛选提供技术支撑平台,强化了医保系统中的数据分析和数据挖掘功能,为业务部门的政策制定提供相应的数据信息和测算结果。

此外,该系统还能够对医保基金的支出、供需双方医疗行为的变化进行预测,对参保职工个人和医药机构的违规行为进行分析,建立模型,探索违规和欺诈行为的规律,重点监控有此类倾向的人员和医药机构。这些功能都有助于提升医保管理和服务的水平,保障医保基金的安全和合理使用。

3.10 数据湖

数据湖是一种集中式的数据存储技术,针对传统数据仓库的不足,主要应用于大数据环境下。

相较于传统数据仓库,数据湖具有较低的存储成本,可以存储任意规模的原始数据,并以原来的格式存储,不需要预定义模型或者结构化处理,能够进行各种数据分析。

数据湖可以存储结构化、半结构化和非结构化的数据,包括业务系统的数据、移动应用程序数据、物联网设备日志文件、点击流和社交媒体等多种类型的数据。数据湖中的模型不需要在设计时就确定,而是在分析时才确定,供跨部门的业务分析使用,支持各类业务运营分析和客户智能。

数据湖由多个数据池组成,可以使用键、索引等元数据描述数据更新频率、数据来源、数据量、数据选择标准、数据关系等属性。基于数据湖架构的扩展性,用户可以在比较短的时间内从更多的数据源获得并利用多种类型的数据,辅助决策。

数据湖还可以提供实时的智能分析,例如将客户购买历史数据与社交媒体数据对比,帮助用户了解高价值的客户群、客户流失的原因以及如何促销可以提升客户忠诚度。

数据仓库和数据湖并不相互排斥,它们可满足不同的分析需求和使用场景。然而,数据湖存储原始数据,因此数据的可用性和安全性需要进一步考虑。云计算的发展为数据湖的实现提供了经济、高效的平台支撑。

3.11 数据中台

数据中台是企业级的一个逻辑概念,其本质是一个用于数据共享的系统,位于业务前台和后台之间的中间层。一般而言,数据中台可分为数据中台和业务中台两个部分。前台开发主要负责应用开发,而后台开发的主要任务则是数据管理。数据中台则是为企业内部提供数据服务的平台,其主要目的是将企业内部的各种数据资源整合起来,为业务线提供一种高效、可靠的数据服务。通过数据中台,企业可以更好地支持业务需求,提高数据处理的效率和准确度,从而提高企业的竞争力和市场地位。

数据中台的前身可以追溯到数据仓库和大数据分析系统。然而,企业在数据仓库的基础上建立数据中台的原因是因为数据中台可以提供传统数据仓库所不具备的一些功能和特性。

首先,数据中台可以整合和管理各种数据资源,包括结构化数据、半结构化数据和非结构化数据等,实现了数据的全面共享和利用。其次,数据中台可以提供更加灵活和高效的数据计算和处理能力,支持实时数据处理和分析,满足了企业对数据实时性和敏捷性的需求。此外,数据中台还可以提供多样化的数据服务和API接口,为企业内部的业务线提供高质量的数据服务,支持业务的快速开发和创新。

因此,数据中台主要面向业务而非面向技术,其目的是将企业内部的各种能力和资源整合起来,为业务线提供高效、可靠的数据服务,帮助企业更好地支持业务需求,提高数据处理的效率和准确度,从而提高企业的竞争力和市场地位。

数据中台的设计初衷就是为了为业务线提供高效、可靠的数据服务,帮助企业更好地支持业务需求,提高数据处理的效率和准确度,从而提高企业的竞争力和市场地位。

数据中台可以优先提供数据服务,为业务产生价值,甚至可以在数据没有对应数据仓库存储的情况下,先构造可供调用的服务,再逐步完善数据服务,将其自动化。数据中台关注数据中蕴含的业务价值,提供数据分析功能,加注重驱动前台业务更加智能化。数据中台可以将数据以及数据模型标准化、组件化,提高数据分析的效率,让数据服务应用变得容易。

通过数据中台,企业可以更好地管理和利用自身的数据资源,提高数据的价值和利用效率,从而为业务线提供高质量的数据服务,满足业务的快速开发和创新需求。同时,数据中台还可以提高数据分析的效率和准确度,降低数据处理的成本和风险,帮助企业更好地掌握市场动态和商业机会,提高企业的竞争力和市场地位。

前台做应用,后台管数据,中台共享数据和提供数据服务

数据中台主要由下列模块组成:

数据治理:负责制定数据标准和规范、数据质量管理、数据安全和合规性等方面的工作,保证数据的准确性、完整性和安全性。 数据采集和存储:负责从不同数据源中采集、整合和存储数据,包括结构化数据、半结构化数据和非结构化数据等。 数据共享:负责将不同业务线的数据资源整合起来,提供数据共享和数据服务,帮助业务线快速开发和创新。 数据业务价值提供:负责将数据转化为业务价值,通过数据分析和挖掘,为业务线提供决策支持和业务优化等方面的服务。 数据服务与管理:负责为业务线提供数据服务和API接口,支持业务的快速开发和创新,同时还负责数据的管理和维护等方面的工作。

这些模块相互关联、相互支持,构成了一个完整的数据中台体系,旨在为企业提供高效、可靠的数据服务,支持业务的快速发展和创新。

可以举一个电商企业的例子来说明数据中台的应用场景和作用。

  假设一个电商企业的业务线包括商品管理、订单管理、支付管理、用户管理等多个方面。在传统的架构中,这些业务线通常是相互独立的,各自维护自己的数据资源,数据共享和数据交互比较困难,导致数据孤岛和数据冗余等问题。

  但是,通过建立一个数据中台,可以将这些业务线的数据资源整合起来,实现数据共享和数据服务,从而提高数据的利用效率和价值。具体来说,数据中台可以实现以下功能:

数据采集和存储:将商品、订单、支付、用户等各个业务线的数据采集、整合和存储在一个中央数据仓库中,方便数据的管理和维护。

数据治理:制定数据标准和规范,保证数据的准确性、完整性和安全性,避免数据质量问题和数据泄露等风险。

数据共享:通过数据共享和数据服务,将商品、订单、支付、用户等数据资源整合起来,为业务线提供数据支撑和决策支持。

数据业务价值提供:通过数据分析和挖掘,为业务线提供决策支持和业务优化等方面的服务,例如预测销售量、用户行为分析、营销策略优化等。

数据服务与管理:为业务线提供数据服务和API接口,支持业务的快速开发和创新,例如实现订单查询、用户注册、商品展示等功能。

  通过数据中台的建立,电商企业可以最大限度地利用数据资源,提高数据的利用效率和价值,从而帮助企业实现业务的快速发展和创新,提高企业的竞争力和市场地位。

精彩文章

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: