Kimball Design Tips #1: 点击流数据集市设计指导
来源:互联网 发布:海盗港新域名 编辑:程序博客网 时间:2024/05/21 13:55
by Ralph Kimball
点击流是Web服务器收集的页面点击事件,原始的点击流数据,每一次访问者的点击就会产生一条记录。点击流因此包含了用户对网络站点做出的每个动作空前详细的记录。
点击流的源数据量是巨大的,即使是一个中等规模的站点就可以每天产生1亿次的页面事件记录。为我们重要的分析,我们必须把记录数量减少到一个可以控制的范围内。本设计想到的目的就是寻找到一个方法,不需要遍历一亿条记录,同时数据仍然保留在一个有用的水平上,注意应付我们对网站访问行为的分析。
点击流事件包括了一些列有用的维度,包括日历日期,时间,访问者,页面对象,上下文,以及访问方法(Get or Post).
建议的点击流行为事实表的粒度是:一条事实表记录=一个访问者对话期间
如果平均每个会话包括20个点击事件,那么以上例子中的数据记录大概是5百万个,相当于一个中等规模的零售数据库的大小。
通常事实表建议的维度有:
Web服务器时间(日历日期)
Web服务器时间(用整数表示,从0点开始过去的秒的数量)
访问者日期
访问者时间
访问者(匿名或者用网站记录的唯一代号)
开始页
结束页面
上下文
会话特征(一个简单的描述符号,表示该会话的种类)
建议的数值事实有:
总的访问页面数量
总的停留时间(估计值,应为我们不能准确计算出停留时间)
这个设计非常强大,可以让我们很容易地评估页面访问行为。最重要的特征是会话特征维度,你必须开发一个非常完善的ETL程序,从详细的页面访问序列中提取会话的特征标识符号。
关于一号指导的再讨论:
关于1号指导,在我1999年1月5日发表这篇文章后,我看到了一系列的关于维度建模的有趣的补充评论,一些人问我,为什么要设置粒度为一条记录=一次完整的页面会话,这些人问我时候改变了主意。我没有改变主意,相反,我对这个问题有了更深入地理解,对于点击流数据,至少有3中有用的粒度:
1)事实表记录=单个页面访问事件;在这个粒度,能够记录每一次页面访问的轨迹,对于繁忙的页面访问来讲,数据量巨大。你需要花大量的钱来存储和分析数据。而统计学的分析告诉我们,大约采样1%的数据就可以很好地分析用户的使用模式,从而支持重要的决策。
2)事实表记录=完整页面访问会话;在这个粒度,你可以很好地做分析,因为你有每个用户页面访问的数据。
3)事实表记录=网页每天的页面访问;这个粒度大大地减少了记录的数据量,但是汇总的数据也过滤掉了很多有用的信息。
对于粒度的问题,往往是一种权衡的过程,如果非要追求每个细节,那可能我们需要所有的最细的数据,就像我们很多其他数据仓库所做的那样。Kimball把粒度问题放在Tips的第一个Tips,可见粒度问题的重要性。
原文请见http://www.ralphkimball.com/html/designtipsPDF/DesignTips2000%20/KimballDT1GuidelinesFor.pdf 任何转载本文翻译请注明出处
- Kimball Design Tips #1: 点击流数据集市设计指导
- 数据集市 数据仓库 Immon Kimball模型的概念说明
- Android UI Design Tips(Google官方出品:Android UI 设计指导)——第一部分
- 数据集市
- 数据集市
- 数据集市
- 数据集市
- 数据集市
- 数据集市
- Icon Design Guidelines-android 图标设计指导
- 数据挖掘系列之四(数据仓库之二):数据仓库设计--Kimball方法
- 数据集市的结构
- 数据仓库与数据集市
- 数据集市技术简介
- 数据仓库 数据集市
- 数据集市 数据仓库
- 数据仓库与数据集市
- 数据仓库--什么是数据集市
- 不在乎吗
- 浮躁的人无法在这里生存
- 从C++程序员转到Java需注意的十二个方面
- linux多线程学习(二)——线程的创建和退出
- ActiveRecord: default_error_messages is deprecated since Rails2.2, below shows the new way.
- Kimball Design Tips #1: 点击流数据集市设计指导
- 绝对不能说出口的英语——禁忌语
- 设计模式有什么用——设计模式之初
- 让你茅塞顿开的英语短语句子
- 【hibernate+Spring学习】hibernate基础
- 常用简易JavaScript函数
- 我的博客今天开盘了
- 传智播客Servlet学习,Servlet api,Servlet的编写与编译
- 老外们辨别中国人的十大方法