美文网首页数据仓库
数仓模型设计详细讲解

数仓模型设计详细讲解

作者: 大数据老哥 | 来源:发表于2021-01-03 00:03 被阅读0次

前言

          今天给大家分享下数仓中的模型设计,一个好的数仓项目首先看一下它的架构以及他所用到的模型,它们使用的模型也都是非常巧妙的,好了,我们话不说到直接开始。

一、维度建模基本概念

         维度模型是数据仓库领域大师Ralph Kimall所倡导,他的《数据仓库工具箱》,是数据仓库工程领域最流行的数仓建模经典。维度建模以分析决策的需求出发构建模型,构建的数据模型为分析需求服务,因此它重点解决用户如何更快速完成分析需求,同时还有较好的大规模复杂查询的响应性能。          

       维度建模是专门应用于分析型数据库、数据仓库、数据集市建模的方法。数据集市可以理解为是一种小型数据仓库

1.1 事实表

         发生在现实世界中的操作型事件,其所产生的可度量数值,存储在事实表中。从最低的粒度级别来看,事实表行对应一个度量事件,反之亦然。         

事实表的特征:表里没有存放实际的内容,他是一堆主键的集合,这些ID分别能对应到维度表中的一条记录。事实表包含了与各维度表相关联的外键,可与维度表关联。事实表的度量通常是数值类型(条/个/次),且记录数会不断增加,表数据规模迅速增长。

1.2 维度表

         维度表示要对数据进行分析时所用的一个量,比如你要分析产品销售情况, 你可以选择按类别进行分析,或按区域分析。这样的按..分析就构成一个维度。上图中的用户表、商家表、时间表这些都属于维度表。这些表都有一个唯一的主键,然后在表中存放了详细的数据信息。

例如:交易金额分析分析         

男性用户的订单金额、联想商品的订单金额、第一季度的订单金额、手机的订单金额、家里下单的订单金额

例如:学生分析        

姓张的同学有多少、男性的同学有多少、江苏的同学有多少、身高小于170cm的同学有多少、年龄小于23岁的同学有多少。         

每个维度表都包含单一的主键列。维度表的主键可以作为与之关联的任何事实表的外键,当然,维度表行的描述环境应与事实表行完全对应。维度表通常比较宽,是扁平型非规范表,包含大量的低粒度的文本属性。

总的说来,在数据仓库中不需要严格遵守规范化设计原则。因为数据仓库的主导功能就是面向分析,以查询为主,不涉及数据更新操作。

事实表的设计是以能够正确记录历史信息为准则。

维度表的设计是以能够以合适的角度来聚合主题内容为准则。

二、维度建模三种模式

2.1  星型模型

         星形模式(Star Schema)是最常用的维度建模方式。星型模式是以事实表为中心,所有的维度表直接连接在事实表上,像星星一样。         

  星形模式的维度建模由一个事实表和一组维表成,且具有以下特点:

  • 维表只和事实表关联,维表之间没有关联;
  • 每个维表主键为单列,且该主键放置在事实表中,作为两边连接的外键;

2.2  雪花模式

2.3 星座模式

         星座模式是星型模式延伸而来,星型模式是基于一张事实表的,而星座模式是基于多张事实表的,而且共享维度信息。        

总结

         好了本篇文章就分享到这里了,本篇文章主要讲解了维度模型三种模式,在设计数仓的时候尽量将表设计为星星模型雪花模型这样的话我们在实现功能的时候就比较简单,原因是星星模型雪花模型架构基本上是一对多的。信自己,努力和汗水总会能得到回报的。我是大数据老哥,我们下期见~~~。

获取Flink面试题,Spark面试题,程序员必备软件,hive面试题,Hadoop面试题,Docker面试题,简历模板等资源请去GitHub自行下载 https://github.com/lhh2002/Framework-Of-BigData


相关文章

  • 数仓模型设计详细讲解

    前言 今天给大家分享下数仓中的模型设计,一个好的数仓项目首先看一下它的架构以及他所用到的模型,它们使用的模型也都...

  • 数仓建设规范

    本文将全面讲解数仓建设规范,从数据模型规范,到数仓公共规范,数仓各层规范,最后到数仓命名规范,包括表命名,指标字段...

  • 【知识】可实操使用的数仓建设规范指南

    目录: 一、数据模型架构原则数仓分层原则主题域划分原则数据模型设计原则 二、数仓公共开发规范层次调用规范数据类型规...

  • 离线数仓从0到1

    话聊建设数仓 ETL工具面临的问题 分层分层的出发点分层设计 模型建设为什么要建设模型怎么建设模型理清工作思路实施...

  • 数仓模型建设

    为了防止数仓模型的混乱建设需要通过一些约定和规范进行建设。 建设要求 1.统一ods层的建设,一次数据只接入一次,...

  • 次世代战车的详细制作教程

    效果图介绍我喜爱设计制作机械模型,本教程是制作的水陆两用车模型。将不会对建模进行详细的讲解,但会对有关前期设计和P...

  • 室内设计CAD渲染蓝海创意云建筑CAD渲染软件

    蓝海创意云建筑设计AutoCAD室内渲染详细教程技术文章在我们的网站会提供视频、图解教程,详细讲解了如何为三维模型...

  • 从0开始研究数据仓库的一些想法

    研究方向 数仓理论:分层设计理论、维度建模理论基于OLAP数仓:adb/clickhouse/greenplum/...

  • 黑马基础

    软件开发过程模型: 瀑布模型,快速模型,螺旋模型 测试模型: V模型:需求分析、概要设计、详细设计、编码、单元测试...

  • 数仓入门基础-8-模型设计

    1.事实表模型设计 事实表有三种类型 : 事务事实表、周期快照事实表和累积快照事实表。事务事实表用来描述业务过程,...

网友评论

    本文标题:数仓模型设计详细讲解

    本文链接:https://www.haomeiwen.com/subject/xpoyoktx.html