作家
登录

【漫谈数据仓库】 如何优雅地设计数据分层

作者: 来源: 2017-10-20 15:02:45 阅读 我要评论

轻度汇总层(MID或DWB, data warehouse basis)

  • 概念:轻度汇总层数据仓库中DWD层和DM层之间的一个过渡层次,是对DWD层的临盆数据进行轻度综合和汇总统计(可以把复杂的清洗,处理包含,如根据PV日记生成的会话数据)。轻度综合层与DWD的重要差别在于二者的应用范畴不合,DWD的数据来源竽暌冠临盆型体系,并未知足一些弗成预感的需求而进行沉淀;轻度综合层则面向分析型应用进行细粒度的统计和沉淀
  • 数据生成方法:由明细层按照必定的营业需求生成轻度汇总表。明细层须要复杂清洗的数据和须要MR处理的数据也经由处理后接入到轻度汇总层。
  • 日记存储方法:内表,parquet文件格局。
  • 日记删除方法:长久存储。
  • 表schema:一般按天创建分区,没有时光概念的按具体营业选择分区字段。
  • 库与表定名。库名:dwb,表名:初步推敲格局为:dwb日期营业表名,待定。
  • 旧数据更新方法:直接覆盖

下图,做了一些小的修改,我们去掉落了上一节的Buffer层,把数据集市层和轻度汇总层放在同一个层级上,同时自力出来了维表和临时表。

【座谈数据仓库】 若何优雅地设计数据分层

这里解释一下DWS、DWD、DIM和TMP的感化。

  • DWS:轻度汇总层,大年夜ODS层中对用户的行动做一个初步的汇总,抽象出来一些通用的维度:时光、ip、id,并根据这些维度做一些统计值,比如用户每个时光段在不合登录ip购买的商品数等。这里做一层轻度的汇总会让计算加倍的高效,在此基本上如不雅计算仅7天、30天、90天的行动的话会快很多。我们欲望80%的营业都能经由过程我们的DWS层计算,而不是ODS。
  • DWD:这一层重要解决一些数据质量问题和数据的完全度问题。比如用户的材料信息来自于很多不合表,并且经常出现延迟丢数据等问题,为了便利各个应用方更好的应用数据,我们可以在这一层做一个樊篱。
  • DIM:这一层比较纯真,举个例子就明白,比如国度代码和国度名、地舆地位、中文名、国旗图片等信息就存在DIM层中。
  • TMP:每一层的计算都邑有很多临时表,专设一个DWTMP层来存储我们数据仓库的临时表。

0x05 问答

有同伙问了一些问题,有一些之前切实其实没讲清跋扈,补到这里。

问答一: dws 和 dwd 的关系

问:dws 和dwd 是并行而不是先后次序?

答:并行的,dw 层

答:ods 直接到 dws 就好,没须要过 dwd,我举个例子,你的浏览商操行动,我做一层轻度汇总,就直接放在 dws 了。然则你的材料表,要大年夜很多多少表凑成一份,我们大年夜四五份小我材料表中凑出来了一份完全的材料表放在了 dwd 中。然后在 app 层,我们要出一张画像表,包含用户材料和用户近一年的行动,我们就直接大年夜dwd中拿材料, 然后再在 dws 的基本上做一层统计,就成一个app表了。当然,这不是绝对,dws 和 dwd 有没有依附关系重要看竽暌剐没有这种需求。

问答二: ods 和 dwd 的差别

问:照样不太明白 ods 和 dwd 层的差别,有了 ods 层后感到 dwd 没有什么竽暌姑了。

答:嗯,我是如许懂得的,站在一个幻想的角度来讲,如不雅 ods 层的数据就非惯例整,根本能知足我们绝大年夜部分的需求,这当然是好的,这时刻 dwd 层其实也没太大年夜须要。 然则实际中接触的情况是 ods 层的数据很难包管质量,毕竟数据的来源多种多样,推送方也会有本身的推送逻辑,在这种情况下,我们就须要经由过程额外的一层 dwd 来樊篱一些底层的差别。

问:我大年夜概明白了,是不是说 dwd 主如果对 ods 层做一些数据清洗和规范化的操作,dws 主如果对 ods 层数据做一些轻度的汇总?

答:对的,可以大年夜致如许懂得。

问答三:app 层是干什么的?

问:感到数据集市层是不是没处所放了,各个营业的数据集市表是应当在 dwd 照样在 app?

答:这个问题不太好答复,我感到重要就是明白一下数据集市层是干什么的,如不雅你的数据集市层放的就是一些可以供营业方应用的宽表表,放在 app 层久煨。如不雅你说的数据集市层是一个比较泛一点的概念,那么其实 dws、dwd、app 这些合起来都算是数据集市的内容。

问:那存到 Redis、ES 中的数据算是 app层吗?

答:算是的,我小我的懂得,app 层重要存放一些相对成熟的表,能供营业侧应用的。这些表可以在 Hive 中,也可所以大年夜 Hive 导入 Redis 或者 ES 这种萌芽机能比较好的体系中。

【编辑推荐】

  1. 大年夜数据在云计算中转换的4个步调
  2. 大年夜数据前景分析:Hadoop将被Spark替代?
  3. 大年夜数据若何有序地“变废为宝”
  4. 重磅!SPORTRADAR收购NBA勇士队合作伙伴,体育大年夜数据进入2.0时代
  5. 解析:大年夜数据时代的城市设计模式若何?
【义务编辑:未丽燕 TEL:(010)68476606】

0xFF 总结

数据分层是数据仓库异常重要的一个环节,它决定的不仅仅是一个层次的问题,还直接影响到血缘分析、特点主动生成、元数据治理等一系列功能的扶植。是以适于尽早推敲。

【座谈数据仓库】 若何优雅地设计数据分层

本文分享了笔者本身对数据仓库的一些懂得和设法主意,不必定精确也不必定通用,然则可以作为一个参考的思路。有什愦问题迎接多交换。


  推荐阅读

  程序员漫画,数据库注入式攻击

沙龙晃荡 | 去哪儿、陌陌、ThoughtWorks在主动化运维中的实践!10.28不见不散! 今天我们看一幅数据库注入式进击的漫画。记得上安闲那会儿,我们的师长教师还让我们用一条语句直接在黉舍官>>>详细阅读


本文标题:【漫谈数据仓库】 如何优雅地设计数据分层

地址:http://www.17bianji.com/lsqh/38085.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)