00:00
来段吧,这不知不觉咱现在已经到第五个了是吧,其实今天一过,同学们等后面这两天东西呢,可能我复制粘贴的东西更多一点对吧,复制粘贴东西更多,包括今天对吧?今天呢,我到时候问你们是吧,我这个需不需要写对吧?然后你们说需要的话我就写一写,不需要的话我就CTRLCCTRLV是吧,我来让你们见识见中CTRLCCTRLV能力啊好了,来来来看一看同学们,呃,那么从现在开始呢,我们啊要建立新的需求,这个什么呢?这个呢是订单明细实付金额分摊啊,那么这个东西是怎么回事呢?什么叫实付进行分摊对吧?那么咱先来看我们这个需求分析对吧?你要想弄明白啊,这个实付进行分摊的话,那么这个时候呢,你必须啊,得把我们现在订单啊,它里面的一些我们的一个这个字段,它们之间的关系呢给弄明白啊,把订单它里面字段的关系弄明白。
01:00
那么另外一个订单和订单明细,他们之间的关系呢?那你也得闹明白,首先同学们,咱们先来看谁呢?先来看我们一个叫order in inform对吧,这个订单表对吧?把这订单表呢打开,那么打开订单表之后啊,那么这里咱们呢,其实看到这里面有很多字段,其中呢,有几个是关于描述我们的金额的,对吧?关于描述金额的有什么总金额对吧?总金额然后呢,除了总金额之外,那么这里呢,还有对吧,叫什么优惠金额,以及呢,我们这个原价金额,然后还有一个是我们的运费对吧?那么咱们现在呢,大家想一想,这个总金额是什么意思,是不是你最后你实际花了多少钱呀,对吧?那么它应该等于什么呢?是不是应该是你这个商品它本身原价多少钱,是不是应该等于原价金额,然后再减去什么呢?减去优惠金额,然后再加上一个什么,再加上运费,是不是有这么一个关系啊,那这是第一个啊,大家明白,然后接下来那我们现在的下单的时候啊。
02:00
那我们会往订单表里边插销数据,但是一个订单里面是不是有可能包含多个商品啊,对吧?那么咱们管它叫什么呢?叫订单明细或者订单项,对吧?那么咱们这里是不是有单独的表去维护的呀,对吧?那么除了订单之外还有什么呢?还有一个我们订单明细表,对叫order detail,那么咱们现在这个order detail里边,那它是怎么来设计的,那你应该知道我当前的这个order detail这订单项,它肯定属于某一个订单。对,这个关系应该能理解吧,订单它下边是不是应该是有我多个咱们订单明细啊,他们应该是一对多的关系吧,对吧?一个订单有多个订单明细,所以说呢,在咱们的订单明细这里,它呢属于哪个订单,它的订单编号应该是有的,对吧?然后接下来那么咱们现在订单里面放的什么时候放的一个个商品啊,那有没有可能我这样说,我现在呢,下了一个订单,然后接下来在咱们这一个订单里边,我呀买了一个A商品,买了几件呢?买了三件,买了B商品买了两件,买C商品买了五件,那这些是不是都是一个个的订单项,都属于什么,都属于我们现在O10订单里边的,对吧?那么咱们订单项和订单他们之间有没有什么关系呢?应该有吧,那么咱们现在在订单明细里边,它放在什么呢?它放在商品以及商品的数量,同时呢,咱们现在在咱们这里边是不是还有一个价钱呀。
03:27
对吧,就是你当前这个商品买的时候,你多少钱对吧?比如说我A啊,这个商品买了三个多少钱买的呢?比如说是100块钱买的这个呢,比如说90块钱买的这个呢,比如说是我80块钱买的,对吧,这是80块钱买的对吧?那大家想一想,我们现在做一个订单来讲,那么它的一个原价金额啊,那应该等于什么呢?是不是等于咱们现在订单明细里边每一个商品的单价乘以数量它的一个总和呀。这个关系有没有,比如说你看我现在在咱们这里边,我一个商品的这个商品A,对这个买了几个呢?买了三个,对一共一个多少钱,对一共花了就111个三,一个100块钱,一共花了是不是300块钱,然后接下来呢,咱这个币呢,对这个两个一个90块钱,这是候一共花了180块钱,然后这个呢,一共是我们这个五个,然后一个是80,一共花了400块钱,对吧,那大家想一想,你当前这个订单对吧,一共花多少钱,那应该是四百七百,然后八百八倍。
04:26
对这个八百八是谁,是不是就咱们订单表里的原价金额呀。对吧,要把这个关系给弄明白啊,要把这个关系弄明白,其实除了啊就是咱们订单里边说哎我这几个对吧,什么原价金额等于什么这个对这这么什么实付金额等于原来金额减去什么用户金额加运费,除了这个之外呢,在这里它其实呢,和它也有关系对吧?和它有关系对吧?来简单看一看,比如说我现在在咱们这里边有我哪我当前的商品对吧?啊当前订单预期它属于哪个订单,然后进来你买的什么商品啊,商品名称是什么,商品的价钱是什么,商品的数量买了多少对吧?那这样的话,到时候咱们当前这个商品优化多少钱,我应该知道的,对吧?那么把当前这个订单里边所有的,比如说3655对吧,那么3655现在呢,这里边这两个商品是不是都属于一个订单的呀,对吧,把这两个我们的明细它的一个价钱加起来,那其实呢,就是我们3655这个订单它的一个原价金额吧。
05:28
这个呢要弄明白啊,这个关系对吧?要弄明白好了,那么我们现在呢,说把这个关系弄明白之后呢,来看我们这个分析对吧?我们分析说主订单的一个应付金额就实付金额,对吧?那咱们这样是all,然后呢,Total amount,那一般的是由所有订单明细的一个商品单价这些数量来进行一个汇总给拿到的,这是刚才咱们看到这些东西,但是呢,啊,咱们在买东西的时候啊,那有可能有些优惠啊,有什么运惠对吧?那么这些它并不是以订单明细为单位进行统计的,它都是以什么呢?以订单作为单位来进行计算,所以说呢,那么咱们要减去我们这个优惠啊,再加上运费会得到一个最终的一个金额,这个关系呢要弄明白,但问题是啊,我们有的时候呢,在于什么呀,在统计的时候,对我想看一看这个商品,呃,分担到我现在优惠完之后,那分担到我订单里面每一个商品的话,那么这个商品呢,它分。
06:29
赚了多少钱对吧?哎,我我希望以什么,我希望不是以订单都要为单位进行统计了,我是以咱们订单里边每一个明细的商品来进行统计,那么这个时候呢,你就得把优惠呀,运费呀,分摊到咱们购买的每个商品里边,对吧?什么意思啊,什么意思对吧,比如说咱们现在在里边。我我现在呢,去下这个订单,对这个订单的O1对吧,然后买了三个商品ABC啊,买了三个商品ABC对吧,然后这三个商品一共花了我多少钱呢?一共花了我90块钱。
07:05
啊,一共花我90块钱啊,然后呢,没有邮费啊,没没有邮费,对,但是呢,有十块钱运费啊,有十块钱运费对吧?那大家想想,我现在如果有十块钱运费的话,最终我要这个付多少钱,我是在付100块钱呀,对吧,那付100块钱,大家想想你当前的十块钱运费是给谁的,是给A类商品的吗?不是吧,你是给B的商品是不也不是,你这十块钱运费是针对谁,是不是针对你当前这个O1的订单的呀,对吧?那你说我针对O1这个订单,那么他多花了十块钱的一个运费,那么如果说分摊到我们现在,对吧,这个ABC的每个商品上这个多少钱呢?对吧?那这里是不是咱们得去算一算,这个其实就我们实谱分摊啊,它大概的一个我们的个思路,对大思路,那么大概咱们整体的业务设计应该什么样的,简单看一下这个图,对这个图呢,其实呢,这个和咱前面的字数是一样的,那不一样地方呢,大家看一看,对,和咱们原来不一样地方在哪。
08:03
应该多些东西啊对,因为咱们现在大家想一想,我现在要想统计我这个分摊的话,你光有订单这个东西是不是不太合适了,你是不是还得有订单明细呀,我的订单明细说老师这个东西是事实表还是维度表呢?你想一想,你把这个订单明细作为维度表是不是不太合适,对吧,因为咱们现在是一般说什么时候维度表不不太经常发生变化。对吧,他应该先于我们的实时表存在,对吧,你能保证到订单明细肯定比订单出现的早嘛,这肯定保证不了,对吧?所以说呢,这个东西它也是一个实时表,那如果也实时表的话,那咱们现在是不是也应该是从我的卡卡里边,从那对应的订单明细主题里边把这东西拿到,对吧?那也就是说咱们现在啊,从我们的ods层里边,那么要去拿我们订单,拿订单明细这个订单呢?那我们已经把这个SPA群程序写好了,而且是不是和我们用户啊省份已经做好维度关联了呀,对吧?那接下来我要写一个程序干什么呢?从我们的卡卡里边呀,那么把订单明细的数据给拿到,要拿到,那么拿到订单明细之后呢,那这里还不行,同学们,那么在我订单明细里边,大家看我这里边有些东西什么呢?SKU的ID,这个是代表商品的ID啊,你说你光知道商品的名这个ID,你知道当前这个商品它是什么牌子的吗。
09:29
对吧,比如说我现在想就统计品牌了,那你光知道咱们商品ID,你知道什么品牌的吗?你是不是不知道,你知道咱商品的品类是什么吗?你是不也不知道你的商品的FP又是什么吗?你是不是也不知道,所以说这些东西我是不是也应该对吧?把这个订单拿过来之后,然后让他和我们那个什么商品,然后和什么咱们这个品牌和什么品类以及SPU来进行一个维度关联呀,对吧?所以说这块啊,那么我现在在统计的时候,为了以后呢,在咱统计的时候有多个维度,对吧,能够灵活咱们统计,所以说呢,那我不是光拿到咱订单数据了,对吧?那我需要干什么呢?我需要用订单明细和咱们商品品牌,然后品类以及IPU的这些维度表呢,来进行一个关联,那么关联完了之后,大家想一想,你现在这是在一个流里边,然后你这里边也在一个流里边,对吧?你现在呢,是我们这个商品明细的宽表,你这个呢,是商品的一个宽表都做关联了,但是咱们两个是不是要把它放一起啊,那怎。
10:29
怎么卖呢?对吧,那咱们现在呢,把它再写过去对吧?这你刚从卡不卡里读出来,然后读完之后呢,是以原来咱们一一个个的什么订单的一个订单明细,对现在呢,我做一个我们这个啊这个维表的关联,然后关联完之后呢,我再给他放哪,我再给他放到我们这卡槽里去,那作为我的DWD层啊,作为咱们DWD层对吧?那如果说卡卡里边现在啊已经把关联之后,就维度关联之后的DWD层的我们的订单和订单明细啊都拿到了,那这个时候咱们是不是可以从卡卡里把它来读出来,对吧?那读完之后呢,那么把这两流网一起一合并是吧,来计算一下我和实物分摊这块啊,是我们的思路对吧,就是我现在我需要先去从卡卡主题里边把订单拿出来做维度关联,这事咱们已经做了,然后接下来我要从卡不卡它的主题里边,把订单明细拿出来做维度关联,这个咱们没做对吧,然后把他们都关联完之后,我要把这个数据呀再写回到。
11:29
卡卡里面去对吧,这个咱就没做了,然后呢,咱们再从卡卡里把它关联之后的宽表给拿过来,然后干什么呢?做一个合并对吧?这块呢,就是我们现在这个今天大概要做的东西啊,今天要大大概要做的东西,对吧?呃,那么整体呢,咱们这功能啊,我也分了这么几个,对,我也分了这么几个对吧,那么主要第一个大家看,首先呢,先把订单明细的数据呢给准备过来。对吧,那么咱们现在呢,这个订单明细呢,到时候我要和对也是其他的省份关联对吧,也是和其他的一些维度有关联啊,对吧,那么这块其实实现思路呢,和我们这个订单里边和我们的省份和用户关联其实是一样的,所以这块呢,到时候大家看一看对吧,我可能就复制粘贴了,然后接下来呢,第二个功能呢,是双流合并对吧,用订单和订单明细来合并,形成一个最大的表,对吧,然后接下来呢,那咱现在呢,还有一个什么呢?就是我们的实付金额分摊,对怎么计算,咱们实傅进行分摊,对吧?然后接下来咱们功能四对吧,这个呢是将我们计算结果呀,那也给它保存一下,对吧?那么咱们在做我们这个首单分析的时候,我们是不是把这个结果保存以来就不训列,那么这里呢,给大家介绍另外一个我们这or m BP对吧,这样的一个我们这个数据库对吧,叫clean house啊叫clean house,咱们呢,是把这个关联之后,对它的一个宽表保存到我的clean house里面去,然后最后呢,在这儿发布数据接口来做一个查询,对那这些器者。
12:59
其实啊,大家注意保存的时候你做过,只不过咱介质不一样,然后发布数据借口事呢,你做过,只不过呢,我现在要比咱们原来在稍微的复杂一点点,短期的重点还是在哪呢?还是在这儿啊,还是在咱前三个这块,对把这个功能呢给实现一下啊,把这功能实现一下好了,我现在呢。
我来说两句