00:00
好,那截止到上午为止呢,我们已经把dim层全部都。搞定了啊,当然还差一点,就是说我们现在呢,只创建了三张表。对吧,还有历史数据呢,也都没有放进去,也就是说正常来说,我们要将这个什么base trademark里边,诶那这两条是我们自己做测试的,那这个肯定不要对吧?呃,这个一也一样的,那我们要放这个17条对吧?呃二呢,一样的放113条啊,这是我们自己。多的数据啊,这是我们自己多的数据对吧?好,那要把这些东西放进去,而且呢,我们未来pix里边肯定不止这么三张表。还有更多。对吧,啊,还有更多啊,但是呢,现在我们先不处理这个事儿啊,把代码搞定了,到后面我们要用到的时候,我们再跟大家说这个东西应该怎么做,所以呢,你现在也不用着急,诶是不是说那这个数据我们导进来啊,那你先不用管,后面用到的时候呢,会跟大家说有这个呃,初始化的脚本啊,我们到时候会给大家去弄啊,现在你不用管。
01:10
那也就是说我们的D层全部都已经。结束了对吧,那有同学已经跑完。跑通了啊,写完跑通了啊,那接下来呢,我们就应该是这个DWD层。啊,那DWD层呢,包括两块数据吧,第一个日志数据。对吧,日志数据第二个咱们的。业务数据里边的事实表。对吧,因为我们DM层只是把业务数据当中的维表给他写到了。Phoenix。好,那对于我们的实时表呢,我们还要把它写到卡夫卡。对吧,我们要写到卡夫卡啊,那这个呢,就分两块啊呃,总体来看呢,我们的日志数据啊,呃,就这几个啊,日志数据呢,我们都是放在这个叫流量域。
02:02
流量域啊,这是属于我们的日志数据,业务数据呢,那分为有交易域。对吧,有订单。加购订单对吧,有下订单取消订单,这个都是属于交易日的交易,还有呢,我们的。支付。支付对吧,啊,然后呢,退单退款这个都属于我们的交易对吧,跟这个订单相关的,从加购开始。加入购物车。对吧,然后呢下单。退单支付退款对吧,这几个业务线我们挑了几个,当然还有其他的。啊,还会有其他的业务线,但是我们也没有把所有的都拿过来,对吧?啊好呃,这交易,然后之后呢,工具,工具里边呢,那无非就是优惠券的。领券和使用,使用呢分为两块,一个呢是下单的时候使用,一个呢是支付的时候去使用的。
03:05
啊,一个下单一个支付对吧,那还有互动语就是收藏与评价,最后。是用户表单拎出来一个业务就是注册这个逻辑对吧,因为用户表呢,呃,虽然我们知道用户呢,作为一个维度,但是我们知道当我们去。新增一个用户,那也是用户的操作对吧,他呢会在你平台上去注册,那对于注册这个我们也认为它是一个事实。好,那我们就可以看一下,诶,每天新增多少用户,就新注册的有多少用户对吧?好,那这个呢,我们来改一下这个括号啊。好,呃,那这是还是跟我们离线收藏一样,对吧,分成这个数据域啊,那呃,只有前三个是属于我们的流量域,也就是说是日志数据啊,那后面这么多都属于。
04:05
其他的数据域的也来自于我们的业务数据啊,那我们先要搞定这个。流量域啊,这是我们整体的一个概括,你要知道一下我们里面包括什么东西,对吧?那么接下来我们所写的这十十六张表。对吧,啊,这16张表的数据呢,都来自于我们的叫topic DB以及topic log这两个主题,都是由这两个主题。分出来的。因为现在我们的topic log里边,它有五种日志数据。对吧,而我们的topic DB里边,它有46张表的数据。啊,虽然我们消费过topic DB,然后呢,将它里边的为表读出来,诶写到。Phoenix。
05:01
但是。我如果换一个消费者组去消费topic DB这个主题,他照样能消费到46个表的主题啊,前提是我们造数据都得造对吧?啊,他就都能消费得到啊,好,这是我们整体的一个概述,大家了解一下,我们分了有数据域里边总共有做哪些事情。OK了。好。那接下来呢,我们就先聊这个流量语,也就是说我或者或或者我们叫这个日志数据,对吧,日志数据呢。我们是有这个。五种。对吧,那其实业务数据呢,它也有很多种,这个地方呢,我们就有两种不同的。处理方案了。啊,对于DWD层啊,有两种不同的处理方案。呃,第一个是。我就不写那个什么域了,因为写域的话,第二个业务数据那边太多了,对吧?啊有流量域互动域。
06:06
啊,然后还有这个注册用户域注册对吧,这些东西啊比较多,我们就不聊这个啊,我们就直接我们就简单一点,我们就分日志数据啊。和这个什么呢。业务数据啊,业务数据。呃,那我们知道这个呢是有五种对吧,目前来说我们有五种啊,这个呢是N种啊,我也没去数,但是呢,呃,他把46张表去掉,我们的为表对吧,再去掉有一些可能我们不需要。啊,那。也得有十几张吧,刚才我们看到对吧,十几个需求啊,十几张,那我们写N种啊,这个都是一样的,哎,都是多种啊,目前呢,那么日志数据呢,这五种都在一个叫topic log的主题里边。而我们的业务数据,它都在一个叫topic DB啊这个主题里边,对吧,这个呢,它们是相似的。
07:08
好,那也在想着,那接下来的处理方案应该是一样的。啊,那我问大家。现在我们要做什么事呢?很简单啊。嗯,你看你这个topic log里面呢,有五种数据。那这五种的结构是一样吗?还是不一样?大家告诉我。这五种日志还记得哪五种吗?我之前问过大家对吧,我就。不然大家就说了。啊,我就直接写一下,这里面分别有什么呢?有启动。页面。对吧,曝光。动作以及错误。这五种吧,而这个N种呢,是所有的。需要。处理的。
08:00
40秒。对吧,啊,这是里边的内容啊,那这五种呢,肯定它这个什么结构是不一样的。那你说我们DWD层叫明细数据层,你说应该应该干什么事?你说应该干什么事儿对不对?那我们对于这个DW层应该干什么事?最核心的一件事情做什么?啊,班长说,见表。你觉得我们要做什么事?其实最重要的一个业务就是什么呀,叫。
09:00
拆分。能能理解吗?这个地方所写的拆分能理解吗?最重要的一件事情,我们要做一个事情叫拆分。那因为刚才我们提到了这玩意儿呢,在。Topic的一个主题。而。在topic DB这一个主题对吧?啊,一个日志数据,一个业务数据。那而且我刚才问的。大家都说这个它的一个格式是不一样的,那未来我要对这个数据。聚合分析对吧,做这样的操作,那你结构不一样好做吗?不好做对吧,起码我们要把这些数据怎么样。把它。拆分开。对吧?啊,我们要把这个数据给它拆分开,就类似于我们的dim层一个道理。我们不光要把维表的数据提取出来,我们要写到不同的Phoenix表里边,那一样的DWD层呢,我们是用用卡夫卡来做数据传输的,对吧,所以呢,我们要把这些数据是不是应该写到不同的。
10:13
卡夫卡主题里边啊,当然班长所说的建表也可以,对吧,我们叫创建主题或者叫建表,就是要把这些日志。是不是给他拆分开呀,你不能还放在一个主题了,很明显不利于我们后续去。使用。对吧,哎,那我们要把这个数据呢,全部拆开。有没有问题?就是我们最核心的业务逻辑是不是这个事情。对吗?OK吧?
11:03
嗯,反正每一次啊,就是不愿意扣。啊,那我知道了,从后面我我开始。就提问吧,好吧,我就直接找人去提问了啊。嗯。啊,一说提问一就变多了啊。好,那很明显呢,我们要拆开。嗯,那拆开放到不同的一个。主题里边。啊,那我们。想一下这个事情。对吧。呃。因为我们很明显啊,业务数据呢,你不光要拆开,我们在离线数仓里边知道我们业务数据呢,在DW层还可以做这个叫。维度退化。对吧,而且选择。
12:01
实时表,也就业务过程的时候。我们要挑这个什么最细力度的,同时把它相关的一些实时表还要聚合到一起,也就是说这里边儿呢,还会涉及到join对吧?啊举一个简单的例子,在你们离线收藏里边,业务数据呢,这边有订单表。还有这个订单明细表对吧,就有可能我们在DWD层这一块啊,我们不光要把数据。给它拆开,有时候呢,我们多张这个实时表,还要根据业务线把它关联到一起。大家想一下,是不是之前我们做过这个事儿的,对吧?啊,订单,订单明细,甚至还有订单。明细购物券表对吧,还有订单明细活动表,你回想一下离线数仓,那这个这四张表是不是都属于咱们的什么。
13:07
都属于咱们的订单业务线吧。对吧,那它是同一个业务过程,那我们要把数据全部合并到一起。合并到一起。对吧。好,那同时呢,我们在离线收藏里边,你像业务这边啊,还做的有什么叫维度。退化。对吧?啊,这些名词我不知道大家是否还有印象啊,那好好的提这个事干什么呢?这就说明我们。DWD层,不光要把这每一张表给它拆开。对于有一些表啊,我们还需要再做加工对吧,都是明细啊,我们还需要再做加工啊,那么这边处理方案呢,就有两种不同的。因为我们想啊。
14:01
比如说。这张表。这个需求,我们要把这些东西呢,把它合并到一起,如果按照我们刚才所说,我们先拆开,然后再去消费,再去合,那会怎么样呢?比如说我先消费叫topic DB这个主题,对吧,然后呢,拆成1234,我就先考虑这四张表啊。先考虑这四张表订单。All in all the detail。All the detail carbon对吧,All the detail activity啊,就是这四张表,然后呢,放到分别放到这四个不同的主题里边,这是all。Info对吧?I啊,Info啊,呃,All the detail对吧?然后呢,呃,All the detail carbon,呃,然后all the detail activity OA啊,这四个主题,接下来呢,我们要形成订单。这个事实,那我再搞一个程序,弗格对吧,把这四个主题给他。
15:00
消费过来。然后呢,把它干一个什么事所。对吧,诶写到。订单表里边啊,订单主题啊,OK,咱们可以这样去做,这是一种方案。对吧,这是一种方案啊,那注意这是卡夫卡主题啊。我们先拆,然后呢再去消费结合,或者还有一种方式,还有一种方式什么呢?来看啊,我这个地方还是这个DB。还是这个主题对吧,然后呢,我干什么事,我这样来看啊,我把这画小一,这还是我们的DB主题对吧,接下来呢,我直接用flink。这边注意是任务。我去消费这个主题,然后这里面呢,我做四次过滤。我做四次过滤,然后呢,分别把这个数据过滤出来,直接在这里面过滤完之后做什么做join好,然后写到这个订单。
16:05
写到订单里边。呃,这两种方案是不是都可以?能明白这两种方案吗?对吧,或者说呢,我这样给大家写啊来。这边呢,我们定了方案啊,消费这个ods主题。数据对吧,这是第一步啊,第二步呢,我们拆分。多个啊,就是按照直接按照表。拆分。按照表拆分写入。不同的主题。啊,猪头了啊主题。对吧,然后再。消费不同主题。数据关联。
17:04
啊在呢,写到主题。协助开发主题,这是一个思路对吧?那第二个思路呢,就是我们消费这个ods主题的数据,接下来干什么呢?谁要?长靴。过滤。想要的数据直接过去想要的数据并关联。啊并关联,然后呢写入。卡夫卡对应的主题。啊,就是两种不同的方案,呃,就目前而言,这两种方案是不是都可以。能明白吗?就是第一个呢,我们先。这两个区别就在于什么,第一个是不是多经过了一次卡夫卡呀?
18:02
对吧,我把数据消费到,然后呢,先我不管你什么事时表什么业务,对吧,我不管这个,反正呢,我就按表分。我就把不同的表写到不同的主题,接下来你DW层要把有一些事实表要去做关联,说还有的时候要去做这个什么维度退化,那你再去消费这个主题,你就做你的这个事儿。对吧,还有一种呢,就是我直接消费ods主题数据,Ods里面不是有所有的表吗?对吧,我去写过滤,我就过滤出来我当前这个实时表当中,我所需要的这几张表,对吧。然后呢,你关联关联好之后呢,写出去。这两种方案能听懂吗?其实。它俩的区别就在于第一个是不是多经过了一次,卡不卡呀。
19:07
对吧。好,那。大家觉得?我们该用哪一种呢?这两种确实都是可行的方案,对吧?那我们应该用哪一种呢?或者大家觉得哪一种更好一些呢?大家都认为第一种是吧。为什么?都经过这一次,卡不卡更好一点是吧?
20:01
其实我们想它们的一个区别在于什么啊,区别呢,我们想啊。呃,他。对吧,一种方式啊。第一种方式。第二种,收据量太大了。啊,哎,大家。牛总get到里边一个点对吧,第一种方案呢,咱们先拆,然后再取。那每一次。从这个时候取的时候都是我们怎么样。想要的这个数据对吧,好,而第二种呢。第二种,我直接消费ods数据,然后取我们想要的,那比如说我呢,Ods有46张表,对吧,我只要其中两三张表。我A需求B需求,所有的需求都要两三张,但是你消费的数据是不是整个ods全量的数据啊。
21:01
对吧,他要的是整个全量的数据啊,就像牛总所说,第二种方案呢,你消费到的数据量太大了。能明白这当中一个点吗?那第一种就没有缺点吗?第一种相对于第二种,有没有什么缺点啊?啊。就是第一种相对于第二种有什么缺点吗?它没有缺点,它就是那么完美的。嗯,你想想看。代代代码写起来累。啊,代码写起来累,不是他的缺点,是你的缺点。啊。你写的累,人家又不累。你换个人写,人家就不累了。这是你的缺点。不是方案的缺点。啊。
22:01
买不起东西对吧?穷永远是你的贵,不是产品的错啊,错的是什么,是你穷啊。就是你多经过一次卡夫卡,你想想看,效率是不是会受到影响啊。能明白吧,你经多经过了一次框架呀,所以呢,这种就是相对来说时效性会比这种差一些,但是呢,这种你消费的数据每一次都特别大,好,那刚好我们这里边呢,两种都用,为什么呢?因为我们想啊,行为数据就是我们的日志数据,数据量是不是远远大于业务数据。那你业务数据才有多少呢?对吧,你除了双11这种时候,对吧,啊,双11还有618订单的非常多,那平常。而且对于一个中小型公司来说。就算你双十一六幺八,它的数据量也不是特别的大。对吧,所以呢,就像牛总所说,第二种方案,他虽然消费的数据量很大,但是我本来业务数据数据量就不大,那就不会有这个问题了。
23:10
如果说你这个日志数据啊。你每天对吧,呃,很大很大的量,然后呢,你还不拆分。你还不做拆分?你要用到启动,你去消费整个的,然后启动过滤出来,对吧,你用页面你也去消费整个的,然后把页面过滤出来。啊,同理,你用这个曝光,你要消费整个的日志数据,把曝光单独的过滤出来。那这个数据量就大了。对吧,所以呢,这两种方案不是完全的就是说一种碾压另外一种,而是说他们有优缺点,而且牛总也把这个缺点说出来了,对吧,主要是第二种的一个缺点啊,数量太大,但是如果说我们数据量小的时候。是不是也可以用第二种啊,因为它的一个效率会更高一些。
24:02
对吧,啊,它的效率会更高一些,大家想是不是。对吧,好,所以呢,咱们第一种。哎,往这一放对吧,第二个呢,不用动了,刚好我们两种方案对应两个不同的种类的数据。搞定了。OK吗?能听懂了,未来我们就主要的就按照这种方式来做处理了哈。OK不OK,扣一啊。给点反馈啊,咱们班确实闷啊。都没有气氛组的啊,没有出来搞气氛的是吧。好,那咱们就把这个截掉,这是我们整体的一个说明啊。
我来说两句