当前位置:   article > 正文

大数据平台架构与原型实现-读书笔记8_src层

src层

第八章 批处理与数据仓库

一、大数据与数据仓库

       从大数据应用的角度看,数据仓库是大多数企业“试水”大数据的首选切入点,原因为:

  • 数据仓库的主要编程语言以SQL为主,在大数据平台上,不管是Hive还是Spark SQL,都是通过高度标准化的SQL进行开发的,这杜宇很多从传统数据仓库向大数据转型的开发人员和团队来说,是一种较为平滑的过渡
  • 数据仓库的理论和方法论已经非常成熟,在大数据平台上实现数据仓库系统遵循的依然是这些理论,知识在具体实现细节上有所不同。

二、数据仓库的基本理论

       数据仓库和数据库之间区别:

  • 数据仓库一定是独立于业务系统数据库的另外一个数据库,业务系统的数据库主要为了支撑业务的运作,是应用程序用来读写业务数据的,而数据仓库用来进行数据分析;应用系统的业务系统被称为OLTP,数据仓库的数据库被称为OLAP。
  • 数据仓库使用与业务数据库完全不同的建模方式来组织数据,称为“维度建模”,维度建模是完全面向数据分析的
  • 数据仓库存储多个数据源的数据,并会保留历史数据;
  • 数据仓库中的数据会经历分层处理,下一层数据为上一层数据提供支撑,每一层数据都是数据仓库处理流程中某个阶段性结果

2.1 维度和度量

       维度是审视数据的角度,通常是记录的一个属性。度量是基于数据计算出来的度量值,通常为一个数值。分析人员要结合若干个维度来审查度量值,以便从中找到变化规律。

2.2 事实表和维度表

       事实表指存储事实记录的表;维度表保存了维度的属性值,可跟事实表做关联,相当于将事实表上经常出现的属性抽取出来形成的一张专用表。使用维度表好处:

  • 缩小了事实表的大小
  • 便于维度的管理和维护,在增加、删除和修改维度的属性,不必对事实表的大量记录进行改动;
  • 维度表可被多个事实表复用,可减少重复工作。

2.3 维度的基数

       维度的基数指该维度在数据集中出现了不同值的个数

2.3 Cube和Cuboid

       对于每一种维度的组合,将度量做聚合运算,然后将运算结果保存为一个物化视图,成为Cuboid;所有维度组合的Cuboid作为一个整体,成为Cube。一个Cube就是许多按维度聚合的物化视图集合。

2.5 星形模型与雪花模型

       星形模型是一张事实表,有零个或多个维度表,维度表之间没有关联。将星形模型中某些维度表再做进一步规范,抽取成更细的维度表,然后将这些细粒度的维度表相互关联,就形成了“雪花模型”。出于“易用性”和“性能”两方面考虑,应避免过分“雪花化”。

  • 过多“雪花化”的维度表会使展现数据的逻辑变复杂
  • 多表关联会带来性能问题,“扁平”的单一维度能避免关联,待见是造成维度数据冗余。
  • 雪花模型还会影响用户在某一维度上对数据的“浏览”能力,在“扁平”维度模型下,雪花模型会变得很烦琐。

三、批处理需求分析

       数据仓库体系构建四大环节:

  • 从数据源采集原生数据,存储于一个特定的区域。
  • 对原生数据进行校验、清洗、转换等规范化处理,并存储于一个特定区域;
  • 基于标准数据构建星形模型需要的事实表、维度表,以及轻量的汇总表和宽表,并将这些数据存储于一个特定的区域;
  • 面向上层应用构建专用的数据结构,并存储于一个特定的区域

四、数据仓库架构

       数据仓库一般会有ODS、数据仓库和数据集市这几个层次。

  • ODS:也叫贴源层,ods中表结构与数据源中的表结构基本保持一致
  • 数据仓库:以ods中的数据为基础,经过更加细致的处理构建出每一类数据的正式表
  • 数据集市:数据结构会根据应用的需要做进一步处理,如进行维度建模、创建星形模型,最终形成“数据集市层”

4.1 源数据层(SRC层)

       源数据层是按照DataLake的定位设计的,Dat

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/神奇cpp/article/detail/848128
推荐阅读