简单说说数据仓库

数据仓库介绍

    数据仓库是集成的、面向主题的、反应历史的数据的集合。它需要具有高效查询、高质量的、可扩展的的特性。数据仓库是协助运营及管理人员及时做出策略调整的最有效的依据。

数据仓库简单架构

    通常情况下,数据仓库可大体分为三个层次:数据来源、数据处理、数据应用。

数据仓库简单架构图.png

    如上图,ODS 层通常存放的是最原始的数据,包括从业务库同步过来的业务数据、客户端通过 SDK 打点过来的数据、服务生成的原始日志文件等数据。

  • 业务库同步数据:这里的数据是会发生 update 操作的,因此通常情况下会使用全同步的方案。然而,当数据量过大时采用全量同步很明显不太合适,这时可以采用拉量表的方式进行处理。业务库表同步工具:sqoop、datax 等。
  • 客户端通过 SDK 打点数据:通常情况下,打点数据会发送到 Kafka 集群中,然后通过 flink、spark、mapreduce 等从 kafka 中消费数据并写入 hdfs、hbase 等存储中。
  • 原始日志文件:通常情况下,使用 flume 等工具进行数据处理,然后写入我们的仓库中。

    中间层包括:DWD(明细数据)、DWM(维度)、报表预处理、对外提供数据的 API 接口。
    应用层:事实上,应用层建立数据仓库最终的目的,如果不同很好的进行数据应用,一切数仓都是花拳绣腿。

数据仓库建模方法

    目前为止,数据仓库采用的建模方法主流的有维度建模、范式建模。

维度建模

    维度模型是数据仓库领域大师Ralph Kimball 所倡导的。维度建模以分析决策的需求出发构建模型,构建的数据模型为分析需求服务,它解决了用户如何更快速完成分析需求,同时还有较好的大规模复杂查询的响应性能,更直接面向业务。典型的代表有:星形模型、雪花模型。

1. 星形模型

    所谓星形模型是指以事实表为中心,关联各个维度表,以获取我们所需要的数据结果。如下图,在事实表中有各个明细的数据,通过其周围不同的维度来构建上层的数据结果。在该情况下,维表中会有部分的冗余数据。

星形模型.png

2. 雪花模型

    雪花模型是在星形模型的基础上,将维度表进一步细化,得到维表的维度表。如下图,在该模式下,维度表的深度更深一些,在进行数据分析时,我们进行关联维表更多一些。因此,与星形模型相比,其分析查询的速度稍微更弱一些,但是由于维表的细化,得到的各个维度表的冗余较少一些。

雪花模型.png

     无论是星形模型还是雪花模型,最根本的是要在理解业务的基础上,建立服务业务的数据仓库。通常情况下,星形模型具有更快的分析效率,也是建模时比较倾向的。

元数据管理

     元数据(metadate):数据字典,也即数据的数据。主要记录数据仓库中各层级间的映射关系、监控数据仓库的数据状态。一般会通过元数据资料库来统一地存储和管理元数据,其主要目的是使数据仓库的设计、操作和管理能达成协同和一致。

小结

     数据仓库是大数据时代所不可或缺的,易用、稳定的数据仓库对企业来讲是事半功倍的。

你可能感兴趣的:(简单说说数据仓库)