00:00
好,那接下来呢,咱们就进入真正的咱们实时数仓的一个学习,好,那学习之前呢,我们还是拿着这个离线数仓来聊,对吧,因为我们整个采集都是一样的,第二还有什么一样的,我们分层是一样的。对吧,那我们就想一想离线数仓的一个分层,然后来想一想我们实施这边应该有哪些地方需要做调整,对吧?好,那还是打开咱们这个PPT,接着把没播完的我们继续看啊来。首先呢,我们快速的切到刚才我们采集结束的那一块,对吧,那么这块呢,我们是利用采集模块就搞定了啊,现在呢,我们已经将数据。到达就是改完之后,对吧,我们从这开始聊啊,因为这块就有变化了,现在这儿呢,只有两个主题了,呃,行为数据一个。业务数据一个对吧,那新闻数据呢叫topic log对吧?业务数据呢,Topic DB我们刚改的啊,这个大家需要自己去改一下,因为我这边已经搞定了,因为采集不单独聊了嘛,对吧?好,那这边呢,就是两个主题啊,接下来呢,我们去消费。
01:13
对吧,下半径主题呢,放在这个FS最后过滤分成五种不同的日志数据,对吧?好,那通过我们的F加了一个。表明的拦截器可以将数据呢,也可以写到HDFS不同的路径里边,那接下来呢,我们这个是刚导入HHDFS,最终呢,我们要形成我们的离线数仓,咱们离线数仓呢,用的是have来构建的,大家想对不对,离线数仓用have来构建的,好,那我们分了几层。离线数仓咱们分了几层?
02:17
啊。啊,大家的延迟这么高吗?啊,大家的延迟好像有点高是吧,因为等了好久。才看到一个五层啊,没问题对吧,好,咱们呢都是。用就是整体上来说呢,用have来构建的,对吧,除了最后ADS,呃,我们最终呢会导到买SO1份,但实际上呢,刚开始产生的时候也在我们的have里边,对吧,所以我们零线收到呢,完全就是通过have来构建的,至于have用的引擎。那这个你可以选择MR或者说Spark,当然我们用的是Spark引擎对吧?好,那在这个里面呢,首先第一个ods原始数据层。
03:05
啊,就原封不动,也不做顾虑,也不做任何事,对吧,第二个DWD啊DM跟DWD层。对吧,这两个呢,其实我可以认为它是同一层的,所做的事情都是一样的。对吧,只不过说在这个过程当中呢,我们把这个数据呢,分成两类。呃,一类呢,是事实表对吧,我们放到叫DWD层,还有一类呢,是维度表啊,它俩有什么区别呢?我们凭什么呢分成这两个呢?大家对于这个东西是怎么理解的?就是。DWD层里边的事实表与DM层里边的维度表,我们一般来说怎么去区分呢,这种数据。就是你有没有一个很简单的高效的区分的方式呢?
04:18
啊,大家是怎么理解这个实时表跟这个维度表的。好像感觉大家应该从来没有思考过这个问题,是不是?就没有想过。看度量值。啊,看有没有度量值是吗。呃,可以从这个角度去考虑,没问题对吧,嗯。看度量值,能不能找出这个度量值,有度量值的就是我们的实时表对吧,实际上你再简单一点考虑呢,其实这样啊,那40表它其实指的是一个什么呢?是一个业务过程。
05:04
对吧,对吧,其实它指的是一个业务过程。对啊。导致表变化就是实时表啊,就是就是业务行为数据对吧,或者说叫业务过程,诶那我去下订单支付购买,那我用户去操作了一下。对吧,我操作在平台上操作了一下,然后呢,产生了一条数据,或者产生了多条数据啊,那这种呢,就是一个事实,而维表该怎么理解呢?就是就是站在度量值的角度来说,如果说大家还是站在度量值的角度来说,从这个角度来说,那我们的维度。其实就是观察度量值的一个方向,一个角度,对吧,那我度量值我可以是GMV总金额。对吧,总金额,那在观察这个总金额的时候,我们可以有什么呢?有时间,有地域信息对吧,有用户信息,商品信息这些东西就是它是观察这个度量值的一个什么一个角度,大家想是不是。
06:10
对吧,好,那这个呢分的,那其实在我们离线收仓里边。我们这个分的呢不明显,因为它都是在这个have里边,他俩可以认为是同一层,只不过说呢,根据功能不同呢,我们翻开了对吧,因为实时表呢,它是每天计算每天的一个内容,而维度它不是的,它的永久存储,我每天都可能用。第一天的内容对吧,假如第一天上架了一个商品,这个商品呢,在从第一天上架开始。往后每一天都有人购买。那它跟这个市值表。就不一样了,实时表呢,它在做计算的时候,它只是当天用当天的内容而为表,我未来可以用到过去。所有的数据。
07:00
对吧,因为它是一个描述信息,你任何时候都有可能会用到,好这是我们的DWD层以及DM层,那再往下就是我们的DWS层。嗯,DWS层呢,它是一个。汇总层,或者叫服务数据层。对吧,它呢是要做这个聚合啊,可以是横向,可以是纵向,那横向呢,就是说我可以把多张。实时表,哎,给它关联到一块儿,形成一个大的宽表,对吧,那聚合那在离线数单里边呢,咱们是按天进行聚合的,大家想是不是。咱们是按照天按照聚合的,对吧,更多的呢,是单日的指标,当然我们有。单日有。七天有30天对吧,那不管怎么样,它都是一个聚合指标吧,啊聚合起来好,那这个时候呢,我们要根据一个东西叫指标体系建设来做的好,那指标体系建设里边呢,有三个概念。
08:06
三个核心的概念,什么什么指标,什么什么指标大家可还记得?啊,记得的,把它打到这个弹幕上,我们来看一下。它里面有三种不同的指标,就是我们指标体系建设最开始是有什么指标,然后呢,有了什么指标,最后又有一类什么指标,三类对吧。哎,第一个原子指标不错啊。原子衍生指标,哎,对了,还有呢,还有一个是什么。派生对原子指标、衍生指标和这个。派生指标。对吧,这三类好,那原子指标是我们最根本的,对吧?它又是由什么组成的呢。就是我们可以认为一个什么样的东西,就是一个原子指标呢?
09:16
啊,原则指标它的一个包含的一个点还记得吗。首先。一个业务过程。对吧,业务过程。还有呢,框架体系啊,对第一个业务过程我已经说过了,还有呢。啊,度量值。还有一个。聚合的方式吧。啊,对。聚合逻辑聚合方式对吧?聚合啊没问题,一个过程,比如说我们之前离线收仓经常举的例子就是GMV对吧?啊交易总额,那我们呢,一个过程是订单下订单下单对吧,下单啊,业务过程选择下单啊第二个度量值呢,那就是我们的订单金额。
10:09
对吧,第三个。聚合逻辑。丧对吧?但是原子指标往往是没有意义的。往往来说它是没有意义的,对吧,那这个时候呢,我们就聊到了叫派生指标,那派生指标它是在这个原子指标基础上要加什么东西啊。就是我们刚才所说的。GV,你单独拎出来对吧,说some一个凹曼,其实它意义不大。对吧,那我们要加,哎,有刚才提到了统计周期业务限定统计力度对吧?我们这个所谓的力度啊,其实它是不是指的是维度的组合呀,就是我们刚才所提到的维表,指的是观察度量值的一个角度,对吧?那这个力度注意啊,我们叫力度,力度其实就是维度组合,对吧?而且呢,维度用的越多,力度就越细。
11:19
维度越少,力度越粗,对吧?由细的力度可以求粗力度,比如说。我已经到计算年月日,我已经到天。这个力度的对吧,我把它这个交易总额求出来,那我能不能求月的,在这个基础上能求月求年的,对吧,但如果第一步你直接求的是年的。那你想到月到天那不可能了。对吧,就像我们说的,维度越多,力度越细,而细的力度指标呢,可以往粗的去求,但是你直接求的是粗的。那就得不到细的了。对吧,得不到谢走了,是这个意思,好,呃,那还有这个统计周期,业务先定,业务先定呢,这个东西有。
12:06
其实加的会比较少,因为它可以直接限定死加一个V条件,相当于对吧,加V条件well你的呃。我们的这个商品到底是谁对吧,这个地区我就限定限定死一个地区对吧,一般来说这个呢,其实比较少,一般用的最多的就是统计周期加统计力度对吧,而产生的这个判断指标,而最后的延伸指标呢,就是它是一般求什么率,而是这个延伸指标是什么呢?就由你已经求得的这个结果。然后呢,把它做一个比值。对吧,啊,相乘相除。然后对于我们获得的结果再加工。对吧,更多的这种在加工过程呢,是求除法,因为我们很多时候一些指标未来要统计出来什么什么率。
13:00
对吧,那这一类的指标呢,就是我们说的叫延伸指标,对吧,那我们整个DWS就是根据这个来的啊,就是目的就有一个减少重复计算。对吧,我不能说每一个指标我去建一张表,那不合适,我们能把可以合并的就合并到一起,对吧,产生了我们的指标体系。啊DWS根据这个来的啊,当然DM跟DWD呢,是根据维度建模。来的对吧,我们分这个实时表,而实时表当中呢,又分什么事物性实时表。周期型。实时表,还有这个累积型值表对吧?啊,这是根据维度建过来的,而DWS根据的是指标提现出来的,最后ADS就比较简单了,ADS一般在工作的时候不需要你去考虑有哪些东西,你知道吧。不太需要你去考虑,因为这个呢,就是公司当中要求你做的指标。
14:05
所以你不用过多的考虑这个事儿,就是直接你知道诶他要求什么指标,而我们ADS就是这个指标对吧?那么最后呢,我们是将这个ADS需要每天同步到我们的MYS里边,最后在我们做一个可视化,对吧?呃,可视化呢,用的是super set做一个展示,那这个过程呢,我们这里面有很多的一个天的指标。按照天统计的一个指标对吧?好,那么每天都要运行,所以还有一个东西就是我们的调度工具,咱们用的是dolphin。对吧,哎,用它来定时去调度的啊,每天呢去执行啊,假如说你七天的任务,或者说这个30天的任务,那就是每30天执行一次呗,类似于这样子的。对吧,可以做到这样的一个事情啊,那每天更多的当然是每天的一个。指标对吧,或者说你要是求的是最近30天的。
15:03
啊,那如果求的是周指标或者月指标,我可以在周一或者说每个月一号去执行一次,如果说我求的是最近30天的,那他照样每天也要执行,因为你最近30天,你哪怕过了一天,你最近30天就变了,对吧,你要去一天加一天,去最老的那一天加上最新的一天,对吧,这是不同的30天啊,当然,呃,另外一个是月指标嘛,那就可以每个月调度一次,对吧?啊,你也可以按月按周去求这个指标也有啊好,这是我们离线数仓整个的一个分层的一个介绍,那实时数仓我可以告诉大家,这个东西呢,分层跟我们离线完全一样,但是用到的框架肯定不一样了,首先就算说计算框架,那在离线数单呢,咱们用的是have。那施术仓你觉得汉还靠谱吗?Have,还能行吗?
16:01
那肯定是显然不行的,因为你效率太低了,对吧,嗯,效率低呢,第一你计算第二个呢。在于你是利用have这边利用HDFS作为存储的。那FS大家都知道它是落盘的。我一次写磁盘,然后呢,从磁盘读出来,这个效率太低了,我们实时不可能这样玩,对吧,所以这里面呢,像它这个存储啊,计算呀都得换。对吧,都得换好,那接下来呢,我们就要讨论一下这个东西我们应该如何去做的,对吧?好,我把这个先截一下,这属于我们离线这边的一个回顾哈。
我来说两句