网站流量日志分析—数仓设计--维度建模三种模式|学习笔记

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
云原生数据仓库AnalyticDB MySQL版,基础版 8ACU 100GB 1个月
简介: 快速学习网站流量日志分析—数仓设计--维度建模三种模式

开发者学堂课程【大数据分析之企业级网站流量运营分析系统开发实战(第三阶段) 网站流量日志分析—数仓设计--维度建模三种模式】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/695/detail/12198


网站流量日志分析—数仓设计--维度建模三种模式


内容介绍:

一、 星型模式

二、 雪花模式

三、 星座模式

四、 总结


维度建模三种模式可以掌握企业当中数仓常见的三种模式模型以及数仓的发展脉络轨迹。首先一点要明确数仓并不是一次性的行为,而是不断发展维护的过程。随着数仓的不断发展,分析的主题变得越来越多,主题变多之后,所对应的事实表也好,维度表也好,也都会变多,变多之后就会产生各种各样的关系,各种各样的模型,当中最著名的是讲义上所写的三种模式,分别叫做星型模式、雪花模式、星座模式。

 

一、星型模式

image.png

这是最常见的一种,如图,所谓的星型模式是以一个事实表为中心,多个维度表像星型一样在事实表的周围,围绕着事实表呈所谓的星型分布,可以抽象理解为事实表是地球,旁边有很多星型在进行旋转。当中星型模型有一个事实表意味着有一个主题,一个主题企业当中在数仓发展的初期阶段,刚才建立可能分析不多的时候才会有星型模型。


二、雪花模式

image.png

通过这个图直观感受到它首先还是有一个事实表,区别在于维度表之上可以继续关留维度表,维度表是看待问题的角度,如果这个维度表分析得不够明确,可以继续往下做一个数据细分。如上图,比如分析事实表上订单的情况,从第一名的分析国家省市,要是想看的更加仔细可以从地域更加细致细分下去,以国家的维度分析,以省份的纬度分析,以城市的维度分析,这样就形成一种关联。维度表不断扩展维度表,就构成了所谓的雪花模型。事实上这种模型有利于人类的事业扩展的,看待问题总想不断的深挖下去,但是知道一旦维度表,关联维度表甚至关联更多之后,这种模式它的维护成分关联比较高,因为涉及到多层关联,维护起来性能是一个大的问题。所以在企业当中,作为架构数仓领域有权利的人,要避免把数仓模型拆分。


三、星座模式

image.png

星座模式本身是星型模型的延伸,通过上图发现最明显的区别是有多个事实表,多个事实表意味着数仓当中有多个分析主题,意蕴着数据仓库发展肯定不是一天半天了,应该是企业当中数仓发展的中后期,有多个事实表没有问题,可以发现当中有些维度表是可以共用的,如上图,维度表 A 可以支持左边的事实表1,也可以支持右边的事实表2,通过 FK ,这就意味着无修维度可以共用就没有没必要维护两个同样的维度表,这个维度表把两个进行关联就像星座一样。

这三种模型是企业当中常见的三种企业模式,一个是初期,一个是中后期,一个是避免变成这样的模型,为了更加贴近于实际理解的模式,比如今天大家同时来入职,来一家新的公司,这家公司建立新的大数据分析数仓领域,首先今年上半年老板布置一个活,让我们去分析公司的订单销售情况,确定主题之后,事实表可以马上确定,分析的是订单销售情况,这个事实表就是订单表。确定了所谓的事实表可以从哪些分析,比如说分析哪个省份哪个地方买的多,按照地域维度分析,发现根据事实表就可以从不同维度上分析,按照时间的维度分析,哪个时间买的多,哪个时间买的少,一月上旬买的多还是一月下旬卖的多,对一天来说早上卖的多还是晚上卖的多,发现又可以分析一个维度,也可以按照商品的维度来分析,分析哪个商品卖的多;还可以按照销售渠道维度来分析了,现在购物 PC 端、移动端,微信也可以小程序购物,这时候发现一旦从不同的角度去分析这些维度和事实表产生了关联,这样就构成了一个事实表,多个维度表。维度表跟时代产生关联像星型一样围绕在事实表周围,这就是星型模式。这种模式往往是企业发展初期模式。

雪花模型不利于维护关联避免设计成模型,比如说工作了半年,老板下半年又来一个新的需求,留下来一半人继续去分析订单销售情况,剩下一半人开展新的主题(公司网站访问情况),确定主题之后,接下来还要去确定事实表,要分析网站的访问情况(访问的日志表),这时候从从侧面上再次感受到事实表跟主题息息相关,要分析什么主题,事实表就跟主题相对应,这是主题一个客观的度量。

网站的访问情况也可以按照时间维度分析一天当中是上午来的多还是下午来的多;公司有不同的栏目,有不同的模块,所以可以按照栏目来分析,新闻类的模块,科技类的模块,房地产相关的,汽车相关的,军事相关的以及政治相关的,按照栏目来分析看网站到底哪个栏目来得多,对电商来说也一样,日用品的、化妆品的,生鲜的、水果的看看哪个栏目来得多,这又是一个分析的角度。我们访问网站是通过手机端还是移动端,是通过电脑打开还是手机安卓或 ios 以及浏览器,这叫做终端信息,又发现可以扩展一个按照终端维度分析,比如公司当中90%的人都是通过手机来访问,这时候针对手机端做一个最好的优化,图片通过流量访问并且压缩,信息显示精准一点错。不管怎样去扩展,又发现开展了一个星型模型。

image.png

左边一个星型模型,右边一个星型模型,但是这时候作为数仓的架构者或者维护者,分析发现左边的一个事实表有一个时间维度,右边的也有个时间维度,产生一个问题这两个时间有没有关系(如下图),

image.png

举例,比如分析左边的订单时间维度是从2018年1月到2018年6月,右边的是2019年1月2019年6月,这两个时间维度没有关系以致不能合并,但是有一种情况如果恰好右边分析时间维度,18年1月到18年6月,这两个维度表的数据完全一样,这种情况下没有必要维护两份一样的表。

如果数仓中某些维度表可以共用,只需要维护一个维度表即可。意味着该维度表可以给不同的事实表提供分析的支持。这两个关联有一个事实表叫做时间的维度表来分析之后就构成星座模型。

 

四、总结

所谓星型模式是一个事实表多个维度表,维度表之间没有关系,维度表跟事实表进行关联,这是企业数仓发展初期常见的模型。

所谓雪花模式是一个事实表多个维度表,维度表可以继续关联维度表,形成一个多级关联的关系,像雪花一样扩散开来,但不利于后期的维护,因此企业中尽量避免演化成该种模型,如果涉及该种模型,花费的精力比较大,随着不断演化,维护成分越来越高。

所谓星座模式是多个事实表多个维度表,某些维度表可以共用,企业数仓发展中后期常见模型。

通过这些模型可以从客观层面上去看一下这家公司的数仓到底是一年半年还是一个月半个月,还是怎么发展设计的好不好

以上就是数仓设计里常见的三种模式星型模式、雪花模式、星座模式。

相关实践学习
AnalyticDB MySQL海量数据秒级分析体验
快速上手AnalyticDB MySQL,玩转SQL开发等功能!本教程介绍如何在AnalyticDB MySQL中,一键加载内置数据集,并基于自动生成的查询脚本,运行复杂查询语句,秒级生成查询结果。
阿里云云原生数据仓库AnalyticDB MySQL版 使用教程
云原生数据仓库AnalyticDB MySQL版是一种支持高并发低延时查询的新一代云原生数据仓库,高度兼容MySQL协议以及SQL:92、SQL:99、SQL:2003标准,可以对海量数据进行即时的多维分析透视和业务探索,快速构建企业云上数据仓库。 了解产品 https://www.aliyun.com/product/ApsaraDB/ads
相关文章
|
5月前
|
存储 数据采集 JavaScript
深入理解数仓开发(一)数据技术篇之日志采集
深入理解数仓开发(一)数据技术篇之日志采集
|
3月前
|
SQL 存储 JSON
更快更强,SLS 推出高性能 SPL 日志查询模式
从海量的日志数据中,按照各种灵活的条件进行即时查询搜索,是可观测场景下的基本需求。本文介绍了 SLS 新推出的高性能 SPL 日志查询模式,支持 Unix 风格级联管道式语法,以及各种丰富的 SQL 处理函数。同时通过计算下推、向量化计算等优化,使得 SPL 查询可以在数秒内处理亿级数据,并支持 SPL 过滤结果分布图、随机翻页等特性。
12010 110
|
1月前
|
监控 网络协议 CDN
阿里云国际监控查询流量、用量查询流量与日志统计流量有差异?
阿里云国际监控查询流量、用量查询流量与日志统计流量有差异?
|
3月前
|
SQL 分布式计算 关系型数据库
实时数仓 Hologres操作报错合集之指定主键更新模式报错主键数据重复,该如何处理
实时数仓Hologres是阿里云推出的一款高性能、实时分析的数据库服务,专为大数据分析和复杂查询场景设计。使用Hologres,企业能够打破传统数据仓库的延迟瓶颈,实现数据到决策的无缝衔接,加速业务创新和响应速度。以下是Hologres产品的一些典型使用场景合集。
|
5月前
|
DataWorks 安全 数据库
DataWorks产品使用合集之简单模式下,如何实现数仓分层
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
90 3
|
4月前
|
Oracle 关系型数据库 MySQL
实时计算 Flink版产品使用问题之在online模式下增量抓取Oracle数据时,在archive_log切换时,出现数据丢失的情况,是什么原因
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
5月前
|
关系型数据库 数据库
|
5月前
|
SQL 关系型数据库 MySQL
|
5月前
|
存储 SQL 分布式计算
离线数仓(五)【数据仓库建模】(4)
离线数仓(五)【数据仓库建模】
|
5月前
|
消息中间件 数据采集 关系型数据库
离线数仓(三)【业务日志采集平台搭建】(2)
离线数仓(三)【业务日志采集平台搭建】

热门文章

最新文章