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

  • 时间:
  • 浏览:0
  • 来源:大发彩神排列五_大发神彩排列五官方

问答二: ods 和 dwd 的区别

canal日志合成数据的土措施待研究。

应用层(App)

有大伙问了许多问题,有许多那我的确没讲清楚,补到这里。

业务库,这里老是会使用 Sqoop 来抽取,比如大伙每天定时抽取一次。在实时方面,可不都要考虑用 Canal 监听 Mysql 的 Binlog,实时接入即可。

分类整理日志,线上系统会打入各种日志,哪几种日志一般以文件的形式保存,大伙可不都要挑选用 Flume 定时抽取,也可不都要用用 Spark Streaming 可能性 Storm 来实时接入,当然,Kafka 也会是一一八个 关键的角色。

否则,最终的结果大多却是依赖繁复、层级混乱,想梳理清楚一张表的声称途径会比较困难,如下图:

二、技术实践

2. ODS、DW → App层

原文发布时间为:2017-10-20

问答三:app 层是干哪几种的?

本文主要讲解数据仓库的一一八个 重要环节:怎样设计数据分层!其它关于数据仓库的内容可参考那我的文章。

问:dws 和dwd 是并行而前会 先后顺序?

答:ods 直接到 dws 就好,没必要过 dwd,我举个例子,你的浏览商品行为,我做一层轻度汇总,就直接装入 dws 了。但有你在的资料表,要从好多表凑成一份,大伙从四五份人及资料表中凑出来了一份完整性的资料表装入 了 dwd 中。否则在 app 层,大伙要出一张画像表,中有 用户资料和用户近一年的行为,大伙就直接从dwd中拿资料, 否则再在 dws 的基础上做一层统计,就成一一八个 app表了。当然,这前会 绝对,dws 和 dwd 有没得 依赖关系主要看有没得 什儿 需求。

问答一: dws 和 dwd 的关系

这里解释一下DWS、DWD、DIM和TMP的作用。

大伙对数据进行分层的一一八个 主要意味着 很久希望在管理数据的那我,能对数据有一一八个 更加清晰的掌控,完整性来讲,主要有下面十2个 意味着 :

答:对的,可不都要大致那我理解。

下图,做了许多小的改动,大伙换成了上一节的Buffer层,把数据集市层和轻度汇总层装入 同一一八个 层级上,一同独立出来了维表和临时表。

1. 数据来源层→ ODS层

一、理论

在这里,主很久提供给数据产品和数据分析使用的数据,一般会存装入 ES、Mysql 等系统中供线上系统使用,也可能性会所处 Hive 可能性 Druid 中供数据分析和数据挖掘使用。

问:还是不太明白 ods 和 dwd 层的区别,有了 ods 层后感觉 dwd 没得 哪几种用了。

0x04 怎样更优雅许多

答:什儿 问题不太好回答,我感觉主要很久明确一下数据集市层是干哪几种的,可能性你的数据集市层放的很久许多可不都要供业务方使用的宽表表,装入 app 层就行。可能性我说的数据集市层是一一八个 比较泛许多的概念,没得 人太好 dws、dwd、app 哪几种合起来都有无 数据集市的内容。

缓冲层(buffer)

主题层(DM,data market或DWS, data warehouse service)

本文分享了笔者人及对数据仓库的许多理解和想法,不一定准确很久一定通用,否则可不都要作为一一八个 参考的思路。有哪几种问题欢迎多交流。 

数据体系中的各个表的依赖就像是电线的流向一样,大伙都希望它是规整、流向清晰、便于管理的,如下图:

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

其它数据源会比较多样性,这和具体的业务相关,不再赘述。

本文来自云栖社区商务战略合作伙伴“51CTO”,了解相关信息可不都要关注。

问:感觉数据集市层是前会 没地方放了,各个业务的数据集市表是应该在 dwd 还是在 app?

明细层(ODS, Operational Data Store,DWD: data warehouse detail)

另外,每一层的名字不用说太过在意,人及按照喜好就好。

问:我大慨明白了,是前会 说 dwd 主很久对 ods 层做许多数据清洗和规范化的操作,dws 主很久对 ods 层数据做许多轻度的汇总?

网上的例子很久,就不列了,只举个笔者早期参与设计的数据分层例子。分析一下当初的想法,以及什儿 设计的过高 。上原图和内容。

最初在做数据仓库的那我遇到了很久坑,可能性自身资源有限,接触数据仓库的那我,感觉在互联网行业上面的数据仓库成功经验很少,网上不能自己找到实践性比较强的资料。而那几本经典书籍上面又过于理论,折腾起来大伙说生不如死。还好现在过去了那个坎,否则多花许多时间分类整理人及的思路,帮助许多的小伙伴少踩许多坑。文章的行态如下:

当初的设计总共分了 6 层,其中换成元数据后,还有5层。下面分析一下当初的一一八个 设计思路。

0x05 问答

数据分层是数据仓库非常重要的一一八个 环节,它决定的不仅仅是一一八个 层次的问题,还直接影响到血缘分析、行态自动生成、元数据管理等一系列功能的建设。否则适于尽早考虑。

这上面也主要分一种生活类型:

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

注意: 在这层,理应前会 简单的数据接入,很久要考虑一定的数据清洗,比如异常字段的解决、字段命名规范化、时间字段的统一等,一般哪几种很容易会被忽略,否则却至关重要。一阵一阵是后期大伙做各种行态自动生成的那我,会十分有用。后续会有文章来分享。

这里人太好很久大伙现在大数据技术发挥作用的一一八个 主要战场。 大伙的数据主要会有一一八个 大的来源:

前面提到的一种生活设计人太好相对来讲可能性很完整性了,否则可能性层次会有许多多,否则在区分一张表到底该存装入 哪几种位置的那我可能性还有不小的疑惑。大伙在什儿 章里再设计一套数据仓库的分层,一同在前面的基础上换成维表和许多临时表的考虑,来让大伙的方案更优雅许多。

本文作者:佚名

答:有无 的,人及的理解,app 层主要存放许多相对心智心智心智成熟的句子的句子图片 图片 期期期图片 图片 期期期的表,能供业务侧使用的。哪几种表可不都要在 Hive 中,也可不都很久从 Hive 导入 Redis 可能性 ES 什儿 查询性能比较好的系统中。

问:对呀,那那我 dws 上面的汇总没得 经过数据质量和完整性度的解决,可能性单独做了什儿 质量相关的解决,为哪几种没得 dwd 之上再做汇总呢?我的问题人太好很久,dws的轻度汇总数据结果,有没得 做数据质量的解决?

0x03 举个例子

0x01 为哪几种要分层

二、文章行态

答:并行的,dw 层

问:那人太好对于同一一八个 数据,什儿 八个 过程是串行的?

答:嗯,我是那我理解的,站在一一八个 理想的深度图来讲,可能性 ods 层的数据就非常规整,基本能满足大伙绝大每项的需求,这当然是好的,这那我 dwd 层人太好也没太少必要。 否则现实中接触的请况是 ods 层的数据不能自己保证质量,毕竟数据的来源多种多样,推送方也会有人及的推送逻辑,在什儿 请况下,大伙就都要通过额外的一层 dwd 来屏蔽许多底层的差异。

0x02 怎样分层

大伙从理论上来做一一八个 抽象,可不都要把数据仓库分为下面一一八个 层,即:数据运营层、数据仓库层和数据产品层。

答:dws 会做汇总,dwd 和 ods 的粒度相同,这两层之间也没得 依赖的关系

本文对数据分层的讨论适合下面许多场景,超过该范围场景 or 数据仓库经验丰富的大神就不用说浪费时间看多。

一、文章主题

这三层技术划分,相对来说比较粗粒度,上面大伙会专门细分一下。在此那我,先聊一下每一层的数据一般前会 为什么我么我流向的。这里仅仅简单介绍十2个 常用的工具,侧重中开源界主流。

如大伙老是说的报表数据,可能性说那种大宽表,一般就装入 这里。

0xFF 总结