00:00
咱们开始啊,那评价时表呢,首先大家得明确一行数据指来的是什么,评价时表里边一行数据就是一次评价一次评价记录啊,只要有人评价了某一件商品,那OK,我就会在评价尺表当中有一行数据跟他对应啊,这是呃,每行数据所谓也是它的力度呗。啊那第二点这个表当中字段有什么啊,维度外界我们会跟哪个维度有关系,时间,用户、商品是不是有关系的呀?啊那再问一下大家,你说跟地区能不能关联上?能不能肯定也是能的,因为你退你评价是不是肯定也是评价的某一个订单呢,对不对,所以其实也是能管得上的,咱这儿也是没有加上,其实应该加啊,应该加好,那这点咱们考虑清楚,行,那这个完事之后,咱们接着往下走啊,接着往下走。呃,那这没有加,因为没有加,没有加的话呢,诶咱们考虑一下吧,咱们考虑如果要加的话,你说咱们这个怎么搞啊,呃,包括刚才那个退款是表也也是一样的,咱们刚才说跟o join一下是不是就可以了,那这个join的时候,你还得考虑一个问题呢,我刚想到啊,你考虑个问题。
01:05
啊来,咱们琢磨琢磨啊,这个我要真的要加怎么加。啊,这个真要加的话怎么加,比如说我现在我就是要把这个地区ID给他。加上大家想想这块怎么做啊。跟order进行join对不对啊,那首先咱们得明确这张这张表它是一个什么表。是一个数性时表,数性师表是增量表对不对啊,那每天我把这个,比如说我把今天这一天的评价记录是不是拿到了呀,对不对,拿到之后呢,我需要哎从这一天的评价记录里边是不是找一个order ID对不对,然后根据older ID去join order info对不对?那问一下大家join order info哪一天的数据。你要照的话,是不是得照older info在哪一层呢?这以后拿一层。Ods呗,现在是不是只能考虑ods啊,对不对,你照ods层的O啊,那你说这个直接照当天分区行不行。
02:09
行不行,可不可以。你得考虑考虑啊,这个行不行啊。有同学考虑到了,想到了我评价的订单,注意啊,你评价的订单。哎,他是当天的订单吗。是吗?哎,不是对不对啊,那所以说你这个撞的时候呢,是不是有可能是撞不上的呀,这个评价这块有可能是撞不上的。但是退款那个能不能照上。退款这能不能占上啊,比如说我退款,我是不是退的肯定是某个订单,对不对啊,那这个能不能转上。这个其实可以的,这行啊,这来还是有点区别的,为什么啊,因为你想一想退款这个是不是属于咱们订单周期当中的一部分啊,咱订单周期周期我们那你可以看一下咱们那个表啊来我们去找一下那个呃买数。
03:06
啊,咱们这个一个订单的状态,状态周期,咱们都有哪些字段,都有哪些类型呢?咱们看一下啊,哪些阶段咱们看一下啊。这其实就是咱们具体的业务逻辑了啊,你得考虑具体的业务逻辑了。比较慢啊,咱们稍微等诶看这边吧,咱们ods不是也有贝斯DC是吧,咱们点那个看这个啊,啊这个也不快,稍微等会吧。我这个还是第第一次查,可能是啊,来出来了,来看一下啊,那这几个KV建筑队这是什么?这是咱们那个,呃,那个订单状态的几个状态呀,对吧?Order standard几个状态这里边有什么?是不是有退款中,有退款完成对不对?那假如说你今天对某一个订单发起退款,那这个订单的状态会怎么样,会变化对吧?呃,会变化成退款中啊,那既然会变成退款中,那你说那你今天的就是你ODO的ods层的那个order info当中啊,它当天的分区里边是不是就会有这个变化的订单啊。
04:08
对不对,那所以说你退款的订单在ods层的o info当中,哎,当天分区里边能不能找到,能找到这个是可以的,但是这个评价它就不好说了,对不对,因为你对一个订单里边的某个商品进行评价,那这个订单它会发生变化吗?它不会变化对不对啊,你对他评价它的状态是不会变的啊,你状态不会变啊,那这样一来的话呢。那你在ods层的order in fo当天的分区当中,你就有可能找不到你评价的这个订单了。对不对啊,找不到,哎,那这个province ID你就关联不上。对不对啊,是这样的啊,所以说你去招的时候,你得考虑这些问题的,那招不上,但实际上我这个地区ID和咱们评价,实际上是能够有这个业务逻辑的,有业务逻辑关系的,对吧,那我这要非得加上province ID,那咱们这得怎么去解决这个问题呢?
05:06
怎么解决呀?咋解决?那可以想想怎么解决啊。琢磨琢磨怎么解决?你join是不是join,咱们这当天的分区join OS啊,Order in four当天的分区是不是有可能拿不到我今天评价的订单,既然join当天的不行,那我找你全表行不行?所以你知道全表啊,这块是肯定能找到的,对不对,但这个性能肯定不好,对吧,咱们随着这个数据仓库的这个时间的这个推移,咱们最多可以保留多长时间的数据啊,你看工资具体要求,我可能保留一年的,我可能保留半年的,那假如说你要保留一年。300多个分区对不对,这么大的表才能去做,那肯定是有问题的啊,所以说肯定不能上全表啊,这时候咱们就可以根据具体的业务逻辑去优化一下了啊,你可以想一想,我们一个订单你下完单之后对不对,你有多长的时间可以留给你去评价这个订单,订单完成之后多长时间。
06:14
这不应该是有一定的时间的呀,对不对,这个具体时间咱们这个比如说假如说是15天啊,假如15天或者假如说一周对不对,因为你过期之后,它你是不是就评价不了了呀,啊过期之后它会有一个好像有一个自动评价对吧?啊是这样的,所以说你这个评价的订单,它最多是在。咱们前面多少天完成的呀,比如说15天完成的,那你就可以只照什么呀。只join哎,从今天往前数十五天,只照这15天的这个数据是不是就可以,哎,你就能找到。能理解吧啊,你就不需要去照卷表了啊,就是咱们去照这些啊表的时候,咱们需要考虑到这个表的这个特殊情况啊,然后再结合一些业务逻辑,然后呢去做一些这个优化等等等等是这样的啊,所以这边咱这没加,要加的话呢,你就得这么去做啊,就这么去做啊啊这是关于这个地区ID啊,咱们这简单说一下啊行,那这个咱不再多说了啊,那接下来往下走,那现在咱们因为这张表呢,目前只有user ID只有呃这个商品ID啊,还有这个第时间ID只有T3,那咱们就按照这个文档来就行了,咱们这就不改了,要是这儿改的话,呃,因为咱们整个后边数仓是不是都得改啊,呃,就是前面不能改,牵一发动全身就属于啊就是比较,呃,就影响比较大,咱这就不改了,大家要知道,就是我们要做的话,怎么做就行了啊,咱就会做就行啊行,那接下来咱们把这个键面语句呢拿过来啊,仔细的看一下啊来CTRLC。
07:46
呃,找到这个位置来看一下,呃,找维度外键啊,咱们一起找这个UID啊,商品ID,那还有这个时间ID啊,那接下来呢,咱们找度量值。哎,这个实时表它有没有度量值。
08:01
他一看没有没有什么金额,没有件数,没有个数,对不对啊,那这个东西谁是谁是度量值啊。诶有的说,诶评价是度量值,这个评价是度量值,你得看这个评价字段是什么啊,这个评价字段是什么呀?评价字段其实它里边存的就是这玩意儿,刚才咱们看了啊,是不是有一个贝斯DC这张表来我们打开看一下啊,它其实里边存的就是这个。120112021203104这啥呀,就你这条评价是好评中评差评还是自动评价,你看是不是有一个自动评价呀啊过期自动评价。啊,他其实存的是这玩意,这玩意是度量值吗。这是啥呀?其实也是维度字段呀,对不?这相当于是对这个评价的一个描述,你是好评还是中评还是差评,对不对,它也是维度字段,所以这个呢,也不是度量值,谁是度量值在这张表当中。这表当中没有没有明显的度量值,那就是啥呀,行数呗啊或者是次数对不对,比如说我去统计统计什么统计好评有多少个,中评多少个,差评有多少个,或者我去统计什么好评率差评率对不对啊,那是不是都是按照这个次数或行数去统计啊,对不对?所以说它没有明显的度量值,有一个隐含的度量值啊,就是行数或者次数啊,就是这个意思啊,那我们大家呢,把这个搞清楚就可以了啊好,这是这张表当中的维度字段和度量值字段啊行,它这个搞完完之后,接下来我们把这个数据呢,往里边导一下啊,这个咱们就不再去对比了,大家会发现啊,它也是从ods层的直接拿过来的啊,这个字段呢,是一对应的啊,啊你要加proce ID呢,还得去join咱们order ino啊,那张表的多少多少个分区,比如说15个分区啊,是这样的啊啊,那把这个记住就可以了啊,这是这张表,来把视频录一下。
我来说两句