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

本文涉及的产品
云原生数据仓库AnalyticDB MySQL版,基础版 8ACU 100GB 1个月
日志服务 SLS,月写入数据量 50GB 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
相关文章
|
2月前
|
SQL 存储 JSON
更快更强,SLS 推出高性能 SPL 日志查询模式
从海量的日志数据中,按照各种灵活的条件进行即时查询搜索,是可观测场景下的基本需求。本文介绍了 SLS 新推出的高性能 SPL 日志查询模式,支持 Unix 风格级联管道式语法,以及各种丰富的 SQL 处理函数。同时通过计算下推、向量化计算等优化,使得 SPL 查询可以在数秒内处理亿级数据,并支持 SPL 过滤结果分布图、随机翻页等特性。
11802 102
|
13天前
|
监控 网络协议 CDN
阿里云国际监控查询流量、用量查询流量与日志统计流量有差异?
阿里云国际监控查询流量、用量查询流量与日志统计流量有差异?
|
3月前
|
Oracle 关系型数据库 MySQL
实时计算 Flink版产品使用问题之在online模式下增量抓取Oracle数据时,在archive_log切换时,出现数据丢失的情况,是什么原因
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
4月前
|
关系型数据库 数据库
|
4月前
|
SQL 关系型数据库 MySQL
|
4月前
|
SQL 存储 关系型数据库
技术心得记录:数仓建模方法之范式建模、ER实体建模、维度建模
技术心得记录:数仓建模方法之范式建模、ER实体建模、维度建模
96 0
|
5月前
|
存储 数据挖掘 大数据
大数据数仓建模基础理论【维度表、事实表、数仓分层及示例】
数据仓库建模是组织和设计数据以支持数据分析的过程,包括ER模型和维度建模。ER模型通过实体和关系描述数据结构,遵循三范式减少冗余。维度建模,特别是Kimball方法,用于数据仓库设计,便于分析和报告。事实表存储业务度量,如销售数据,分为累积、快照、事务和周期性快照类型。维度表提供描述性信息,如时间、产品、地点和客户详情。数仓通常分层为ODS(源数据)、DWD(明细数据)、DIM(公共维度)、DWS(数据汇总)和ADS(应用数据),以优化数据管理、质量、查询性能和适应性。
|
4月前
|
存储 Java 关系型数据库
基于JSP的九宫格日志网站
基于JSP的九宫格日志网站
|
5月前
|
存储 数据可视化 前端开发
数仓常用分层与维度建模
本文介绍了数据仓库的分层结构和维度建模。数仓通常分为ODS、DIM、DWD、DWS和ADS五层,各层负责不同的数据处理阶段。维度建模是数据组织方法,包括星型和雪花模型。星型模型简单直观,查询性能高,适合简单查询;雪花模型则通过规范化减少冗余,提高数据一致性和结构复杂性,但可能影响查询效率。选择模型需根据业务需求和数据复杂性来定。
|
5月前
|
算法 测试技术 C++
【数据结构】模式匹配之KMP算法与Bug日志—C/C++实现
【数据结构】模式匹配之KMP算法与Bug日志—C/C++实现
69 0