00:15
呃,好了,各位同学,就是刚才呢,我们已经把这个前两张表EDND都设计完了,然后呢,这一块呢,咱们实际上是存在问题的,呃,哪存在问题,主要是这个ND表当中的这两个人数是存在问题的。哎,这两个人数,一个是最近七天的下单人数,一个是最近30的下载人数,OK,那大家首先得知道啊,人数是怎么定义。对吧,比如说最近七天的下单人数,这个最近七天的下单人数是怎么定义的,就是你最近七天你这一个人,你甭管你下了几次单,我是不是都算一个人数啊,对不对,这个大家应该能想明白的,OK,但是你看一看,我们在算这个七和30的人数,咱是怎么算的,我们是直接把最近一天的这张表当中的七个分区的数据,是不是直接做了一个求和呀,对不对,你求和算人数,这个实际上是可能会存存在一个什么问题啊,重复计算的问题啊,为什么这个道理很简单,咱们假如举举个这样的例子啊,呃,就是假如说,那现在大家来看啊。
01:13
这是我最近一定那张表,OK,这是七个分区,1234567,这是七个分区对不对?然后呢,你会计算出来每个品牌对不对,在这一天的,比如说人数有几个,有十个人对不对?第二天比如说有30个人,那第三天呢,比如说有诶40个人等等等等,每一天都会有一个人数,对吧?但是你有没有考虑过一个这样的情况,就是第一天的这十个人里边可能有张三,第二天这30个人里边呢,是不是也可能有张三呀,对不对?第四第三天这四个人里边也可能会有张三,对不对?OK,那你直接求和,相当于张三,这个人咱是不是算了好几遍呀,对不对,但是我们都知道这个人我只应该算一遍,对不对?所以说这个人数咱直接这么算的话,是存在问题的,OK,好,现在问题来了,怎么解决?嗯,咱们总不能说他有错误对吧?啊,就是你DWS绘本你设计的不好用,这个还能忍对吧,但是你有错误,这个忍不了了啊,这个东西怎么怎么整。
02:07
啊,怎么能解决这个人数重复计算的问题。啊,大家呢,这个思维可以放的更开一点啊,可以放,呃,放开到什么程度呢?就是说你甚至可以推翻我们现在设计的这两张表,对吧?你这个表结构设计的有问题,我需要重新设计,这都行啊,只要能把这个问题来非常完美的解决就行了。嗯。嗯,你要想大改是不是可以改表结构对不对,你要不想大改的话呢,那也可以怎么做呢?你要不想大改,咱们也可以,是不是把这个状态语句调整一下呀,对吧?OK,好,那现在大家想想怎么解决比较好啊,咱们先说先这样吧,咱们先说这个吧,哎,我改一改这个状态语句对不对,咱是不是只是这两个字段的计算有问题,别的应该是没问题的,对吧?好,那现在问一下大家,你说这个怎么算呀,那首先你这俩字俩字段就是两个人数的字段,你肯定不能让他再从一列表里边去算了,因为一列表里边你根本就不知道这这些人数到底是谁,对吧,你根本没法去除对不对?所以说这俩字段你要想求,你得从哪求,就得从事实表里去求的,对吧?好,那你从事表里求的话,你得怎么求呢?你是不是得先拿到最近七天的分区域,拿到最近30的分区,你得拿这样30个这个明细的分区,对吧?说实话这个数据量呢,还是有点大的啊,还是有点大的啊,OK好,弄完之后呢,是不是只是为了计算这样的两个人数那。
03:30
我们就需要去拿这么多的数据啊,对吧,拿过来之后呢,还得怎么做,还得跟原来的这个子查询,是不是再做一个什么拼接的操作啊,操作是不是相对来说有点麻烦呀,对吧?所以这种方案其实不太好,而且它会破坏咱们这个,呃,这个N地表的这个数据装载的一个简洁性,你看咱们现在看这个小三哥多多简洁,对吧?那玩意你为了单独的去算那两个字段,你还需要写一大串乱七八糟的东西,然后再跟他去照这个说实话不太好,对不对,那咱们不采用这种方案,那咱们怎么办呢?
04:02
哎,对,其实有同学提到了一种方案,就是怎么做呢,就是在一地表当中去加一个什么。把用户ID的这个集合放进来对吧?啊,就是加一个字段OK,那我可以标注一下什么东西呢?标注一下就是OK,买过这个品牌的人都有谁是吧?现在是这个意思吧,那这个方案能不能解决呢?能不能解决咱们当前这个问题呢?能不能解决这个问题呢?能不能解决。理论上应该是能解决的,但是这种方案其实不太合适,不太好啊,不太好,他其实也是就是说有点奇怪啊,这种方案就是有点奇怪,对不对,因为我们正常情况下,我们DWS汇总表,我就放什么就完事了,我就放各种度量值的聚合是不就完事了,对吧,然后你还在这给我放一个什么集合,这个说实话不太合适。嗯,还有没有其他的方案。啊,大家就从改表结构这个角度去考虑就行,我怎样设计这个表结构,我能够就是解决咱们这个所谓的呃,这个人数重复计算的一个问题,怎样改这个表结构,能够解能够解决这个问题。
05:13
放集合型,但是不好啊,这个表就会变得很复杂啊。稍微的调整调整,不用大改啊,稍微的调整一下,你就会发现这个问题就能解决,怎么调整一下能解决。不要想的太复杂啊,不要想的太烦,其实很简单。不去重。怎么不集中,不集中什么意思?所有数据全要。怎么说数据就是明细数据吗?明细数据肯定不行,对吧?嗯。怎么设计它比较合适?嗯。
06:01
怎么设计比较?可以从表的力度这个角度去考虑,再体现给大家。啊,从表的力度这个角度去考虑,你可以改变一下表的力度对不对,怎样改变一下表的力度,我就能解决这个问题。啊。哎,其实有同学给咱们提到了这个解决方案了啊,怎么去做,其实我们可以这样做啊,咱现在不是说我算这个人数的时候是存在问题的嘛,对吧?OK,好,那我怎么办呢?我就不算人数了,我就不算人数了,我怎么办呢?我把这个user ID我给你保存在这个位置啊,完了之后呢,当然你U的ID要是在这个位置的话,那我下边这些字段的含义是不是就不一样了呀,对吧对吧,原来你这儿是啥,是各品牌的什么下单次数,下单人数等等等等下单件数,对吧?那我这放一个UID之后,那下边这字段的含义肯定就会发生变化,对不对,那它发生什么样的变化了呢?我们来主播来看一下,首先先看欧尔康的。
07:05
你加上UID之后,那这个东西我就变成啥意思,就是一个人在一天里边购买一个品牌的是不是总次数啊,没问题吧,OK,那完之后下边这个人数,这还有意义吗?就没意义了,对不对,所以说这个人数我就不算它了,那什么时候再算呢?什么时候算呀?你将来咱们最终最终你DWS层的表是要服务于谁的,服务于ADS层的那个指标了,对吧,最终你从DWS层里边取数的时候,对吧?哎,我是不是在现场的去计算那个u.ID就完事了,对吧?那这样一来的话,你不管怎么算,我最终是不是都可以拿到U的ID,我再进行看的第定的是不是肯定是没问题的,这肯定是不会出任何什么重复计算的问题的,那是这样的,所以咱只需要把这张表呢,这个字段加上一个U端ID就行了,当然呃,这个说的更专业一点的话呢,就是就是啥呢,是不是改变一下这张表的力度啊,对吧,因为你加上一个U段ID,那我这张表的力度就由就由原来的品牌力度变成什么力度了,用户品牌力度吧,没问题吧,是这样的,这一点大们要搞清楚好,那实际上咱这解决问题的方案就是这个,就是给他加上一个这个优点ID,其实就能完美的解决这个问题好了,那这个我们把这个呃,把它呢,给它稍微调整一下,这个变成什么,变成什么,变成用户ID啊用户ID好了,那截止到现在呢,那这张表,咱们这个表结构相当于就。
08:26
改完了,但是改完之后呢,我需要再调整一下啊,因为里边是不是咱们的这个表名啊啊或者注释啥的是不是都得变呀,像咱这个表咱叫什么了。这个表我们应该叫做什么力度啊,应该叫做用户品牌力度对不对?OK,在这呢,我来一个user,然后下面这下边呢,我们来一个TM对不对?OK,那这个肯定LC拿过来,这个是不是也得拿过来呀,这个肯定C咱也拿过来,那这边呢,我给它放在哪呢?放在这个位置,诶调整一下这个是不是都OK了,对吧?OK之后这里边也得调整一下,这个改成啥呢?改成是不是用户品牌啊,对吧?诶改成用户品牌的用户品牌行了,那截止到现在呢,我们这张表的这个表结构就算是修改完毕了,当然它要是变了的话,我下边的数据装载是不是也得跟着变呀,对吧?好,那现在咱们给它也调整一下啊,这个数据装载咱们要改的话,现在怎么改呀?
09:15
这怎么改呀,这要改起来其实相对来说也不是特别麻烦,对吧,我们数据是不是还是拿实时表加维度表对不对,只要改的话,只要改哪就行。只要改一下分组是不是就完事了,对不对,我们只需要把原来的这个按照品牌分组改成按照呃用户加品牌分组就行了,那这个改一会儿,我们下节课再改吧,这个时间有点长了,咱们先下课休息一会儿啊,然后咱们下节课再继续啊,好了,那大家休息一会儿。嗯,好了,多同学,就是刚才上节课呢,我们已经就是,呃,就是探讨出来了一种方案,对吧?用于解决谁来着,用于解决那个容人数重复计算的一个问题,对吧?那咱们的方案是什么?实际上最开始的品牌力度的汇总表,咱给它是不是降为这个用户品牌力度啊,对吧?啊这样的,那这个为什么要降成用户品牌力度呢?因为你降成用户品牌力度之后,那表里边咱们是不是就把相当于把这个user ID给保留了下来啊,对吧?那将来我们再用它这张汇总表里的数据去算ADS的指标的时候,我相当于能够直接拿到用户ID对吧?所以说我在算人数的时候,我无论如何都不可能会出现重复计算的问题,对吧?你可以到时候再看看的嘛,对吧,诶,是这样的,咱们解决问题的思路就是这样的,而且咱们这样去做呢,要比同学之,咱们同学就是之前提到一种方案,比如说。
10:31
我在这呢,给你加个什么东西,加一个数组里边呢,我放一大串一个ID,比这个是不是看着要优雅一点的,对吧?那这个表结构咱们没有发生太大的变化,还是那种就是普普通通的汇总表,对不对,只是降了一下力度啊,OK啊,这个大家稍微的理解一下啊,现在接下来咱继续往下进行,下边咱们要做的工作应该是什么呢?它的数据装载语句咱是不是也要进行相应的调整了,对吧?那这个调整的话,我就不再一点点写了,咱们找到最开始那个呃,1D的表的这个数据装载语句,咱给他拿过来,然后大家来看一看,你说这个咱要改的话应该怎么改呀。
11:04
这个其实应该很好改啊,数据装载我给他写一下啊,怎么切不过来呢?数据装载好,那现在咱们要改,首先得先把这个表名改一下,对吧,这个拿过来改成它,那之后下边咱怎么调整啊,我们先从子查询开始调整,呃,那首先我们先看一下哪呢?咱们先看一下,就是这个位置先看这大家来看你说这儿咱们要调整的话,那应该怎么办?呃,这诶这个紫查询怎么怎么这个结构跟咱们之前不是一个风格了呢,完了我可能是按了一个全局的格式化啊,把我前面所有的circle全给它格式化成它这个结构,这个结构看着就是有点乱是吧,那咱们就凑合着看吧,凑合着看吧,啊来,那现在呢,咱们一起来看一下这个东西到底怎么去调整啊来看一看,呃,这是第一个子查询OD那子查询对吧?这个是那个SQ的子查询对吧?好,那咱们现在先改,先改第一个这个要怎么办?这个用不用改。这个应该不用改吧,是不是也是拿他一天的数据就行了,对吧?我们需要商品ID,用户ID,这个得留下来吧,然后这个下面拿过来就OK了,这个不用改,那下来下边这个呢,这个用不用改,这个好像也不用改,对吧,也比较简单啊OOK,唯一需要改的是不是就是改一下这个分组段就行,对吧?所以在这呢,我们给它加上一个是不是user ID,那就完事了,对吧,然后往上翻,那上面呢,咱们要调整一下,这我是不是得多选一个字段出来,对吧?我给他选一个user ID出来没问题吧?那那当然了,有一个字得去掉吧,谁得去掉。
12:27
这个还能要吗?这个咱们就不能要了,对不对,把它去掉,OK,那这个首入状态语句咱们就算是改完了,哎,不是首饰就是这个这个,呃,一地表的这个状态语句是改完了啊,这个相对比较简单,来视频我给它停一下,呃,来各位同学,那现在ED表咱们改完了,那是不是与之对应的那个ND表咱也要稍微的调整一下呀,对不对?OK,那接下来咱们调整一下那个诶ND啊来我们去找一下N地表的这个状态语句和它的键表语句,这个呢,咱们就直接拿过来一块改一下得了啊来CTRLC也是放在下边这个2.0版本里边来拿过来,首先我们先改它的表名,这个表名呢,我们就不能再叫做品牌了,应该叫做用户品牌力度对吧?CTRLC拿过来放在这,这个也放在这儿,那这儿呢也给它调整一下,呃,把这加上一个用户啊,OK好了,呃,这个表名处理完了,那接下来是不是就是处理里边的字段,字段怎么处理,是不是那俩人数咱就不能要了,对吧?先把两个人数去掉,哎,这个人数咱们也给它去掉,那上边还得再加上一个什么,加上一个UID对不对,那现在呢,我们CTRL。
13:27
C拿过来CTRLV,呃,然后呢,我们稍微的调整一下啊,拿过来,那这个改成是不是user ID就OK了呀,对吧?那后边呢,我们给它改成用户ID好,那其他的东西咱们用不用调整,其他的东西咱应该是不需要调整的吧,OK啊好了,那截止到现在,那这个表咱就改完了,改完之后改下边的数据装载,数据装载大家是怎么改。这个我们用再去什么加一个什么那个明细表的子查询,再去照们用吗?不用,我们只需要稍微的调整一下就行,对吧?还是拿1亿的数据对不对,还是拿30个分区,然后呢,这儿是不是只需要改变一下这个分组,呃就就完事来对吧?加上一个user下ID,好那当然现在有没有UID,呃,这个表咱没改啊,应该改成哪大表,改成刚才咱们的那个user品牌力度的对吧?诶这会就有的user ID吧?好,那拿到它之后,上边咱是不是得先多选出一个user ID来啊对吧?UID加品牌,然后呢,把这两个人数是不是去掉就行了,对吧?你看我们不用再对人数直接求和了,是不是这里边这个计算逻辑就不会出问题啊对吧?那当然上面这儿这个目标表咱也要改一下,改成用户品牌力度的一个ND啊,OK好,那截止到现在,那咱这个ND表的这个修改操作也就做完了,行了,完成之后视频我给他停一下啊。
我来说两句