00:00
好,接下来呢,我们来看一下进入到40表啊,40表的一个啊维度维度建模,那这个呢,是要比较稍微难一点点啊,难一丢丢来看吧,首先呢是订单明细事时表,也叫事物型快照四时表。对吧,它的分类呢,你看我们就分成这么几类,前面这些呢,叫事物性试时表,下面叫周期快照表,还有累积快照实时表啊,咱们之前分四时表的时候,分了三类,这三类呢,我们都会在这个呃课程当中给大家去讲解,那订单明细试时表之前我们在进行数仓建模的时候,对吧?对每一个维度跟这个试时表进行的一个打勾,你说订单试时表里面需要涉及到时间。地区。商品,也就说什么时间在什么地点购买了哪个商品。对吧,哎,是这样的一个规划,当时是这样一个规划,那这样的规划的话,要求我们这张订单详情里面要有这些信息。
01:02
啊,也有这些信息来看吧,现在呢,我们这个订单详情里面有哪些信息啊,啊首先有订单编号。啊,还有订单号。用户ID。SD。商品名称、商品价格、商品数量、创建时间。还有一个省份ID。最后来了一个订单总金额,订单总金额属于什么呢?属于你这个表的时候,它要有一个度量值。咱之前统计过,说确认事实的时候,是确认这个订单详情的一个度量值。你说你要统计这个订单详情的哪些量是件数啊,啊是金额呀。对吧,你你要统计一个订单,它的总金额是多少,它的件数是多少。是这意思吧,哎,所以说在这里面就加了一个呃订单,这个订单详情里面的订单总金额是多少。啊,就是这样的哈,那你会发现这里面哈,整个订单详情里面这个这些字段。
02:03
正常情况下都会变成什么呢?什么什么的ID,你看订单号的一个ID,用户的一个ID,商品的一个ID,正常情况下这个商品名称和商品价格。啊,商品价格得有商品名称,你可以不放在这都没问题,那你看商品价格,这都是可以度量的,商品数量可以度量,创建时间是时间那个维度哈,我们要统计的之后省份放的是ID,然后这个呢,订单总金额。总结出一个什么规律。这里面要么就是外界。你关联其他表的外键看都是什么什么ID对吧?啊什么什么ID要么就是什么呢。商品数量、商品价格商品数量、订单金额。啥意思,度量?啊,度量值,你说可度量可累加呀,什么叫度量值?是可以累加商品价格,可以累加商品的数量,可以累加商品的订单总金额,也可以进行累加。
03:03
啊,这就是40表上,你再再一次的这个认识一下,40表表上应你说40表里面通常的都是外界啊,外界和度量值的一个集合。那当然有一些不标不不规范的,像什么商品名称会放在这儿啊,这也是可以的啊,偶尔有一两个,就是理论层面和这个事实呢,多多少少有点差异,也是没问题的,那当然这个商品这个名称不放在这儿,你这里有一个商品ID。是就能关联到啊,你把它去掉任何问题,因为只要商品ID话个名。对吧,哎,明朝是能拿到的啊。行,这就是一张订单详情表啊,看好了,都是外键加度量尺。嗯,行,那下面就是要往这里面去赋值啊,往这个订单详情里面去赋值,那往往这个订单详里面赋值,那你先把这张表放在这。
04:01
然后来哈。我要往这里面复制,那就复制过来,还是老套路哈,老套路。放在这,这是DWD层的订单详情,那我要把ods的订单详情拿过来。Ods的订单详情。这。对吧,把它拿过来。拿到分区就可以哈。OK,拿到分区之后呢,你会发现啊,对比一下,你看差几个字段,ID有order ID也有UI有SQID没问题,SQ name没问题,价格没问题,商品数量没问题,创建时间没问题,再往下。缺了一个省份ID,还缺了一个订单总金额。对吧,也就说目前缺了一个省份ID和订单总金额,那我需要再关联一些其他表,把这个省份ID关联上,那这个订单总金额要不要关联其他表呢?哎,本次订单的总金额,它等于商品的价格乘以商品的数量。
05:08
于是你个单价,单价十块啊,十块那数呢,十乘以总金额就是100。啊,总金额就是100。就这么简单行啊,这里面指的哈,大家这个不要差异啊,这个订单详情呢,指的是每一个商品的一个数量,比如说你买的这个订单详情,它不是在那个大的一个订单里面吗?大的订单。里面有很多商品,很多商品,那其中某一个商品,某一个商品,它就是一个订单详情,比如说你买的这个书。啊,同一本书那个就是工书商工具书买了两本,那就是书商工具书的,呃,价格,比如说50乘以两本的数量啊,是这么一个单,类似于这个含义哈,这里面这个订单里面还买了什么这个。那这个呢,是这个100。啊,买了一件乘以一,那总金额100啊是这个含义啊呃,行,那我这里面需要关联一个省份,那一关联省份你们怎么去找。
06:10
哎,说怎么知道,那我如何把这个审核ID关联上,你们还记不记得你们之前有一张图。嗯。那张大图看看啊,找找。不在这个文档里,在这个第二个文档里哈。第二个文档就是早上画那个。这张结构图。这张结构图当中啊,现在呢,我是来处理这个订单详情对吧?哎,我来处理这个订单详情,发现我这里面需要增加一个地区,那你觉得你怎么能拿到这个地区啊。
07:05
你怎么拿到一个地区说地区呢?在这放着,那你看你们公共的部分是啥,这里面是不是有个订单啊,哎,你可以跟他进行关联,关联之后不就能拿到这个省份ID了吗。啊,省份信息对吧,哎,所以说这张图啊非常重要。啊,比如说你这里面那个书上建完模之后,你需要哪个信息,发现我这张本表里面这个拿不到的时候,那你就走这条线呗,他想拿省份信息,那走这。走这拿到对吧,那比如说你想拿这个支付流水怎么着,走这走这不就把它拿到了吗。对吧,比如说我在这张表里面,我想拿这个活动表的信息。那你就得取线了啊,你可以走。啊,你也可以走这条路线。啊,这条线从不同线拿到你想要的这个东西,那总之呢,他有这个渠道,那你就能拿到是吧?啊拿到就是这张地图啊,很重要,在你的脑海当中,这张图一定要有啊行,先放在这儿,那么回来。
08:09
回到这,好,现在我们已经明确了啊,我们现在呢,是前面部分呢,是这个从OS all detail也是order detail去拿数据就没问题,但是只不过呢,现在要想拿这个省份ID啊,我得去这个order。In for这张表里面去拿那把o in这张表先拿过来,OD so in for。往下一放ods等于1FOR,一放的话,你找谁呢?往往这一找,哦,这不就是省份ID吗?哎,省ID它俩就能关联上,那么他们两张表又怎么能关联上呢?对吧,他两张表怎么能关联上,那你找吧,这里面是有一个。
09:00
他的订单ID和他的订单ID,这不就是一个ID吗?捋一下呃,他的下面呢,是包括他的对吧,包括他,那他们两个之间怎么过来呢?他这里存储的我这个订单详情是哪一个订单里面的订单详情,那这个订单编号就是他的,那他的订单编号呢,就是自己的这个ID。那这样不就把它关联起来了吗?对吧?哎,关联起来哈,行,有了这样表了之后呢,往这里面去复值哈,复制来写一下,还是老套路哈,老套路insert。一下insert。对吧,像这张表里面插入数据看一下是不是分期表,哦,是分期表。回车partan dt,今天2020杠零三杠幺零啊30,然后select from对吧?既然我这里面已经确定了是两张表的一个关联,那简单先把架构写出来。
10:14
OK了对吧?啊,你看就这么几步啊,这个写起来这个就很容易,第一张表啊,然后查询出来,只只查询,然后第二张表再只查询之后他们两个用这个刚才已经定义好的这个ID,对吧?啊这两个ID呢,一进行一过联就完事了,看来吧,先主要查这个啊,你说哪一个表的数据多,尽量我们放在前面来查它,嗯,S select。行,From这张表where条件,呃,我这是一个分区表啊,那就是DT等于。
11:03
2020杠零三杠幺零啊0310,那这张表的数据我就能取出来了,取出来之后给它一个别名,这是OD do,呃,噪音上下一张表,下一张表呢,是这个ods old in for,嗯,让它select select的话,这里面哈,你看着比较多,但是呢,我只取里两个字段,一个是它的ID,一个呢是它的省份ID。行。啊,也是标准的写法是你要哪个字段,你就取哪一个字段哈,这是比较标准的,但是有的时候啊,这个数据量比较大,所以说就直接就星了哈。啊,Y2条件DT等于2020杠零三杠幺零对吧?哎,3月10号的数据也取出来,然后呢,一定要给他表名字,那这个就是OI啊,就这样去取啊,取他的取他的,但是你前面再加个O也行啊,加O也行哈,其实没有必要了,因为都是ODI层,就说只需要取后两个啊就可以,那之后呢,这两张表取完之后呢,这个关联条件,那首先是ods detail,这里面detail的话,它的订单ID号是他对吧?啊把它去掉。
12:21
那这也就是OD点啊,然后等于等于下表,下表其实就是它的E可以。OI加对吧,那这样呢就能够进行一个关联,关联之后呢,上面呢,就是补这个知道,那你就看啊看目标这里面一定要注意这个顺序啊,这会儿你就得看目标表,它第一个字段是什么啊,第一个字段是ID。那这个ID的话是订单编号。啊,它跟这个是跟这个是一一对应的,那就取它吧,那就是od.id再来OD点。
13:01
O点。哎,你就点上面一点,你看这里面有好处啊,直接给你提示了,你就非常清楚,也不会这个丢字段。啊,再来,还是OD s name拿过来。OD点。All the press。SQ。好,那再往下呢,是这个省份ID,点到省份ID的时候发现哦,这张表里面没有了,那没有的话没有莫慌对吧?啊不要慌,那就像下面下面这张表啊,下面这张表里有,那下面这张表呢,是OI点好诶不是啊。把它拿回来,这不就OK了吗?哎,这就OK了,但你再往下点的时候,是一个偷偷总金额,你说偷偷我骂他那总金额,发现这两个表都没有。
14:05
那都没有的时候呢,往往呢,是你可以通过你之前的这个字段,把它这个值呢给算出来,比如说这个慢呢,就可以通过商品价格乘以这个商品数量,把这个订单总金额算出来,那也说你这里面可以。用od.price乘以OD点。价格啊,这个数量对吧,这样的话也能把它给算出来啊,那你稍微回顾一下,缩小一下,其实就是两张表进行一个关联。关联之后啊,关联之后,然后把这里面的字段补齐,只不过呢,这个省份ID的时候是这个订单表里面的信息,订单表信息还有呢,这个总金额,总金额就是这两个商品的数量和价格一相乘就得出来了。那至于为什么,我从这个order详情就知道,哎,我要关联这个order in就是要看这张地图跟谁关联,取决于这张地图你想获取什么信息,由于我这里面想获取的是省份信息。
15:09
那所以说我要关联,然后拿到。那有同学该问了,那你为什么要拿这个省份信息呢?这个又取决于我们之前。这块书上建模的时候。拿过来哈,下来数仓建模的时候,我们之前分析过,我们要分析这个订单详情相关的属性,其中有一个属性就是地区的属性。你说这个是哪个地区下单的,这个数量多。哎,我们要跟他进行一个关联,所以说我要把这个地区给它获取到,那获取到的话,那你只能曲线救国,从这个order in缝里面把这个值拿出来,那像这个时间它是有的,像那个商品它也是有的。嗯,那如果你再想跟这个什么活动啊,优惠券再挂上钩的话,那你还需要再关联其他表,拿到你对应想要的东西,比如说我这里面想订单详情里面啊,有没有优惠券,假如说哈,你想过年的话,那怎么办?
16:04
我想取出订单详情的优惠券,优惠券在这呢?那你就需要从这去关联它。再关联它,再把它关联出来,哎,通过这种啊,相应的这个招引,拿到你想要的这个值啊,就是这样哈,行,那这是这个解决问题的一个思路哈,这个思你要会的话,其他的都简单。
我来说两句