数据仓库可以作为数据架构规划中的重要内容之一。一般来说,在系统中的定位如图9-13所示。
图9-13 数据仓库的架构和定位
数据仓库包括基础数据层、汇总数据层和库内集市层,如图9-14所示。
图9-14 数据仓库包括基础数据层、汇总数据层和库内集市层
数据仓库有以下几个特征:
1)数据仓库整合系统的全局信息,包括基础数据层、汇总数据层和库内集市层。
2)数据仓库中的数据通常包含历史信息,记录了从过去某一时间点到目前各个阶段的信息,通过这些信息,可以对企业的发展历程和未来趋势做出分析和预测。
3)数据仓库的数据来源可以是结构化的基础数据、非结构化数据结构化的信息,也可以是产品数据或者主数据。
4)数据仓库中的库内集市层是根据应用需求形成的数据集合,它支撑了各种专业化的应用。
下面分别对基础数据层、汇总数据层和库内集市层进行描述:
(1)基础数据层
对于数据仓库中的基础数据层来说,它存储了数据仓库最细节层次的数据。它的数据源来自于数据准备区中的数据,是最贴近数据源的一层。
基础数据层的特性:
1)基础数据层一般是按照数据仓库的第三范式进行数据组织的。
2)基础数据层作为汇总数据层的数据源。
3)基础数据层一般不做删除操作。
数据仓库基础数据层同数据准备区中的基础层相似,但是两者在组织形式、用途、内容、访问频率等方面存在差异,见表9-1。
表9-1 数据仓库基础数据层与数据准备区中的基础层的差异
(2)汇总数据层
对于数据仓库汇总数据层来说,它是对基础数据层的数据进行轻度汇总,同时为分析型的应用提供数据服务。
汇总数据层的特性:
1)随着应用需求的增加,汇总数据层的建设需要不断扩展。
2)汇总数据层是对明细数据的必要整合,目的是对一些共性需求进行加工整合,提高数据的利用率。
3)汇总数据层的来源应该是数据仓库中的基础层,汇总的问题可以直接反映一些业务需求。
通过创建中间汇总表,预关联和汇总常用的数据,使其多个数据集市可以共享该数据,以提高数据仓库的性能,同时也降低了ETL工作的复杂性。
(3)库内集市层
数据仓库规划库内集市,首先数据在基础层整合后,做一些汇总设计。可以把基础数据层的数据和汇总数据抽取出来做成接口数据,提供到库外建设。对于一些应用较为复杂的、独立的情况,把数据下放到库外应用。而相对应用简单的,直接在仓库内实施。
数据仓库建设一期先把所有源数据纳入数据仓库的基础数据层,然后加工到汇总数据层,随着业务需求的增加,慢慢扩展数据仓库的内容。
例如,个人基本信息、地址等信息直接在基础数据层抽取;余额类的、每天都可能发生变化的数据先在汇总数据层加工,再抽取到集市。
汇总数据层是公共加工层。汇总加工一次,可以支持多个应用。例如,按客户、产品进行日均、月均加工汇总。可以把基础数据层的明细数据汇总到汇总数据层,将汇总数据层作为公共数据提供给应用。
对于数据仓库中的库内集市来说,有以下几个特点,如图9-15所示。
图9-15 数据仓库中的库内集市的特点
1)业务部门可以维护自己的数据集市,通过自定义展示需要的数据内容。
2)数据仓库中库内集市之间的数据交换通过数据交换层来完成。
3)数据仓库的库内集市有多个数据来源,包括数据仓库内的汇总数据层和基础数据层。
4)数据仓库中库内集市的数据往往是统计性的数据,对明细数据保存较少,可以直接应用。
5)数据仓库中库内集市可以有冗余数据。
6)数据仓库中库内集市往往是降范式的模型或者星形模型和雪花形模型。
下面分析数据仓库建设的一个重要方法,如图9-16所示:
1)在数据仓库的基础数据层,建立稳定的数据模型,同时建立数据标准,实现数据的标准化和数据集中。
2)在数据仓库的汇总数据层,建立分析类的数据标准。对常用的、重要的业务指标进行统一加工计算。实现业务的汇总,创建高效的数据共享平台。
3)数据仓库的库内集市层包括基础数据层的视图、汇总数据层的视图和各种加工视图,如图9-16所示。
图9-16 数据仓库建设的另外一个重要方法
数据管控的手段包括数据管理系统、调度与监控系统和数据管理考核系统等。其中,数据管理考核系统帮助系统有效提升数据质量,一般采用系统检查和人工核对的方式进行数据管控考核工作,这种方式可以有效地推动数据管控制度的执行,提升数据质量,促进业务人员使用数据管理系统加强数据质量的管理。
建设数据仓库的方法之一就是首先制定数据标准,形成数据仓库逻辑模型的核心骨架,然后以元数据管理为基础,保证数据仓库成为可信和可控的数据源,最后提高管理水平。
总的来说,关于数据仓库的定位有如下几个方面:
1)数据仓库中的来源数据为结构化的,或者是已经结构化的基础数据。
2)数据仓库中的数据都是有用的数据,是经过清洗后的数据。
3)数据仓库加工后的数据可以同步到数据应用层,由应用层对外提供服务。
4)数据仓库中的基础数据层、汇总数据层和库内集市层都有各自的定位和用途。
数据仓库从生产系统采集数据,经过ETL过程将数据加载到数据仓库中,然后进行汇总和加工,最后在数据仓库的基础上提供各种应用和分析。
2.数据仓库关键设计点
基于业务及整体架构规划,我们讲解数据仓库的关键设计点。
(1)数据仓库的构建方法
数据仓库的构建方法主要包括自上而下的实现方式和自下而上的实现方式,如图9-17所示。
图9-17 数据仓库的构建方法
●自上而下的实现方式
这种方式是企业级的数据建模和数据整合,一般按照第三范式模型建立数据仓库,然后根据业务部门的需求,基于已有的数据仓库建立相应的数据集市。数据集市的数据来源是数据仓库。建设的条件是业务需求较少,而数据准备区中的基础数据又比较完整,这样可以采用自上而下的构建方法。将基础数据在数据仓库中进行全面存储,而后续的应用可以随着需求的完善而不断扩展。优点是可以进行宏观的全局规划,有较好的数据一致性和较低冗余。缺点是建设周期长,前期很难见到实际效益。
●自下而上的实现方式
按照业务需求通过渐进的方式建设数据仓库。首先根据业务需求建立数据集市,然后把一系列维度相同的数据集市纳入到数据仓库中,这种分阶段的建设方式就是自下而上的实现方式。其中每一阶段的数据集市必须兼容到数据仓库中,可以先建设部门级、面向主题的数据集市,然后扩建为数据仓库。它的优点是从业务需求出发,项目周期短。缺点是数据仓库的一致性难以保证,数据的冗余度较高。
如果分析类的业务需求比较多,同时为了快速满足应用的开发,可以采用自下而上的构建方法,先将有业务需求的数据存储到数据仓库中,继而开发应用,然后慢慢地补充数据仓库中的数据。
总之,数据仓库的构建方法是以业务需求为导向的,并且不断完善的闭环流程。
(2)数据仓库ODS建设方法
ODS的概念也是由比尔·恩门在《建立运营数据仓储》一书中提出来的。他认为分析决策需要基于实时的和细节性的运营数据,同时也需要这些数据是集成的和面向主题的,因此提出了ODS的概念。
ODS的数据来自于各个分散的业务系统,这些数据是面向主题的、集成的、变化的和反映当前情况的数据。一般来说,ODS和数据仓库作为独立的系统分别进行建设。但是随着硬件水平的提高,有时候ODS也被纳入到数据仓库中进行建设。(www.daowen.com)
(3)数据集市设计
数据集市基于业务需求的复杂度,考虑设置库内集市还是库外集市。例如,当业务需求比较单一,复杂度较高的时候,为了性能上的考虑,可以建立库外集市。如果复杂度较低,那么可以在数据仓库内建立集市。
(4)非结构化数据在数据仓库的应用
对于非结构化数据,可以通过Hadoop平台建立非结构化数据的标签、摘要、索引、日志等信息,然后提取非结构化数据的元数据信息,如类别、索引、摘要等,实现与结构化数据的整合和关联分析。在统计分析应用中,可能涉及结构化数据和非结构化数据的联合应用,也可能是对非结构化数据的单独应用,如图9-18所示。
图9-18 非结构化数据在数据仓库的应用
(5)数据标准在数据仓库中的落地
在建设数据仓库之前,如果可以先完成数据标准的建设,则有利于数据仓库在数据一致性方面的控制。
(6)关于数据仓库的灾难备份设计
由于地震、水灾等因素可能会对数据安全造成危害,因此国家出台了一系列法规、政策,要求各重要机构进行灾难备份体系的建设。后面会详细介绍数据仓库系统的灾难备份建设。
3.数据仓库质量的控制是数据治理的重要内容
对数据仓库的质量控制是数据治理的重要内容之一。数据仓库系统服务于经营决策,数据应该是全面的、真实的和有意义的。如果数据质量得不到保证,就会使决策分析者做出错误的判断,可能会引起不可挽回的商业损失。因此,提高数据质量是数据仓库系统建设的重要环节。
总体来说,数据仓库对数据质量的要求可以归纳为以下几点:数据的正确性、数据的完整性、数据的一致性、数据的有效性、数据的时效性、数据的可获取性和数据的冗余性,如图9-19所示。
图9-19 数据仓库对数据质量的要求
●数据的正确性
数据在数据仓库中是否会正确体现。
●数据的完整性
数据仓库中的数据是否是完整的。
●数据的一致性
数据仓库中的数据是否是一致的。
●数据的有效性
数据是否在企业定义的可接受范围之内。
●数据的时效性
数据在给定的时间内是否有效。
●数据的可获取性
数据是否易于获取、理解和使用。
●数据的冗余性
数据仓库中是否存在不必要的数据冗余。
技术类数据质量指标见表9-2。
表9-2 技术类数据质量指标
业务类数据质量指标见表9-3。
表9-3 业务类数据质量指标
数据仓库的数据质量面临的挑战见表9-4。
表9-4 数据仓库的数据质量面临的挑战
数据质量存在问题的根本原因:
我们可以把数据质量存在问题的原因归为以下几类,如图9-20所示。
图9-20 数据质量存在问题的原因
1)数据格式问题。例如,数据的缺失、超出了数据范围、无效数据格式等。
2)数据一致性问题。出于性能考虑,可能会去掉一些外键或者检查约束,这样可能会出现数据一致性的问题。
3)业务逻辑问题。通常是由于数据库设计出现问题所致。
原因分析和解决思路:
1)在构造数据仓库的时候,如果数据质量得不到保证,那么在后续的构建过程中,数据质量所引发的问题会逐渐被放大。
2)数据质量问题会贯穿于项目的整个生命周期,必须面对并且给出解决办法,尽量把影响降低到最小。通常情况下,当遇到错误数据时,通过记录,同时打上错误的标记,先保证这些数据顺利通过,然后根据这些错误标志,通过报表反映出来。这样可以确保数据的完整性,并且真实反映数据源的质量,保证数据仓库的顺利实施和任务的正常调度。
3)技术检测数据仓库质量的方法有多种。例如,第一种方法,对于记录级的,可以先分离出主表,再验证目标表和源表中主表的记录数是否一致。第二种方法,对于字段级别的,如有两个团队,一个是开发组,另一个是数据质量组,当开发团队抽取出数据后,再由数据质量组通过业务规则编写验证脚本,验证两边的结果是否保持一致。第三种方法,寻找不同目标表中相同口径的值,验证数据是否一致。
4)在大多数情况下,解决数据仓库质量问题最根本的方法就是从源头解决质量的问题,但是这种方式需要投入大量人力成本和时间成本。
5)可以通过手工方式对数据仓库质量问题进行处理。
数据质量的检查应该尽量在靠前的位置进行,这样确保错误的数据在前面就被消除掉,因为每一点的错误都会导致在后续的处理过程中被无限放大。数据的完整性和正确性问题都可能因为ETL的错误导致,可以通过源和目标的汇总对比,找出差异,从而确定数据的完整性和正确性是否有问题。
数据仓库质量问题解决办法可参考案例如图9-21所示。
图9-21 数据仓库质量问题解决办法参考案例
(1)采用抽样、统计分析等技术手段提高数据的质量
对于数据仓库来说,它主要存储的是大量的历史数据,无形当中加大了数据质量检查的难度,如何保证进入数据仓库中的数据是高质量呢?可以采用抽样和统计分析等技术手段提高数据的质量,并且提高数据仓库的高效性。
它的具体做法是通过抽数定理抽取少部分的样本数据,然后进行系统级别的数据校验。如果出现系统级别的错误,则马上返回。如果没有出现系统级别的错误,则对数据抽样取得的数据进行质量打分。如果数据质量的分数较高,那么它的入库校验相对简单,即校验规则相对简单,入库的效率就很高。如果数据质量的分数较低,那么它的入库校验相对复杂,也就是校验规则相对复杂。因此,可以将入库的校验可配置化。
(2)采用两端对比等手段确保数据质量
对于数据仓库的数据质量来说,它可以进行入库时的格式校验和逻辑校验,当入库后,再通过两端对比等手段确保数据质量。所谓两端对比是指在源系统中抽取出一部分数据,再和数据仓库中的一部分数据进行核对。
综上所述,第一种方式是采用抽样、统计分析的方法发现数据的系统错误,以及提高数据校验的效率,将数据质量校验都集中在入库前完成,入库后的数据质量问题主要通过异议处理等手段来实现。
这种采用抽样、统计分析的校验数据方法,对于质量好的数据采取相对宽松的校验规则,对于质量差的数据采取相对严格的校验规则,这样会大大提高数据的加载效率。然后对于通过检验的数据,再逐条进行检查,同时对于校验规则的有效性,不断进行调整,尽量保证入库数据的质量。因此,第一种方法是较为先进的方法。
4.在大数据环境下的数据仓库的建设
大数据是指无法在一定时间内,用传统型的数据库软件对其内容进行抓取、管理和处理的数据集合。大数据用于在成本可承受的条件下,通过非常快速采集、发现和分析,从大量的、多类别的数据中提取价值。大数据是一系列技术的集合,汇集了如Hadoop/Mapreduce、一体机、NoSQL、数据分析与挖掘、商业智能、数据仓库等。
通过对大数据的处理和分析,可以发掘出巨大的价值,包括商业价值和社会价值。
关于大数据环境下的数据仓库架构,如图9-22所示。
图9-22 大数据环境下的数据仓库架构
流数据强调的是实时处理与分析,而不是数据存储,因此一般只在内存中进行处理,随着数据的流动、处理和分析,只针对一定时间内的流数据进行处理和分析。
对于数据仓库来说,存储的都是“金子”,全部都是有用的信息。而Hadoop平台存储的都是“金矿石”,Hadoop平台的目的是为了把“金矿石”里的“金子”筛选出来。
所有的非结构化数据都是通过Hadoop平台进行分析,例如通过网络收集信息,分析人们对银行的情感分析,包括正面、负面的信息。同时包括针对银行的预警分析等。
非结构化的数据可以经过结构化处理,再与数据仓库中的数据结合起来分析,或者单独对非结构化数据进行分析。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。