热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

数据仓库三层结构中的组成部分是

数据仓库三层结构中的组成部分是数据仓库数据库是整个数据仓库环境的核心,是数据存放的地方和提供对数据检索的支持。相对于操纵型数据库来说其突出的特点是对海量数据的支持和快速的检索技术。

数据仓库三层结构中的组成部分是

数据仓库数据库 是整个数据仓库环境的核心,是数据存放的地方和提供对数据检索的支持。相对于操纵型数据库来说其突出的特点是对海量数据的支持和快速的检索技术。

数据抽取工具 把数据从各种各样的存储方式中拿出来,进行必要的转化、整理,再存放到数据仓库内。

对各种不同数据存储方式的访问能力是数据抽取工具的关键,应能生成COBOL程序、MVS作业控制语言(JCL)、UNIX脚本、和SQL语句等,以访问不同的数据。数据转换都包括,删除对决策应用没有意义的数据段;转换到统一的数据名称和定义;计算统计和衍生数据;给缺值数据赋给缺省值;把不同的数据定义方式统一。元数据 元数据是描述数据仓库内数据的结构和建立方法的数据。可将其按用途的不同分为两类,技术元数据和商业元数据。

技术元数据是数据仓库的设计和管理人员用于开发和日常管理数据仓库是用的数据。包括:数据源信息;数据转换的描述;数据仓库内对象和数据结构的定义;数据清理和数据更新时用的规则;源数据到目的数据的映射;用户访问权限,数据备份历史记录,数据导入历史记录,信息发布历史记录等。 商业元数据从商业业务的角度描述了数据仓库中的数据。

包括:业务主题的描述,包含的数据、查询、报表; 元数据为访问数据仓库提供了一个信息目录(informationdirectory),这个目录全面描述了数据仓库中都有什么数据、这些数据怎么得到的、和怎么访问这些数据。是数据仓库运行和维护的中心,数据仓库服务器利用他来存贮和更新数据,用户通过他来了解和访问数据。 访问工具 为用户访问数据仓库提供手段。

有数据查询和报表工具;应用开发工具;管理信息系统(EIS)工具;在线分析(OLAP)工具;数据挖掘工具。 数据集市(DataMarts) 为了特定的应用目的或应用范围,而从数据仓库中独立出来的一部分数据,也可称为部门数据或主题数据(subjectarea)。在数据仓库的实施过程中往往可以从一个部门的数据集市着手,以后再用几个数据集市组成一个完整的数据仓库。

需要注意的就是再实施不同的数据集市时,同一含义的字段定义一定要相容,这样再以后实施数据仓库时才不会造成大麻烦。数据仓库管理:安全和特权管理;跟踪数据的更新;数据质量检查;管理和更新元数据;审计和报告数据仓库的使用和状态;删除数据;复制、分割和分发数据;备份和恢复;存储管理。 信息发布系统:把数据仓库中的数据或其他相关的数据发送给不同的地点或用户。基于Web的信息发布系统是对付多用户访问的最有效方法。

数据仓库分层架构深度讲解

         分层的主要原因是在管理数据的时候,能对数据有一个更加清晰的掌控,详细来讲,主要有下面几个原因: 清晰数据结构:          每一个数据分层都有它的作用域,这样我们在使用表的时候能更方便地定位和理解。 方便数据血缘追踪:           简单来说,我们最终给业务呈现的是一个能直接使用业务表,但是它的来源有很多,如果有一张来源表出问题了,我们希望能够快速准确地定位到问题,并清楚它的危害范围。

减少重复开发:           规范数据分层,开发一些通用的中间层数据,能够减少极大的重复计算。

把复杂问题简单化:          将一个复杂的任务分解成多个步骤来完成,每一层只处理单一的步骤 ,比较简单和容易理解。而且便于维护数据的准确性,当数据出现问题之后,可以不用修复所有的数据,只需要从有问题的步骤开始修复。 屏蔽原始数据的异常:          屏蔽业务的影响,不必改一次业务就需要重新接入数据          数据分层每个企业根据自己的业务需求可以分成不同的层次,但是最基础的分层思想,理论上 数据分为三个层 , 数据运营层 、 数据仓库层 和 数据服务层 。基于这个基础分层之上添加新的层次,来满足不同的业务需求。

数据运营层(ODS)          Operate data store(操作数据-存储),是最接近数据源中数据的一层,数据源中的数据,经过抽取、洗净、传输,也就说传说中的ETL之后,装入ODS层 。本层的数据,总体上大多是按照源头业务系统的分类方式而分类的。例如:MySQL里面的一张表可以通过sqoop之间抽取到ODS层ODS层数据的来源方式: 数据仓库层(DW)          Data warehouse(数据仓库) 。

在这里, 从ODS层中获得的数据按照主题建立各种数据模型 。例如 以研究人的旅游消费为主题的数据集中 ,便可以结合航空公司的登机出行信息,以及银联系统的刷卡记录,进行结合分析,产生数据集。在这里,我们需要了解四个概念:维(dimension)、事实(Fact)、指标(Index)和粒度( Granularity)。

数据服务层/应用层(ADS):          Application Data Service(应用数据服务)。该层主要是提供数据产品和数据分析使用 的数据,一般会存放在ES、MySQL等系统中供线上系统使用,也可能会存在Hive或者Druid中供数据分析和数据挖掘使用。例如:我们经常说的报表数据,或者说那种大宽表,一般就放在这里。

ODS 数据准备层 功能:                   ODS层是数据仓库准备区,为DWD层提供基础原始数据,可减少对业务系统的影响 建模方式及原则:              从业务系统增量抽取 、保留时间由业务需求决定、 可分表进行周期存储、数据不做清洗转换与业务系统数据模型保持一致 、按主题逻辑划分 DWD 数据明细层 功能:               为DW层提供来源明细数据,提供业务系统细节数据的长期沉淀 ,为未来分析类需求的扩展提供历史数据支撑 建模方式及原则:                数据模型 与ODS层一致,不做清洗转换处理 、为支持数据重跑 可额外增加数据 业务日期字段、可按年月日进行分表、用增量ODS层数据和前一天DWD相关表进行merge处理 DW(B/S) 数据汇总层 功能:                 为DW、ST层提供细粒度数据,细化成DWB和DWS;                DWB是根据DWD明细数据进行转换 ,如维度转代理键、身份证清洗、会员注册来源清晰、字段合并、空值处理、脏数据处理、IP清晰转换、账号余额清洗、资金来源清洗等;                DWS是根据DWB层数据按各个维度ID进行高粒度汇总聚合 ,如按交易来源,交易类型进行汇合 建模方式及原则:          聚合、汇总增加派生事实;          关联其它主题的事实表,DW层可能会跨主题域;          DWB保持低粒度汇总加工数据,DWS保持高粒度汇总数据;          数据模型可能采用反范式设计,合并信息等。 Data Market (数据集市)层 功能:                 可以是一些宽表,是根据DW层数据按照各种维度或多种维度组合把需要查询的一些事实字段进行汇总统计并作为单独的列进行存储 ;                  满足一些特定查询、数据挖掘应用                  应用集市数据存储 建模方式及原则:                尽量减少数据访问时计算 (优化检索)               维度建模,星型模型;                分表存储 ST 数据应用层(ADS层) 功能:                 ST层面向用户应用和分析需求 ,包括前端报表、分析图表、KPI、仪表盘、OLAP、专题等分析, 面向最终结果用户                适合做OLAP、报表模型,如ROLAP,MOLAP          根据DW层经过聚合汇总统计后的粗粒度事实表 建模方式及原则:                   本篇文章主要讲解数仓项目中为什么分层,比如 我们在完成一个需要的需求的时候也许只需要一个复杂的SQL语句就可以完成。但一个复杂的SQL语句方便后面维护吗?当出现了问题方便追踪吗? 这时候就体现出分层的好处。顺便给大家分享阿里的数仓模型是什么样的。

信自己,努力和汗水总会能得到回报的。

为什么要给数据库分层?

(1)为什么要分层 作为一名数据的规划者,我们肯定希望自己的数据能够有秩序地流转,数据的整个生命周期能够清晰明确被设计者和使用者感知到。直观来讲就是如图这般层次清晰、依赖关系直观。

但是,大多数情况下,我们完成的数据体系却是依赖复杂、层级混乱的。

如下图,在不知不觉的情况下,我们可能会做出一套表依赖结构混乱,甚至出现循环依赖的数据体系。 因此,我们需要一套行之有效的数据组织和管理方法来让我们的数据体系更有序,这就是谈到的数据分层。数据分层并不能解决所有的数据问题,但是,数据分层却可以给我们带来如下的好处: 1)清晰数据结构: 每一个数据分层都有它的作用域和职责,在使用表的时候能更方便地定位和理解; 2)减少重复开发: 规范数据分层,开发一些通用的中间层数据,能够减少极大的重复计算; 3)统一数据口径: 通过数据分层,提供统一的数据出口,统一对外输出的数据口径; 4 )复杂问题简单化: 将一个复杂的任务分解成多个步骤来完成,每一层解决特定的问题。 为了满足前面提到好处,通常将数据模型分为三层:数据运营层( ODS )、数据仓库层(DW)和数据应用层(APP)。

简单来讲,我们可以理解为:ODS层存放的是接入的原始数据,DW层是存放我们要重点设计的数据仓库中间层数据,APP是面向业务定制的应用数据。下面详细介绍这三层的设计。 (2)数据模型的分层 1)源数据层(ODS) 此层数据无任何更改,直接沿用外围系统数据结构和数据,不对外开放;为临时存储层,是接口数据的临时存储区域,为后一步的数据处理做准备。

2)数据仓库层(DW) 也称为细节层,DW 层的数据应该是一致的、准确的、干净的数据,即对源系统数据进行了清洗(去除了杂质)后的数据。 此层可以细分为三层: 明细层DWD(Data Warehouse Detail) :存储明细数据,此数据是最细粒度的事实数据。该层一般保持和ODS层一样的数据粒度,并且提供一定的数据质量保证。

同时,为了提高数据明细层的易用性,该层会采用一些维度退化手法,将维度退化至事实表中,减少事实表和维表的关联。 中间层DWM(Data WareHouse Middle) :存储中间数据,为数据统计需要创建的中间表数据,此数据一般是对多个维度的聚合数据,此层数据通常来源于DWD层的数据。 业务层DWS(Data WareHouse Service) :存储宽表数据,此层数据是针对某个业务领域的聚合数据,业务层的数据通常来源与此层,为什么叫宽表,主要是为了业务层的需要在这一层将业务相关的所有数据统一汇集起来进行存储,方便业务层获取。

此层数据通常来源与DWD和DWM层的数据。 在实际计算中,如果直接从DWD或者ODS计算出宽表的统计指标,会存在计算量太大并且维度太少的问题,因此一般的做法是,在DWM层先计算出多个小的中间表,然后再拼接成一张DWS的宽表。由于宽和窄的界限不易界定,也可以去掉DWM这一层,只留DWS层,将所有的数据在放在DWS亦可。 3)数据应用层(DA 或 APP) 前端应用直接读取的数据源;根据报表、专题分析的需求而计算生成的数据。

4)维表层(Dimension) 最后补充一个维表层,维表层主要包含两部分数据: A)高基数维度数据:一般是用户资料表、商品资料表类似的资料表。数据量可能是千万级或者上亿级别。 B)低基数维度数据:一般是配置表,比如枚举值对应的中文含义,或者日期维表。数据量可能是个位数或者几千几万。

(3)问题扩展 数据仓库系统架构 上图系统各部分的执行流程是: 1)确定分析所依赖的源数据。 2)通过ETL将源数据采集到数据仓库。 3)数据按照数据仓库提供的主题结构进行存储。 4)根据各部门的业务分析要求创建数据集市(数据仓库的子集)。

5)决策分析、报表等应用系统从数据仓库查询数据、分析数据。 6)用户通过应用系统查询分析结果、报表。 (4)结合项目中使用 电商网站的数据体系设计,这里针对用户访问日志这一部分数据进行举例说明: 在ODS层中,由于各端的开发团队不同或者各种其它问题,用户的访问日志被分成了好几张表上报到了我们的ODS层。

为了方便大家的使用,我们在DWD层做了一张用户访问行为天表,在这里,我们将PC网页、H5、小程序和原生APP访问日志汇聚到一张表里面,统一字段名,提升数据质量,这样就有了一张可供大家方便使用的明细表了。 在DWM层,我们会从DWD层中选取业务关注的核心维度来做聚合操作,比如只保留人、商品、设备和页面区域维度。类似的,我们这样做很多个DWM的中间表。

然后在DWS层,我们将一个人在整个网站中的行为数据放到一张表中,这就是我们的宽表了,有了这张表,就可以快速满足大部分的通用型业务需求了。 最后,在APP应用层,根据需求从DWS层的一张或者多张表取出数据拼接成一张应用表即可。

数据仓库的体系结构

是数据仓库系统的基础,是整个系统的数据源泉。通常包括企业内部信息和外部信息。

内部信息包括存放于RDBMS中的各种业务处理数据和各类文档数据。

外部信息包括各类法律法规、市场信息和竞争对手的信息等等;数据的存储与管理是整个数据仓库系统的核心。数据仓库的真正关键是数据的存储和管理。数据仓库的组织管理方式决定了它有别于传统数据库,同时也决定了其对外部数据的表现形式。要决定采用什么产品和技术来建立数据仓库的核心,则需要从数据仓库的技术特点着手分析。

针对现有各业务系统的数据,进行抽取、清理,并有效集成,按照主题进行组织。数据仓库按照数据的覆盖范围可以分为企业级数据仓库和部门级数据仓库(通常称为数据集市)。OLAP服务器对分析需要的数据进行有效集成,按多维模型予以组织,以便进行多角度、多层次的分析,并发现趋势。

其具体实现可以分为:ROLAP(关系型在线分析处理)、MOLAP(多维在线分析处理)和HOLAP(混合型线上分析处理)。ROLAP基本数据和聚合数据均存放在RDBMS之中;MOLAP基本数据和聚合数据均存放于多维数据库中;HOLAP基本数据存放于RDBMS之中,聚合数据存放于多维数据库中。 元数据是描述数据仓库内数据的结构和建立方法的数据。

可将其按用途的不同分为两类,技术元数据和商业元数据。技术元数据是数据仓库的设计和管理人员用于开发和日常管理数据仓库使用的数据。包括:数据源信息;数据转换的描述;数据仓库内对象和数据结构的定义;数据清理和数据更新时用的规则;源数据到目的数据的映射;用户访问权限,数据备份历史记录,数据导入历史记录,信息发布历史记录等。

商业元数据从商业业务的角度描述了数据仓库中的数据。包括:业务主题的描述,包含的数据、查询、报表;元数据为访问数据仓库提供了一个信息目录(informationdirectory),这个目录全面描述了数据仓库中都有什么数据、这些数据怎么得到的、和怎么访问这些数据。是数据仓库运行和维护的中心,数据仓库服务器利用他来存贮和更新数据,用户通过他来了解和访问数据。 为了特定的应用目的或应用范围,而从数据仓库中独立出来的一部分数据,也可称为部门数据或主题数据(subjectarea)。

在数据仓库的实施过程中往往可以从一个部门的数据集市着手,以后再用几个数据集市组成一个完整的数据仓库。需要注意的就是在实施不同的数据集市时,同一含义的字段定义一定要相容,这样在以后实施数据仓库时才不会造成大麻烦。国外知名的Garnter关于数据集市产品报告中,位于第一象限的敏捷商业智能产品有QlikView, Tableau和SpotView,都是全内存计算的数据集市产品,在大数据方面对传统商业智能产品巨头形成了挑战。国内BI产品起步较晚,知名的敏捷型商业智能产品有PowerBI, 永洪科技的Z-Suite,SmartBI,FineBI商业智能软件等,其中永洪科技的Z-Data Mart是一款热内存计算的数据集市产品。

国内的德昂信息也是一家数据集市产品的系统集成商。 为用户访问数据仓库提供手段。有数据查询和报表工具;应用开发工具;管理信息系统(EIS)工具;在线分析(OLAP)工具;数据挖掘工具。


推荐阅读
author-avatar
ccM保佑加琳诺爱儿1984f
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有