您的位置:首页 > 其它

模块开发---- 数据仓库设计

2018-03-22 23:37 351 查看

1 .  维度建模基本概念

维度建模(dimensional modeling)是专门用于分析型数据库、数据仓库、数
据集市建模的方法。数据集市可以理解为是一种"小型数据仓库"。
维度表 (dimension)
维度表示你要对数据进行分析时所用的一个量,比如你要分析产品销售情况,
你可以选择按类别来进行分析,或按区域来分析。这样的按..分析就构成一个维
度。再比如"昨天下午我在星巴克花费 200 元喝了一杯卡布奇诺"。那么以消费为
主题进行分析,可从这段信息中提取三个维度:时间维度(昨天下午),地点维度
(星巴克), 商品维度(卡布奇诺)。通常来说维度表信息比较固定,且数据量小。
事实表 (fact table)
表示对分析主题的度量。事实表包含了与各维度表相关联的外键,并通过
JOIN 方式与维度表关联。事实表的度量通常是数值类型,且记录数会不断增加,
表规模迅速增长。比如上面的消费例子,它的消费事实表结构示例如下:
消费事实表:Prod_id(引用商品维度表), TimeKey(引用时间维度表),
Place_id(引用地点维度表), Unit(销售量)。
总的说来,在数据仓库中不需要严格遵守规范化设计原则。因为数据仓库的
主导功能就是面向分析,以查询为主,不涉及数据更新操作。事实表的设计是以
能够正确记录历史信息为准则,维度表的设计是以能够以合适的角度来聚合主题
内容为准则。

2 .  维度建模三种模式

2.1. . 星型模 星型模 式

星形模式(Star Schema)是最常用的维度建模方式。星型模式是以事实表为
中心,所有的维度表直接连接在事实表上,像星星一样。
星形模式的维度建模由一个事实表和一组维表成,且具有以下特点:
a. 维表只和事实表关联,维表之间没有关联;
b. 每个维表主键为单列,且该主键放置在事实表中,作为两边连接的外键;
c. 以事实表为核心,维表围绕核心呈星形分布;



2.2. . 雪花 雪花 模式

雪花模式(Snowflake Schema)是对星形模式的扩展。雪花模式的维度表可以
拥有其他维度表的,虽然这种模型相比星型更规范一些,但是由于这种模型不太
容易理解,维护成本比较高,而且性能方面需要关联多层维表,性能也比星型模
型要低。所以一般不是很常用。



2.3. . 星座 星座 模式

星座模式是星型模式延伸而来,星型模式是基于一张事实表的,而星座模式
是基于多张事实表的,而且共享维度信息。
前面介绍的两种维度建模方法都是多维表对应单事实表,但在很多时候维度
空间内的事实表不止一个,而一个维表也可能被多个事实表用到。在业务发展后
期,绝大部分维度建模都采用的是星座模式。



3 . 点击流日志分析项目中数据仓库的设计

注:采用星型模型

3.1. . 事实表 事实表 设计

原始数据表: ods_weblog_origin =>对应 mr 清洗完之后的数据

valid  string 是否有效
remote_addr  string 访客 ip
remote_user  string 访客用户信息
time_local  string 请求时间
request  string 请求 url
status  string 响应码
body_bytes_sent  string 响应字节数
http_referer  string 来源 url
http_user_agent  string 访客终端信息

访问日志明细宽表:dw_weblog_detail

valid  string 是否有效
remote_addr  string 访客 ip
remote_user  string 访客用户信息
time_local  string 请求完整时间
daystr  string 访问日期
timestr  string 访问时间
month  string 访问月
day  string 访问日
hour  string 访问时
request  string 请求 url 整串
status  string 响应码
body_bytes_sent  string 响应字节数
http_referer  string 来源 url
ref_host  string 来源的 host
ref_path  string 来源的路径
ref_query  string 来源参数 query
ref_query_id  string 来源参数 query 值
http_user_agent  string 客户终端标识

3.2. . 维度表 维度表 设计

时间维度 t_dim_time

date_Key
year
month
day
hour

访客地域维度  t_dim_area

a a rea _ID
北京
上海
广州
深圳

终端类型维度  t_dim_termination

uc
firefox
chrome
safari
ios
android

网站栏目维度 t_dim_ section

跳蚤市场
房租信息
休闲娱乐
建材装修
本地服务
人才市场
注意:
维度表的数据一般要结合业务情况自己写脚本按照规则生成,也可以使用
工具生成,方便后续的关联分析。
比如一般会事前生成时间维度表中的数据,跨度从业务需要的日期到当前
日期即可.具体根据你的分析粒度,可以生成年,季,月,周,天,时等相关信
息,用于分析。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  数据仓库