大数据仓库之ods原始数据层和dw层设计

原创 2016年08月31日 15:55:46

甲问:数仓建模时,涉及到uv(去重用户数)指标时,数据从哪里取,只能走ods原始数据层吗,汇总到dw层时,由于数据量太大,不能到用户粒度,所以在dw层中不包含用户粒度的数据,而且电商的报表分析,几乎每张报表都会涉及到uv指标,如果所有的uv指标都从ods层去获取,那样io是否会成为瓶颈,原始数据量也比较大。举例:比如说有个字段column_a,包含了几百个数据(1-500),统计时可能会统计条件为1-20的uv指标,或者5-50,10-200。。。等等这些uv指标。

乙答:反问三个问题:

1.DW层为何不存储用户粒度的数据?
2.DW层为何不做聚集?
3.UV既然是共性需求,为何不考以DM的方式提供?

甲答:1.原始数据是用户访问网站的情况,用户今天可能访问了多次,也可能只访问一两次,如果dw层汇总数据精确到用户粒度,那dw层相对于ods层,数据压缩比太低了,而且因为数据量也太大,汇总比较耗时的
2.dw层做的是不同维度的聚集,但是没有到用户维度这么细的粒度
3.不是很明白,dm层需要uv指标,目前dm层的数据从dw基础汇总层来的,然后dm层需要的uv从ods原始数据层统计的,就是这样感觉不合理

乙答:

1:感觉你此处的DW其实更像DM,只存储聚集&汇总的结果;通过ODS来存储最细粒度的数据;DW和ODS的数据存储模型还是有差异的,定位也不同,建议是DW层存储最明细粒度的的数据,即每一次的用户访问事件。压缩比的问题属于存储能力和技术问题,与存储模型无关。DW层存在的目的,是提供长周期,更易访问的数据能力,ODS的目的是缓冲区。
2.无论是ODS和DW,都会存在同样的问题,数据量大,汇总耗时,这个不会因为你通过ODS聚集还是通过DW聚集,而有什么不同,你要解决的其实是计算性能问题,与存储无关,建议从技术视角处理。






版权声明:本文为博主原创文章,未经博主允许不得转载。 举报

相关文章推荐

数据仓库的架构以及数据分层

数据仓库分层的原因 1通过数据预处理提高效率,因为预处理,所以会存在冗余数据 2如果不分层而业务系统的业务规则发生变化,就会影响整个数据清洗过程,工作量巨大 3通过分层管理来实现分步完成工作,这样每一...

ODS与DW的区别

背景知识:在当今这样一个信息技术发展迅速的时代,数据量也在不断的增长,面临这样的压力,总是会有大神提出一些解决方案。比如高层管理人员希望能查看整个公司的发展业绩,数据仓库(Data Warehouse...

我是如何成为一名python大咖的?

人生苦短,都说必须python,那么我分享下我是如何从小白成为Python资深开发者的吧。2014年我大学刚毕业..

浅谈数据仓库的基本架构

数据仓库的目的是构建面向分析的集成化数据环境,为企业提供决策支持(Decision Support)。其实数据仓库本身并不“生产”任何数据,同时自身也不需要“消费”任何的数据,数据来源于外部,并且开放...

hive的udaf相关函数

abstractGenericUDAFResolver类的主要作用就是提供hql调用时候的函数参数来获取具体的GenericUDAFEvaluator实例对象,也就是说实现方法getEvaluator...

大数据环境下该如何优雅地设计数据分层

0x00 前言 最近出现了好几次同样的对话场景: 问:你是做什么的? 答:最近在搞数据仓库。 问:哦,你是传统行业的吧,我是搞大数据的。 答:…… 发个牢骚,搞大数据的也得...

hive sql优化-join Mapjoin Group by

join  按照key进行分发,key的合并在map阶段,而在join左边的表,也就是主表,会首先读入内存,当然它不是全部读入内存,而是部分读入内存,如果左边的表的key相对分散(或少,分散的意思就...

hive如何在group by之后,获取每个group的topN

SELECT page_id, user_id, clicks FROM (     SELECT page_id, user_id, rank(page_id) as rank, clicks ...

impala

特点: impala是基于hdfs的sql查询引擎,有如下特点: sql查询 与hive完全共享元数据库 自带计算框架,不基于mapreduce impala部署于所有节点,无主仆之分,任意...

storm原理

storm主节点Nimbus和工作节点supervisor中间是通过zookeeper知道对方状态,作业是topologies(拓扑),死循环 nimbus进程和supervisor进程是无法直接连...
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)