精华内容
下载资源
问答
  • 数据仓库分层

    2019-09-18 13:52:00
    数据仓库分层的原因 1通过数据预处理提高效率,因为预处理,所以会存在冗余数据 2如果不分层而业务系统的业务规则发生变化,就会影响整个数据清洗过程,工作量巨大 3通过分层管理来实现分步完成工作,这样每一层的...

    数据仓库分层的原因
    1通过数据预处理提高效率,因为预处理,所以会存在冗余数据
    2如果不分层而业务系统的业务规则发生变化,就会影响整个数据清洗过程,工作量巨大
    3通过分层管理来实现分步完成工作,这样每一层的处理逻辑就简单了

    标准的数据仓库分层:ods(临时存储层),pdw(数据仓库层),mid(数据集市层),app(应用层),一般用数据集市的数据用来作HQL查询
    ods:历史存储层,它和源系统数据是同构的,而且这一层数据粒度是最细的,这层的表分为两种,一种是存储当前需要加载的数据,一种是用于存储处理完后的数据。
    pdw:数据仓库层,它的数据是干净的数据,是一致的准确的,也就是清洗后的数据,它的数据一般都遵循数据库第三范式数据粒度和ods的粒度相同,它会保存bi系统中所有历史数据
    mid:数据集市层,它是面向主题组织数据的,通常是星状和雪花状数据,从数据粒度将,它是轻度汇总级别的数据,已经不存在明细的数据了,从广度来说,它包含了所有业务数量。从分析角度讲,大概就是近几年
    app:应用层,数据粒度高度汇总,倒不一定涵盖所有业务数据,只是mid层数据的一个子集。

    数据仓库的目的是构建面向分析的集成化数据环境,为企业提供决策支持。数据仓库的context也可以理解为:数据源,数据仓库,数据应用

    数据仓库可以理解为中间集成化数据管理的一个平台
    etl(抽取extra,转化transfer,装载load)是数据仓库的流水线,也可以认为是数据仓库的血液。
    数据仓库的存储并不需要存储所有原始数据,因为比如你存储冗长的文本数据完全没必要,但需要存储细节数据,因为需求是多变的,而且数据仓库是导入数据必须经过整理和转换使它面向主题,因为前台数据库的数据是基于oltp操作组织优化的,这些可能不适合做分析,面向主题的组织形式才有利于分析

    转载于:https://my.oschina.net/u/4085644/blog/3018782

    展开全文
  • 大数据之数据仓库分层什么是数据分层?数据分层的好处一种通用的数据分层设计举例各层会用到的计算引擎和存储系统分层实现数据分层的一些概念说明 7.大数据相关基础概念1. 什么是数据分层?数据分层是一套行之有效的...

    大数据之数据仓库分层

    什么是数据分层?

    数据分层的好处

    一种通用的数据分层设计

    举例

    各层会用到的计算引擎和存储系统

    分层实现

    数据分层的一些概念说明 7.大数据相关基础概念

    1. 什么是数据分层?

    数据分层是一套行之有效的数据组织和管理方法,使得数据体系更有序。

    2. 数据分层的好处

    (1)清晰数据结构

    每一个数据分层都有它的作用域和职责,在使用表的时候能更方便的定位和理解。

    (2)减少重复开发

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

    (3)统一数据口径

    通过数据分层,提供统一的数据出口,统一对外输出的数据口径。

    (4)复杂问题简单化

    将一个复杂的任务分解成多个步骤完成,每一层解决特定的问题。

    一种通用的数据分层设计

    ODS:存放原始数据

    DW:存放数仓中间层数据

    APP:面向业务定制的应用数据

    3. 举例

    以下是一个电商网站的数据体系设计,只关注用户访问日志这部分数据。

    4. 各层会用到的计算引擎和存储系统

    5.分层实现

    在确定建模思路和模型类型之后,下一步的工作是数据分层。数据分层可以使得数据构建体系更加清晰,便于数据使用者快速对数据进行定位;同时数据分层也可以简化数据加工处理流程,降低计算复杂度。

    我们常用的数据仓库的数据分层通常分为集市层、中间层、基础数据层上下三层结构。由传统的多层结构减少到上下三层结构的目的是为了压缩整体数据处理流程的长度,同时扁平化的数据处理流程有助于数据质量控制和数据运维。

    在上下三层的结构的右侧,我们增加了流式数据,将其添加成数据体系的一部分。这是因为当前的数据应用方向会越来越关注数据的时效性,越实时的数据价值度越高。

    但是,由于流式数据集的采集、加工和管理的成本较高,一般都会按照需求驱动的方式建设;此外,考虑到成本因素,流式数据体系的结构更加扁平化,通常不会设计中间层。

    下面来具体看下每一层的具体作用。

    数据基础层

    数据基础层主要完成的工作包括以下几点:

    数据采集:把不同数据源的数据统一采集到一个平台上;

    数据清洗,清洗不符合质量要求的数据,避免脏数据参与后续数据计算;

    数据归类,建立数据目录,在基础层一般按照来源系统和业务域进行分类;

    数据结构化,对于半结构化和非结构化的数据,进行结构化;

    数据规范化,包括规范维度标识、统一计量单位等规范化操作。

    数据中间层

    数据中间层最为重要的目标就是把同一实体不同来源的数据打通起来,这是因为当前业务形态下,同一实体的数据可能分散在不同的系统和来源,且这些数据对同一实体的标识符可能不同。此外,数据中间层还可以从行为中抽象关系。从行为中抽象出来的基础关系,会是未来上层应用一个很重要的数据依赖。例如抽象出的兴趣、偏好、习惯等关系数据是推荐、个性化的基础生产资料。

    在中间层,为了保证主题的完整性或提高数据的易用性,经常会进行适当的数据冗余。比如某一实事数据和两个主题相关但自身又没有成为独立主题,则会放在两个主题库中;为了提高单数据表的复用性和减少计算关联,通常会在事实表中冗余部分维度信息。

    数据集市层

    数据集市层是上下三层架构的最上层,通常是由需求场景驱动建设的,并且各集市间垂直构造。在数据集市层,我们可以深度挖掘数据价值。值得注意的是,数据集市层需要能够快速试错。

    数据架构

    数据架构包括数据整合、数据体系、数据服务三部分。其中,数据整合又可以分为结构化、半结构化、非结构化三类。

    数据整合

    结构化数据采集又可细分为全量采集、增量采集、实时采集三类。三种采集方式的各自特点和适应场合如上图所示,其中全量采集的方式最为简单;实时采集的采集质量最难控制。

    在传统的架构中,日志的结构化处理是放在数仓体系之外的。在大数据平台仓库架构中,日志在采集到平台之前不做结构化处理;在大数据平台上按行符分割每条日志,整条日志存储在一个数据表字段;后续,通过UDF或MR计算框架实现日志结构化。

    在我们看来,日志结构越规范,解析成本越低。在日志结构化的过程中,并不一定需要完全平铺数据内容,只需结构化出重要常用字段;同时,为了保障扩展性,我们可以利用数据冗余保存原始符合字段(如useragent字段)。

    非结构化的数据需要结构化才能使用。非结构化数据特征提取包括语音转文本、图片识别、自然语言处理、图片达标、视频识别等方式。尽管目前数仓架构体系中并不包含非结构化数据特征提取操作,但在未来,这将成为可能。

    数据服务化

    数据服务化包括统计服务、分析服务和标签服务:

    统计服务主要是偏传统的报表服务,利用大数据平台将数据加工后的结果放入关系型数据库中,供前端的报表系统或业务系统查询;

    分析服务用来提供明细的事实数据,利用大数据平台的实时计算能力,允许操作人员自主灵活的进行各种维度的交叉组合查询。分析服务的能力类似于传统cube提供的内容,但是在大数据平台下不需要预先建好cube,更灵活、更节省成本;

    标签服务,大数据的应用场景下,经常会对主体进行特征刻画,比如客户的消费能力、兴趣习惯、物理特征等等,这些数据通过打标签转换成KV的数据服务,用于前端应用查询。

    6.数据分层的一些概念说明

    大数据数据仓库是基于HIVE构建的数据仓库,分布文件系统为HDFS,资源管理为Yarn,计算引擎主要包括MapReduce/Tez/Spark等,分层架构说明如下:

    数据来源层:日志或者关系型数据库,并通过Flume、Sqoop、Kettle等etl工具导入到HDFS,并映射到HIVE的数据仓库表中。

    事实表是数据仓库结构中的中央表,它包含联系事实与维度表的数字度量值和键。事实数据表包含描述业务(例如产品销售)内特定事件的数据。

    维度表是维度属性的集合。是分析问题的一个窗口。是人们观察数据的特定角度,是考虑问题时的一类属性,属性的集合构成一个维。数据库结构中的星型结构,该结构在位于结构中心的单个事实数据表中维护数据,其它维度数据存储在维度表中。每个维度表与事实数据表直接相关,且通常通过一个键联接到事实数据表中。星型架构是数据仓库比较流向的一种架构。

    星型模式的基本思想就是保持立方体的多维功能,同时也增加了小规模数据存储的灵活性。

    说明:

    事实表就是你要关注的内容;

    维度表就是你观察该事务的角度,是从哪个角度去观察这个内容的。

    例如,某地区商品的销量,是从地区这个角度观察商品销量的。事实表就是销量表,维度表就是地区表

    4、主题表:主题(Subject)是在较高层次上将企业信息系统中的数据进行综合、归类和分析利用的一个抽象概念,每一个主题基本对应一个宏观的分析领域。在逻辑意义上,它是对应企业中某一宏观分析领域所涉及的分析对象。例如“销售分析”就是一个分析领域,因此这个数据仓库应用的主题就是“销售分析”。

    面向主题的数据组织方式,就是在较高层次上对分析对象数据的一个完整并且一致的描述,能刻画各个分析对象所涉及的企业各项数据,以及数据之间的联系。所谓较高层次是相对面向应用的数据组织方式而言的,是指按照主题进行数据组织的方式具有更高的数据抽象级别。与传统数据库面向应用进行数据组织的特点相对应,数据仓库中的数据是面向主题进行组织的。例如,一个生产企业的数据仓库所组织的主题可能有产品订货分析和货物发运分析等。而按应用来组织则可能为财务子系统、销售子系统、供应子系统、人力资源子系统和生产调度子系统。

    5、汇总数据层:聚合原子粒度事实表及维度表,为满足固定分析需求,以提高查询性能为目的,形成的高粒度表,如周报、月报、季报、年报等。

    6、应用层:

    为应用层,这层数据是完全为了满足具体的分析需求而构建的数据,也是星形结构的数据。应用层为前端应用的展现提现数据,可以为关系型数据库组成。

    7、【补充】

    数据缓存层:

    用于存放接口方提供的原始数据的数据库层,此层的表结构与源数据保持基本一致,数据存放时间根据数据量大小和项目情况而定,如果数据量较大,可以只存近期数据,将历史数据进行备份。此层的目的在于数据的中转和备份。

    临时数据表层:

    存放临时测试数据表(Temp表),或者中间结果集的表。

    7. 大数据相关基础概念

    数据源:业务系统、埋点、爬虫

    PG:PostgreSQL,一种关系型数据库

    Sqoop:是一个在结构化数据(mysql/oracle)和Hadoop(Hive)之间进行批量数据迁移的工具

    Flume:是一个分布式、可靠、高可用的海量日志采集、聚合和传输的系统。支持在日志系统中定制各类数据发送方,用于收集数据;提供对数据进行简单处理,并写到各种数据接受方(HDFS\Hbase)的能力。

    Kafka:是一个分布式、支持分区的、多副本的,基于zookeeper协调的分布式消息系统。

    Flink:一个流式的数据流执行引擎。针对数据流的分布式计算提供了数据分布、数据通信以及容错机制等功能。

    Kylin:是一个开源的分布式分析引擎,提供Hadoop/Spark之上的SQL查询接口及多维分析(OLAP)能力一直吃超大规模数据。能在亚秒内查询巨大的Hive表。

    ES:elasticsSearch,是一个高扩展、开源的全文检索和分析引擎,可准实时地快速存储、搜索、分析海量的数据。

    Hadoop:是一个分布式系统基础架构,可使用户在不了解分布式底层细节的情况下开发分布式程序,充分利用集群的威力进行高速运算和存储。两大核心:HDFS\MapReduce

    HDFS:是可扩展、容错、高性能的分布式文件系统,异步复制,一次写入多次读取,主要负责存储。

    MapReduce:分布式计算框架。

    Spark:是一个专为大规模数据处理而设计的快速通用的计算引擎。

    【编辑推荐】

    【责任编辑:未丽燕 TEL:(010)68476606】

    点赞 0

    展开全文
  • 大数据之数据仓库分层什么是数据分层?数据分层的好处一种通用的数据分层设计举例各层会用到的计算引擎和存储系统分层实现数据分层的一些概念说明 7.大数据相关基础概念1. 什么是数据分层?数据分层是一套行之有效的...

    大数据之数据仓库分层

    什么是数据分层?

    数据分层的好处

    一种通用的数据分层设计

    举例

    各层会用到的计算引擎和存储系统

    分层实现

    数据分层的一些概念说明 7.大数据相关基础概念

    1. 什么是数据分层?

    数据分层是一套行之有效的数据组织和管理方法,使得数据体系更有序。

    2. 数据分层的好处

    (1)清晰数据结构

    每一个数据分层都有它的作用域和职责,在使用表的时候能更方便的定位和理解。

    (2)减少重复开发

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

    (3)统一数据口径

    通过数据分层,提供统一的数据出口,统一对外输出的数据口径。

    (4)复杂问题简单化

    将一个复杂的任务分解成多个步骤完成,每一层解决特定的问题。

    一种通用的数据分层设计

    ODS:存放原始数据

    DW:存放数仓中间层数据

    APP:面向业务定制的应用数据

    3. 举例

    以下是一个电商网站的数据体系设计,只关注用户访问日志这部分数据。

    4. 各层会用到的计算引擎和存储系统

    5.分层实现

    在确定建模思路和模型类型之后,下一步的工作是数据分层。数据分层可以使得数据构建体系更加清晰,便于数据使用者快速对数据进行定位;同时数据分层也可以简化数据加工处理流程,降低计算复杂度。

    我们常用的数据仓库的数据分层通常分为集市层、中间层、基础数据层上下三层结构。由传统的多层结构减少到上下三层结构的目的是为了压缩整体数据处理流程的长度,同时扁平化的数据处理流程有助于数据质量控制和数据运维。

    在上下三层的结构的右侧,我们增加了流式数据,将其添加成数据体系的一部分。这是因为当前的数据应用方向会越来越关注数据的时效性,越实时的数据价值度越高。

    但是,由于流式数据集的采集、加工和管理的成本较高,一般都会按照需求驱动的方式建设;此外,考虑到成本因素,流式数据体系的结构更加扁平化,通常不会设计中间层。

    下面来具体看下每一层的具体作用。

    数据基础层

    数据基础层主要完成的工作包括以下几点:

    数据采集:把不同数据源的数据统一采集到一个平台上;

    数据清洗,清洗不符合质量要求的数据,避免脏数据参与后续数据计算;

    数据归类,建立数据目录,在基础层一般按照来源系统和业务域进行分类;

    数据结构化,对于半结构化和非结构化的数据,进行结构化;

    数据规范化,包括规范维度标识、统一计量单位等规范化操作。

    数据中间层

    数据中间层最为重要的目标就是把同一实体不同来源的数据打通起来,这是因为当前业务形态下,同一实体的数据可能分散在不同的系统和来源,且这些数据对同一实体的标识符可能不同。此外,数据中间层还可以从行为中抽象关系。从行为中抽象出来的基础关系,会是未来上层应用一个很重要的数据依赖。例如抽象出的兴趣、偏好、习惯等关系数据是推荐、个性化的基础生产资料。

    在中间层,为了保证主题的完整性或提高数据的易用性,经常会进行适当的数据冗余。比如某一实事数据和两个主题相关但自身又没有成为独立主题,则会放在两个主题库中;为了提高单数据表的复用性和减少计算关联,通常会在事实表中冗余部分维度信息。

    数据集市层

    数据集市层是上下三层架构的最上层,通常是由需求场景驱动建设的,并且各集市间垂直构造。在数据集市层,我们可以深度挖掘数据价值。值得注意的是,数据集市层需要能够快速试错。

    数据架构

    数据架构包括数据整合、数据体系、数据服务三部分。其中,数据整合又可以分为结构化、半结构化、非结构化三类。

    数据整合

    结构化数据采集又可细分为全量采集、增量采集、实时采集三类。三种采集方式的各自特点和适应场合如上图所示,其中全量采集的方式最为简单;实时采集的采集质量最难控制。

    在传统的架构中,日志的结构化处理是放在数仓体系之外的。在大数据平台仓库架构中,日志在采集到平台之前不做结构化处理;在大数据平台上按行符分割每条日志,整条日志存储在一个数据表字段;后续,通过UDF或MR计算框架实现日志结构化。

    在我们看来,日志结构越规范,解析成本越低。在日志结构化的过程中,并不一定需要完全平铺数据内容,只需结构化出重要常用字段;同时,为了保障扩展性,我们可以利用数据冗余保存原始符合字段(如useragent字段)。

    非结构化的数据需要结构化才能使用。非结构化数据特征提取包括语音转文本、图片识别、自然语言处理、图片达标、视频识别等方式。尽管目前数仓架构体系中并不包含非结构化数据特征提取操作,但在未来,这将成为可能。

    数据服务化

    数据服务化包括统计服务、分析服务和标签服务:

    统计服务主要是偏传统的报表服务,利用大数据平台将数据加工后的结果放入关系型数据库中,供前端的报表系统或业务系统查询;

    分析服务用来提供明细的事实数据,利用大数据平台的实时计算能力,允许操作人员自主灵活的进行各种维度的交叉组合查询。分析服务的能力类似于传统cube提供的内容,但是在大数据平台下不需要预先建好cube,更灵活、更节省成本;

    标签服务,大数据的应用场景下,经常会对主体进行特征刻画,比如客户的消费能力、兴趣习惯、物理特征等等,这些数据通过打标签转换成KV的数据服务,用于前端应用查询。

    6.数据分层的一些概念说明

    大数据数据仓库是基于HIVE构建的数据仓库,分布文件系统为HDFS,资源管理为Yarn,计算引擎主要包括MapReduce/Tez/Spark等,分层架构说明如下:

    数据来源层:日志或者关系型数据库,并通过Flume、Sqoop、Kettle等etl工具导入到HDFS,并映射到HIVE的数据仓库表中。

    事实表是数据仓库结构中的中央表,它包含联系事实与维度表的数字度量值和键。事实数据表包含描述业务(例如产品销售)内特定事件的数据。

    维度表是维度属性的集合。是分析问题的一个窗口。是人们观察数据的特定角度,是考虑问题时的一类属性,属性的集合构成一个维。数据库结构中的星型结构,该结构在位于结构中心的单个事实数据表中维护数据,其它维度数据存储在维度表中。每个维度表与事实数据表直接相关,且通常通过一个键联接到事实数据表中。星型架构是数据仓库比较流向的一种架构。

    星型模式的基本思想就是保持立方体的多维功能,同时也增加了小规模数据存储的灵活性。

    说明:

    事实表就是你要关注的内容;

    维度表就是你观察该事务的角度,是从哪个角度去观察这个内容的。

    例如,某地区商品的销量,是从地区这个角度观察商品销量的。事实表就是销量表,维度表就是地区表

    4、主题表:主题(Subject)是在较高层次上将企业信息系统中的数据进行综合、归类和分析利用的一个抽象概念,每一个主题基本对应一个宏观的分析领域。在逻辑意义上,它是对应企业中某一宏观分析领域所涉及的分析对象。例如“销售分析”就是一个分析领域,因此这个数据仓库应用的主题就是“销售分析”。

    面向主题的数据组织方式,就是在较高层次上对分析对象数据的一个完整并且一致的描述,能刻画各个分析对象所涉及的企业各项数据,以及数据之间的联系。所谓较高层次是相对面向应用的数据组织方式而言的,是指按照主题进行数据组织的方式具有更高的数据抽象级别。与传统数据库面向应用进行数据组织的特点相对应,数据仓库中的数据是面向主题进行组织的。例如,一个生产企业的数据仓库所组织的主题可能有产品订货分析和货物发运分析等。而按应用来组织则可能为财务子系统、销售子系统、供应子系统、人力资源子系统和生产调度子系统。

    5、汇总数据层:聚合原子粒度事实表及维度表,为满足固定分析需求,以提高查询性能为目的,形成的高粒度表,如周报、月报、季报、年报等。

    6、应用层:

    为应用层,这层数据是完全为了满足具体的分析需求而构建的数据,也是星形结构的数据。应用层为前端应用的展现提现数据,可以为关系型数据库组成。

    7、【补充】

    数据缓存层:

    用于存放接口方提供的原始数据的数据库层,此层的表结构与源数据保持基本一致,数据存放时间根据数据量大小和项目情况而定,如果数据量较大,可以只存近期数据,将历史数据进行备份。此层的目的在于数据的中转和备份。

    临时数据表层:

    存放临时测试数据表(Temp表),或者中间结果集的表。

    7. 大数据相关基础概念

    数据源:业务系统、埋点、爬虫

    PG:PostgreSQL,一种关系型数据库

    Sqoop:是一个在结构化数据(mysql/oracle)和Hadoop(Hive)之间进行批量数据迁移的工具

    Flume:是一个分布式、可靠、高可用的海量日志采集、聚合和传输的系统。支持在日志系统中定制各类数据发送方,用于收集数据;提供对数据进行简单处理,并写到各种数据接受方(HDFS\Hbase)的能力。

    Kafka:是一个分布式、支持分区的、多副本的,基于zookeeper协调的分布式消息系统。

    Flink:一个流式的数据流执行引擎。针对数据流的分布式计算提供了数据分布、数据通信以及容错机制等功能。

    Kylin:是一个开源的分布式分析引擎,提供Hadoop/Spark之上的SQL查询接口及多维分析(OLAP)能力一直吃超大规模数据。能在亚秒内查询巨大的Hive表。

    ES:elasticsSearch,是一个高扩展、开源的全文检索和分析引擎,可准实时地快速存储、搜索、分析海量的数据。

    Hadoop:是一个分布式系统基础架构,可使用户在不了解分布式底层细节的情况下开发分布式程序,充分利用集群的威力进行高速运算和存储。两大核心:HDFS\MapReduce

    HDFS:是可扩展、容错、高性能的分布式文件系统,异步复制,一次写入多次读取,主要负责存储。

    MapReduce:分布式计算框架。

    Spark:是一个专为大规模数据处理而设计的快速通用的计算引擎。

    展开全文
  • 数据仓库分层与架构

    万次阅读 多人点赞 2018-12-08 16:58:18
    什么是数据仓库分层 数据仓库分层的原因 数据仓库具体的分层 补充 说明 数据仓库的定义 数据仓库是一个面向主题的、集成的、随时间变化的、但信息本身相对稳定的数据集合,用于对管理决策过程的支持。数据仓库...

    目录


    数据仓库的定义

    数据仓库是一个面向主题的、集成的、随时间变化的、但信息本身相对稳定的数据集合,用于对管理决策过程的支持。数据仓库本身并不“生产”任何数据,同时自身也不需要“消费”任何的数据,数据来源于外部,并且开放给外部应用使用。

    数据仓库的特点

    ​ 面向主题的:数据仓库都是基于某个明确的主题,仅需要与该主题相关的数据,其他的无关细节将会被去掉。

    ​ 集成的:数据仓库里面的数据都是经过ETL( Extract-Transform-Load 抽取-转换-加载)操作后被集中放到同一个数据源,数据仓库里的数据是来自于各种不同的数据源。

    ​ 随时间变化的:关键数据隐式或者显示地随时间变化而变化。

    ​ 数据相对稳定的:数据装入后一般只是进行查询操作,没有传统数据库的增删改操作。

    总结:数据仓库就是整合多个数据源的历史数据进行细粒度的、多维的分析,可以有效地帮助高层管理者或者业务分析人员做出商业战略决策或商业报表。

    数据仓库的作用

    ​ 可以整合公司的所有业务,建立统一的数据中心。

    ​ 分析用户行为数据,通过数据挖掘来降低投入成本,提高投入效果。

    ​ 可以作为各个业务的数据源,形成业务数据互相反馈的良性循环。

    ​ 可以提供数据报表,用于公司的决策等等。

    数据仓库与传统数据库的区别

      传统数据库 数据仓库 特征 用于操作处理,面向OLTP 用于信息处理,面向OLAP 用户 用户:DBA、开发。用户规模:数百或数亿 用户:经理、主管、分析人员。用户规模:数百 功能 日常操作 长期信息需求、决策支持 DB设计 基于ER模型,面向应用 星形/雪花模型,面向主题 数据 当前的、最新的 历史的、跨时间维护

    注解 数据处理大致可以分成两大类:联机事务处理OLTP(on-line transaction processing)、联机分析处理OLAP(On-Line Analytical Processing)。OLTP是传统的关系型数据库的主要应用,主要是基本的、日常的事务处理,例如银行交易。OLAP是数据仓库系统的主要应用,支持复杂的分析操作,侧重决策支持,并且提供直观易懂的查询结果。 OLTP 系统强调数据库内存效率,强调内存各种指标的命令率,强调绑定变量,强调并发操作。OLAP系统则强调数据分析,强调SQL执行市场,强调磁盘I/O,强调分区等。

    数据仓库的架构

    数据仓库的标准架构

    数据采集层:数据采集层的任务就是把数据从各种数据源中采集和存储到数据库上,期间有可能会做一些ETL(抽取extra,转化transfer,装载load )操作。数据源种类可以有多种:

    ​         日志:所占份额最大,存储在备份服务器上 业务数据库:如Mysql、Oracle 来自HTTP/FTP的数据:合作伙伴提供的接口 其他数据源:如Excel等需要手工录入的数据 数据存储与分析

    ​         HDFS是大数据环境下数据仓库/数据平台最完美的数据存储解决方案。

    ​         离线数据分析与计算,也就是对实时性要求不高的部分,Hive是不错的选择。

    ​         使用Hadoop框架自然而然也提供了MapReduce接口,如果真的很乐意开发Java,或者对SQL不熟,那么也可以使用MapReduce来做分析与计算。

    ​         Spark性能比MapReduce好很多,同时使用SparkSQL操作Hive。

    数据共享

    ​         前面使用Hive、MR、Spark、SparkSQL分析和计算的结果,还是在HDFS上,但大多业务和应用不可能直接从HDFS上获取数据,那么就需要一个数据共享的地方,使得各业务和产品能方便的获取数据。 这里的数据共享,其实指的是前面数据分析与计算后的结果存放的地方,其实就是关系型数据库和NOSQL数据库。

    数据应用

    ​         报表:报表所使用的数据,一般也是已经统计汇总好的,存放于数据共享层。

    ​         接口:接口的数据都是直接查询数据共享层即可得到。

    ​         即席查询:即席查询通常是现有的报表和数据共享层的数据并不能满足需求,需要从数据存储层直接查询。一般都是通过直接操作SQL得到。

    数据仓库的要求

    高效率:数据仓库的分析数据一般分为日、周、月、季、年等,可以看出,以日为周期的数据要求的效率最高,要求24小时甚至12小时内,客户能看到昨天的数据分析。由于有的企业每日的数据量很大,如果数据仓库设计的不好,需要延时一到两天才能显示数据,这显然是不能出现这种事情的。

    数据质量高:数据仓库所提供的各种信息,肯定要准确的数据。数据仓库通常要经过数据清洗,装载,查询,展现等多个流程而得到的,如果复杂的架构会有更多层次,那么由于数据源有脏数据或者代码不严谨,都可以导致数据不准确或者有错误,如果客户看到错误的信息就可能导致分析出错误的决策,造成损失经济的损失。

    扩展性:之所以有的大型数据仓库系统架构设计复杂,是因为考虑到了未来3-5年的扩展性,因为如果在未来需要扩展一些新的功能了,就可以不用重建数据仓库系统,就能很稳定运行。因为重建一个数据创库是比较耗费人力和财力。可扩展性主要体现在数据建模的合理性。

    ​ 为了达到上述的要求,建立起一个高效率、高数据质量、良好的可扩展性,再加上为了提高建仓的速度,根据在实际生产环境中的经验的总结,于是就提出来了数据仓库的分层概念,那么到底什么是数据仓库的分层?为什么要分成?数据仓库的分层的好处是什么呢?接下来将介绍关于数据仓库分层的一些概念。

    什么是数据仓库分层

    ​ 分层是数据仓库解决方案中,数据架构设计的一种数据逻辑结构 ,通过分层理念建立的数据仓库,它的可扩展性非常好,这样设计出来的模型架构,可以任意地增减、替换数据仓库中的各个组成部分。

    数据仓库分层的原因

    ​ 1、用空间换时间,通过数据预处理提高效率,通过大量的预处理可以提升应用系统的用户体验(效率),但是数据仓库会存在大量冗余的数据.

    ​ 2、增强可扩展性,方便以后业务的变更。如果不分层的话,当源业务系统的业务规则发生变化整个数据仓库需要重建,这样将会影响整个数据清洗过程,工作量巨大。

    ​ 3、通过分层管理来实现分步完成工作,简化数据清洗的过程,使每一层处理逻辑变得更简单。因为把原来一步的工作分到了多个步骤去完成,相当于把一个复杂的工作拆成了多个简单的工作,把一个大的黑盒变成了一个白盒,每一层的处理逻辑都相对简单和容易理解,这样我们比较容易保证每一个步骤的正确性,当数据发生错误的时候,往往我们只需要局部调整某个步骤即可。

    数据仓库具体的分层

    ​ 标准的数据仓库分层:ods(临时存储层),pdw(数据仓库层),mid(数据集市层),app(应用层)。

    ods:历史存储层,它和源系统数据是同构的,而且这一层数据粒度是最细的,这层的表分为两种,一种是存储当前需要加载的数据,一种是用于存储处理完后的数据。

    pdw:数据仓库层,它的数据是干净的数据,是一致的准确的,也就是清洗后的数据,它的数据一般都遵循数据库第三范式,数据粒度和ods的粒度相同,它会保存bi系统中所有历史数据

    mid:数据集市层,它是面向主题组织数据的,通常是星状和雪花状数据,从数据粒度来讲,它是轻度汇总级别的数据,已经不存在明细的数据了,从广度来说,它包含了所有业务数量。从分析角度讲,大概就是近几年

    app:应用层,数据粒度高度汇总,但不一定涵盖所有业务数据,只是mid层数据的一个子集。

    补充

    数据缓存层:用于存放接口方提供的原始数据的数据库层,此层的表结构与源数据保持基本一致,数据存放时间根据数据量大小和项目情况而定,如果数据量较大,可以只存近期数据,将历史数据进行备份。此层的目的在于数据的中转和备份。

    核心数据层:此层的数据在数据缓存层的基础上做了一定程度的整合,称之为数据集市,存储上仍是关系模型。此层的目的在于进行必要的数据整合为下一步多维模型做准备。

    分析应用层:此层的数据为根据业务分析需要构造的多维模型数据。数据可以直接用于分析展现。

    说明

    数据层次的划分不是固定不变的,可以根据工作当中实际项目的需要进行适当裁剪或者是添加。如果业务相对简单和独立,可以将核心数据层与分析应用层进行合并。另外,分析应用的数据可以来自多维模型的数据,也可以来自关系模型数据甚至原始数据。

     

     

    展开全文
  • 数据仓库--通用的数据仓库分层方法 0x00 概述 数据分层是数据仓库设计中十分重要的一个环节,优秀的分层设计能够让整个数据体系更易理解和使用。而目前网络中大部分可以被检索到相关文章只是简单地提及数据分层的...
  • 数据仓库分层与详解

    2019-07-19 16:03:05
    数据仓库分层 数据仓库各层详解
  • 数据仓库系列:一种通用数据仓库分层方法 前言 数据仓库系列:图标跟以前保持一致,数据分层是数据仓库设计中十分重要的一个环节,优秀的分层设计能够让整个数据体系更易理解和使用。而目前网络中大部分...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 881
精华内容 352
关键字:

数据仓库分层