00:00
来,那接下来我们看咱们整个维度模型当中的第一张表,就是这个商品维度表啊,商品维度表。呃,这个商品维度表呢,在这标出来了,它是全量表啊全量表那我们前面一再强调啊,咱们做维度表很简单,就是怎么做,就是去业务系统当中去找,找什么呀,找跟这个维度相关的所有的表给它拼到一块就行了,是吧,那这个很简单啊,那这时候我们就得去找我们的业务系统了啊,业务系统咱们那个模型图大家不知道还有没有啊,我这儿还有啊,把它点开。咱们就看这个模型图就行啊,来吧,点开点开点开。放大。哎,在这啊在这儿呢,我其实特意是把这几张跟商品相关的表呢,我给它放在一块了啊,这都是跟商品相关的,包括Su啊,S puu,品牌三级分类,123啊,就这么多呗,那咱们要做的事是不是就把这几张表的字段全部拼到一张表里,然后呢,把往里边导数据的时候呢,把他们这个几张表装到一起,是不是就完事了,那其实就是这样的一个过程。
01:05
啊,就是这样的一个过程啊。好吧,那所以说咱们明确了这个建表方式啊,以及咱们这个装载方式之后呢,咱们就开始去做,先看建表语句吧,啊来咱们把这个建表语句粘出来。这个相对比较简单啊,来,拿过来,我们放在笔记当中,呃,放在这儿来。来来,大家一起跟我看一下啊呃,我们从这个从这开始吧,啊从这开始,那这一部分数据呢?呃,这一部分数据应该这都是来自于哪,这应该都来自于SKU隐份啊SKU,那这个TM name呢,这个肯定是从哪来的呀,是不是肯定是从那个品牌表来的呀?啊因为SKU当中我是不是只有一个t m midd啊t m name来自于品牌表,那下边呢,是不是就是那个三级分类的表,那s pou name呢,来自po表。啊,那创建时间呢,这个就是SKU当中的字段,那所以这其实就是把这个表里边字段呢,我给它拼接到一块儿就完事了啊这个没有什么难度啊,没有什么难度,所以这块呃,建面语句咱们就不再多说了啊呃,然后再强调一点吧,强调这个表明吧,啊,因为是第一个维度模型嘛,表明DWD啊D层,然后第一个是声明咱们是哪一层,第二个呢,声明我们是DEMO dimension维度表啊后边的SQ啊,那下面的这个表也是按天分区啊,因为前面分分析过了啊,我们所谓的全量表,因为这张表是不是全量表啊,那全量表也是什么也是什么结构,也是分区表啊啊,那增量表也是分区表啊,那这个分区表,然后他每天的分区当中存的就是什么,就是当天全部的这个数据对吧,当天的全量数据,这就每日全量表吧,啊啊这个应该能搞清楚,所以咱们是按天诶分区了啊然后呢,数据的这个结构也是帕qui加这个拉兹罗啊OK搞定啊行,那这个完之后呢,咱们就开始写。
02:55
Circle了啊,这个circle其实对I应该不是不是一个难点啊,我们insert,那后边加allright啊,加table dwd啊,Di啊,SQ INF for,那后边来一个part part里边呢,咱们写DT啊,等于啊,2020杠零几零零杠幺四杠。
03:13
六杠幺四啊,后边我们来一个select select,什么select from啊,这个从哪呢?这个from哪。是不是肯定也是from ods层,那ods层哪些表呢?因为大家都知道啊,你要想往这张表里导数据,那我需要用到ods层的一大堆的表吧,对不对,一个是SKU,一个是s po,一个是呃,Base trademark啊,然后呢,Categ gr123,是不是这六张表啊啊,那这六张表他们应该是什么关系呀?是不是进行一个join就可以了呀?啊进行一个join啊,OK,那我现在问大家一下啊,那咱们这呢,你去join的时候,你你应该怎么去做,是让他们全表去join吗?还是怎么做?
04:00
嗯。因为咱们ods层表是不是都是分区表啊,都是分区表对不对,都是分区表的时候,你咱们说的简单A把ods层表一照就完事了,但你真正去的时候,你就得考虑问题了,我这个C到底怎么写,因为你都是分区表啊,那都是分区表啊,我能让全表直接照吗?嗯,你就得考虑考虑啊,这个搜狗到底下一步应该怎么办。嗯。我是让全表照啊,照完之后呢,我怎么办?我写过滤条件啊,我还是先写过滤条件啊,然后我再让他去join啊,咱们得考虑这个问题啊。嗯。啊,得考虑这个问题。这个怎么搞,这个好像还不太好搞啊,这个得琢磨琢磨了啊。咱们这时候得分析啊,得分析分析什么,你得分析这张表,注意啊,这张表,这张表咱们定义的是什么,是每日全量表对不对,所以每日全量就是每天的分区当中应该只保存一份全量的最新的数据,对不对。
05:05
当天的最新一天里边啊,应该是只保留一份啊,然后全量的最新的商品信息是不是这样。对不对啊,那所以说我们去从ODI层选的时候,是不是也要只选一份全量的最新的这个数据啊,对不对啊,那我从OS层去选这个,呃,数据的候咱们就考虑一点了啊,咱们看一看我们ods层这几张表啊,那咱们看这儿吧,一个是SKU啊,一个是它,一个是它,一个是它,那这几张表我们导数据的时候啊,咱们从那个呃买SQL往HT导的时候,咱们采用的都是哪种同步方式啊?都是全量啊,这个正恰好都是全量同步,SKU引份我也是全量,那贝斯,呃,这个cat green3呢也是全量,那都是全量啊,那都是全量的话,那就容易了,那就容易了啊,那所以说我从ods层这六张表当中拿数据的时候呢,我应该只拿什么呀?是不是应该只拿每张表的最新一天的那个分区的数据就够了呀,对,因为他们是不是都是全量啊,都是全量同步啊,而我所需要的就是一份完整的全量的最新的数据。
06:20
那那就正好呗,只拿诶ods层每张表的最新一天的分区就够了,你不要把他们全表都拿过来,能理解吧?啊,这个得搞清楚啊,那所以说咱们这select的时候呢,那就不能怎么做了,不能让它全面照了,应该让什么呀,应该让每张表的最新一天的分区去照,对吧?啊应该这么去做啊,那当然呢,有的同学说,哎,我就讲怎么办呢,我就让它全表照,那全表照完之后,我最后再怎么做呀,我就要再过滤一下是不是就行了,可不可以?可以啊,没错,但是你那样肯定不太好,为什么呀,因为大家都知道我这个drone的性能怎么样啊,是比较比较差的啊,因为johnone的时候需要沙uffle啊,你杀Le,你数据量越大,我这个join就越慢,所以说你如果让它全面先join再过滤啊,和你先过滤后join,虽然这个结果是一样的,但是他们俩的这个执行效率是不一样的吧,所以说我们肯定是先子干啥呀,先过滤在后join,尤其是这个多表join的时候啊,你先过滤后照这个效果相差还是比较大的啊,这个大家得注意一下啊,那做完这里边我们需要怎么做呀,是不是写各种子查询呀,对不对,写子查询啊,在这边呢,我们就得先select。
07:33
然后呢,来他给我换行了,我不用换行了啊,我就直接select星吧,因为咱们这个呃,在这儿呢,本身就是需要把所有字都拿过来,咱们就来星吧C来星from哪张表是不是应该是ods层的,先拿SKU,比如说啊SKU啊引,然后下边呢,Where dt等于2020杠多少?哎零六杠幺四啊只拿最新一天分区,那这个呢,比如说就是SKU起一个别名啊然后呢,下边每一个表是不是都得这么去选呀。
08:06
都这么选,然后选完之后呢,那这几个字拉群需要怎么做撞到一起啊,需要转到一起,这是我们大家呢需要去注意的点啊,完了这个词课呢,其实没必要一点点写了啊,咱们节省时间啊,我把这个呃干出来,然后呢给大家看一下里边这个东西啊。咱们从这开始吧。往下看CTRLC啊,咱们拿过来放在啊这个位置,CTRL好,那我们一起来看一下这个circle啊,看这个应该能看懂啊,首先select是不是从这啊select,然后这些字段,然后下边from from选第一个,这就是我们SKU那个子查询对吧?那第二一个呢,就是我们那个呃,Base trademark啊,那再一个呢,是我们那个呃,PU啊然后再往下呢,是三级分类,二级分类和哎一级分类啊这个子查询肯定都会解。啊,然后关键是什么,就是咱们这个,呃,去做这个join的时候,我们那个join的连接条件应该怎么写,这个大家也得需要注意一下了啊,因为咱们这个涉及到表比较多,他们之间照的这个关系呢,是不是也比较复杂呀,对不对,那咱们就得注意了啊,你看比如说这那我S,假如说SKU,我现在需要跟谁照呢?需要跟咱们的这个。
09:17
来诶是不是这是这啊没问题,没错啊。来看啊,比如说我现在呢,我的SKU啊SKU那需要跟谁,需要跟下边这些表去照对不对,那这个照的顺序那就有有说法了,你只能怎么着啊,只能是先SKU in for跟谁。它是不是里边只有一个三级分类的ID,对不只能是用它先跟它照完事呢?是不是在用这里边的I派对为2ID去和他照,在这个2ID里边是不是有一个EID,然后再去跟他照,应该是这样的,有一个先后的顺序啊,对吧?大家需要注意的啊,你上来你直接用SKU引和face cat1撞,它俩能撞的上吗?撞不上的。
10:01
啊,你得呃,根据他们这个关联关系,然后呢,去啊决定这个join的这个顺序啊,这得得注意一下,注意一下啊,然后后边比就比较简单了,你比如说SKU in p po in缝,那里边呢,我本身就有一个pod,它俩是不是能够直接照呢,那这里边呢,我本身就有一个。千ID,那是不是直接跟他就招商了呀啊,这个将来就比较简单了啊啊,那就是这么多啊,这就是咱们这个最终这个circle考啊,其实不难啊,没有任何难度啊,没有什么逻辑啊,就是纯粹就是相当于搬砖是吧?好,那咱们把这个呢给它写完就可以了啊加上一个隐色,当然呢,我们这个注意啊,咱们这个circle也是从哪层去查数据的,也是从ods层查对吧,也是ods层,既然是ods层,我们就应该有什么问题。那个拉泽罗啊,那个索引文件啊,识别的问题吧,所以说一会这一大堆的表,这个咱们搜Q写完之后,是不是写到脚本之中之后呢,是不是也得加一个set have input for啊,那个参数啊,对不对,咱把那个注意一下啊,咱们到时候写脚本的时候再说啊,行,那这个词吧,咱们就写完了啊,那我把视频录一下。
我来说两句