最具影响力的数字化技术在线社区

168大数据

 找回密码
 立即注册

QQ登录

只需一步,快速开始

1 2 3 4 5
打印 上一主题 下一主题
开启左侧

大数据开发实战:维度建模-相关概念

[复制链接]
跳转到指定楼层
楼主
发表于 2018-12-27 17:09:37 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多数据大咖,获取更多知识干货,轻松玩转大数据

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
1、维度建模相关概念    

1.1、度量和环境
      维度建模支持对因为过程的支持,这是通过对业务过程度量进行建模来实现的。
      那么,什么是度量呢?实际上,通过和业务方、需求方交谈、或者阅读报表、图表等,可以很容易地识别度量。
      考虑如下因为需求:
      a、店铺上个月的销售额如何?
      b、店铺库存趋势如何?
      c、店铺的访问情况如何(pv page view 访问量, 即页面浏览量或点击量,衡量网站用户访问的网页数量;在一定统计周期内用户每打开或刷新一个页面就记录1次,
       多次打开或刷新同一页面则浏览量累计。uv: Unique Visitor)独立访客,统计1天内访问某站点的用户数(以cookie为依据);访问网站的一台电脑客户端为一个访客。
       可以理解成访问某网站的电脑的数量)。
      d、店铺访问的熟客占比多少?
      这里的销售额、库存、访问量、熟客量就是度量。缺乏上下文和环境来谈论度量是没有意义的。
      度量和环境这两个概念构成了维度建模的基础。而所有维度建模都是通过对度量和其上下文和环境的详细设计来实现的。
1.2、事实和维度
      通常来说,事实通常数值形式出现,而且一般都被大量的文本形式的上下文包围。这些文本形式的上下文描述了事实的5个W(when、where,what、who、why)信息,
    通常可被直观地分隔为独立的逻辑块,每一个独立的逻辑块即为一个维度,比如一个订单可以非常直观地分为商品、买家、卖家等多个维度。
      在维度建模和设计过程中,可以根据需求描述或基于现有报表,很容易将信息和分析需求分类到事实和度量中。比如业务人员需求为“按照一级类目,统计本店铺上月的销售额情况”,
    “按照一级类目”这个描述,很清楚说需求方希望对一级类目的销售额进行统计分析,这里的一级类目即为一个维度。类似的是,“上月”为另一个维度,而销售额明显是一个事实。
2、事实表
      事实表是维度模型中的基本表,或者说核心表。事实上,业务过程的所有度量在维度建模中都是存储在事实表中的,除此之外,事实表还存储了引用的维度。
      事实表通常和一个企业的业务过程紧密相关,由于一个企业的业务过程数据构成了其数据的绝大部分,因此事实表也通常占用了数据仓库存储的绝大部分。比如对于某个超市来说,
    其销售的明细数据通常占其拥有数据绝大部分且每天还在不断的累计和增长,而商品,门店、员工、设备等其他数据相对来说固定且变化不大。
      事实表的一行对应一个度量事件,事实上,每行对应的度量事件可粗可细。维度建模认为事实表应该包含最底层的、最原子性的细节,因为这样会带来最大灵活性。维度建模中,
    细节的级别称为事实表的粒度。
      事实表中最常用的度量一般是数值型和可加类型的。除了存储事实外,事实表都会包含多个相关的外键,用于关联和连接对应的维度表。正是通过这些外键,才能进行各个角度、
    各个维度的分析。
      在进行事实表的设计时,一定要注意一个事实表只能有一个粒度,不能将不同粒度的事实建立在同一张事实表中。
3、维度表
      维度表是维度建模的灵魂,通常来说,维度表设计的好坏直接决定了维度建模的好坏。
      维度表包含了事实表所记录的业务过程度量的上下文和环境,它们除了记录“5个W”等信息外,通常还包含了很多描述字段和标签字段等。
      维度表通常由多列或说多个属性。实际应用中,包含几十甚至上百属性的维度并不少见。维度表应该尽可能地包括一些有意义的文字性描述,以方便下游用户使用。
      维度属性是查询约束条件(SQL where条件),分组(SQL group语句)与报表标签生成的基本来源。
      维度属性在数据仓库中承担这一个重要的角色。由于它们实际上所有令人感兴趣的约束条件和报表标签的来源,因此是数据仓库易学易用的关键。在许多方面,
    数据仓库不过是维度属性的体现而已。数据仓库的能力直接与维度属性的质量和深度成正比。在提供详细的业务用语属性方面所花的时间越多,数据仓库就越好;在属性列值给定方面所花的时间越多,
    数据仓库就越好;在保证属性列值的质量方面花的时间越多,数据仓库就越好。
      维度表是进入事实表的入口。丰富的维度属性给出了丰富的分析切割能力。维度给用户提供了使用数据仓库的接口。最好的属性是文本的和离散的。属性应该是真正的文字而不应是
    一些编码简写符号。应该通过更为详细的文本属性取代编码,力求最大限度的减少编码在维度表中的使用。
      有时候在设计数据库时,并不能确定从数据源分析取出的一个数字型数据字段到底应该作为事实还是维度属性看待。通常可以这样做出决定,
    即看字段是一个含有许多取值并参与运算的度量值(当事实看待),还是一个变化不多并做为约束条件的 离散取值的描述(当作维度属性看待)。
    参考资料:《离线和实时大数据开发实战》

楼主热帖
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 转播转播 分享分享 分享淘帖 赞 踩

168大数据 - 论坛版权1.本主题所有言论和图片纯属网友个人见解,与本站立场无关
2.本站所有主题由网友自行投稿发布。若为首发或独家,该帖子作者与168大数据享有帖子相关版权。
3.其他单位或个人使用、转载或引用本文时必须同时征得该帖子作者和168大数据的同意,并添加本文出处。
4.本站所收集的部分公开资料来源于网络,转载目的在于传递价值及用于交流学习,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。
5.任何通过此网页连接而得到的资讯、产品及服务,本站概不负责,亦不负任何法律责任。
6.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源,若标注有误或遗漏而侵犯到任何版权问题,请尽快告知,本站将及时删除。
7.168大数据管理员和版主有权不事先通知发贴者而删除本文。

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

关于我们|小黑屋|Archiver|168大数据 ( 京ICP备14035423号|申请友情链接

GMT+8, 2024-4-26 03:02

Powered by BI168大数据社区

© 2012-2014 168大数据

快速回复 返回顶部 返回列表