赞
踩
数据要从业务数据库采集到数仓中(ODS)
表数量:2个表(业务2个表,ODS原始存储,ODS也是2个表)
表类型:外部表,分区表(采集数据的日期)
数据存储类型:
ORC
(选择这个)(列存储格式)表压缩选择:
Zlib特点:压缩率贼高,性能不好
Snappy:压缩率适中,速度快
Lzo:压缩率还好,速度还好
ODS层特点是:刚开始的时候用一下,后续很少用ODS数据了。(冷数据)
既然是冷数据,用Zlib压缩成最小即可。
DW层主要做数据分析(迭代计算)用。
所需字段
普通字段
session_id
sid
ip
msg_count
create_time
area
province
city
origin_channel
seo_source
from_url
hourinfo
分区字段
dayinfo
monthinfo
quarterinfo
yearinfo
表数据格式:ORC
压缩:Snappy
分区(多级分区 年-> 季度-> 月 -> 天)
表类型:内部表
表数量:1张表即可
DWM:预聚合 + 维度退化
当前这个看板:
所以,这个看板不需要DWM层级
指标:
维度:
两个指标,我们做两个表,因为一个指标对应它需要的维度
表需要2张,对应两个指标
指标:访问量
维度:
通过分析,我们设计如下图的一张表,就可以提供所有在访问量这个指标下,关于时间、地区、来源、搜索、受访页面这些维度上的全部统计需求
-1 表示在某个维度上不存在
time_type:时间维度的类型
1.year
2.quarter
3.month
4. day
5.hour
attr_type:在地区、来源、搜索、受访页面这些维度上的类型
1. 省市区
2. origin
3. seo
4. from_url
指标:咨询量
维度:
如图,得到上图的表,所有的需求关于咨询的都可以解决。
ADS 有时候也被称之为APP层
作用上是存储业务或者报表等直接可用的结果数据
对于当前这个看板,DWS层的数据,聚合到那一步就足够可视化工具去使用了。
如果在进一步生成针对每个需求的结果表数据,可视化反而不好用。
所以,在当前这个看板,APP层可以省略了。
数据的流转是:
业务数据库(2张表) -> ODS 2张表 -> DWD 一张表 -> DWS 两个表 -> 导入MySQL -> 接入可视化工具
ODS: ORC存储、Zlib压缩、分区表(导入时间日期分区)
DWD:ORC存储、Snappy压缩(分区表:年->季度->月->天)
DWS:ORC存储,Snappy压缩(分区表:年->季度->月->天)
DWM:省略
ADS:省略
需要做的事情:
压缩和解压本质上:CPU的计算(执行算法)
本质的原因是:CPU的速度远大于硬盘同时也远大于网络传输速度
核心点:将硬盘负载或者网络负载转移到CPU负载,是一种收益行为
列存储,每个文件存储一个列,多个文件存储多个列,多个文件合成一张二维表
优点:列过滤,列查找,针对列相关操作更快。扩展列,增删列很容易。列单独存储
数仓的特性很大一部分是针对列的过滤,列的搜索,列的匹配,所以很多数仓结构比较适合使用列存储
列存储也比较适合做OLAP
缺点:整行相关操作性能低。同时对事务的支持性不行(因为把列都拆开存储,每个列单独做事务,整体还要同步很麻烦)
行存储,数据行存储,一个文件可表达一个二维表。
优点:
概念简单容易理解
,和很多现实中的数据模型概念相通,比如CSV文件,文本数据文件等
概念简单容易理解是一个很大的优势,毕竟性能低点可以忍,难以理解就不可以忍了。
人天生懒。
针对行操作更快捷
事务支持比较好
缺点:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。