00:00
啊,接下来呢,我们来看一下这个DWT成啊,这个脚本怎么写啊,怎么写啊,我相信大家这个写这个脚本啊。按理说应该,呃,这个不是DWT啊,是这个DWD啊,按理说应该不存在任何的问题啊,不存在问题,咱们之前这个笔记上那个脚本有问题,是因为什么原因造成的呢?是因为啊,咱们这里上面前面这些东西啊,这个表名字啊,包括字段名字啊,总去修改,总去修改,修改的话呢,导致这里面的和这里面的不一致。你说上面的老师呢,这个开始的时候按照这个版本去修改了,它是能跑的,但是呢,后面我们把改这里面的一些字段呢,包括一些呃表重新修改了一下,这里面没有及时更新,就导致这里面跑不起来。啊,如果正常及时更新的话,是没有任何问题的啊行,那还是写这个脚本呢,主要分这么五步对吧?啊五步号叹号,然后呢,接下来定义变量。定义服务器时间。
01:01
这都没有任何问题,然后下面呢,是这个circle对吧,嗯,Circle也是第四步是具体的执行circle口这行,Circle这里面,后面我们用到了这个,呃,动态。呃,动态分叫什么啊,动态分区啊,动态分区,所以说你需要把它制成这种非严格模式,它才能够执行这个动态分区。啊,那这里面就是这些东西。我就是按照咱们那个呃原则,什么原则呢?遇到时间的地方变成Dollar do date,遇到表的地方加上Dollar APP就没有任何问题啊,没有任何问题啊这块,然后你往下走,往下走一直到最后这一块。到最后这块呢,这里面分了一个分支,上面是四扣一,下面是四块二,主要区别在于这个省份这个信息,省份信息没有必要每次都要导,哎,我只导一次就可以,那需要一个分支,那分支的话就是。诶,第一次导的时候我导Q1导S2,那到了第二次之后的话,就没有必要再导那个省份了,只剩下SQ1。
02:08
啊,就仅此而已,还有一点你们容易出错的原因,还有一个点在什么呢?哎,我后面这个分支啊,这块传的是一。对吧,啊,这是传传进来的那个first和or or啊,First没放哈,First或者。之前那个脚本里面有个小问题在哪呢?在这个上面。在这儿。这块啊,之前那块有个笔误,他写的是刀一,这呢是写的刀一。因为我老脚本里面只传了一个参数,就是那个时间,新脚本里面我们区分了一下,传了一个O和first。啊Mr first就导致你这块这个容易出问题,那怎么办?哎,这其实是第二个参数是时间,你把它换成倒了二就行了。啊,就说你这块注意一下没有任何问题。啊,没有问题,你可以试一下啊,试一下啊,这个呢,还是你们私下去去试一下,当然了,我这个笔记文档是OK的哈,我可以给大家演示一下。
03:07
呃,ODDDB。因为咱们已经写过这个太多遍了哈,V mods two d w DD WD,我们这个是DBCH。之后把这里面的内容拿过来啊,大家呢,尝试着自己去做一下这脚本啊,因为咱已经写了很多了,你自己做一个做一个之后呢,如果再有问题的话,你再找我啊好吧。基本上就是你这个笔误,比如说到了忘了啊,或者这个到了do date忘了啊,或者丢丢三落四的啊。正常这么去写啊,这么去写的时候啊,我再教大家一下哈。你怎么去验证?如果你在自己在写代码的时候,你放在这里面,你给我全文查查找一下,查找什么2020杠零三杠幺零,比如说你查的时候如果没有它了,那才说明你这里面至少时间这一块是OK的了。
04:16
对吧,哎,时间这块OK的,那剩下的像这个表明的这个一定要给我认真去查,这个就得靠你的眼力了,一个一个得从上往下,对,而且在写这块代码的时候呢,我建议怎么写呢。我写这块代码是这样的,我是一个一个去写。怎么叫一个音节呢?我先处理的是DWDDMSQ音符这张表看我只导到这。指到这,然后我去好好检查一下名字,还有这个时间名称O不OK。啊,甚至如果你自己不自信的话,那你就指导这一个执行一下这个脚本。哎,用它执行一下脚本,哎,如果通过了,那我再粘下一个。然后再往下推,这是最好的方式,那如果有个别同学呢,一下子就把这个所有东西都粘过来之后。
05:02
它出问题了,怎么定位问题。还是我原来那招,一个一个去击破。先一张表测试,这张表测试过了,我再测试下一张表,这张表测试过了,我再测试下一张表,一个一个去测试啊,不要一上来,哎,老这个海哥这个脚本跑不通啊,直接报错。然后你就没招了。这不行啊,这不行啊,所以说就一个一个定位,你就六张表吧,或者八张表,哎,我第一张表过,第二张表过,第一张表过,第四张表过,哎这样去一个一个去来哈,你说把一个复杂的问题呢,我们简单化去处理。说实话,这个脚本昨天我也调了这个,呃,20分钟啊,确实调了20分钟啊啊,当时呢,也是遇到了一个小坑,小坑就是因为这个我我忘了,我加上这个下面这个first和O了。啊,偶加上一个到一,但是呢,我上面这块呢没改,我上面这个日期没改。哎,这块日期没改,他始终都给我报这个,嗯,不对,检测不过,检测不过啊后来呢,我怎么办呢,后来我就是我咔嚓把你这个前面这些都删掉,我只留一个。
06:09
我只留一张表,而且只留一张表,我一检查啊,这肯定没问题啊,啊肯定没问题,没问题我就发现啊,我我在这,因为它视线已经缩小了嘛,对吧,你这一缩小的话,它不就能看到这个东西多了嘛,啊看到东西多之后,我发现哦,原来你这里面这有一个这是DO1了,那你上面还是一个DO1,那它可不。有问题咋的啊,而且同时我当时怎么做的呢?我会在这里面去打上这种字,怎么调试啊,我会在这里面打上111,哎,能证明这个这个分支进来了,同时我还会这样。二二,然后最后还会这样一口调试脚本啊,大家都觉得这个不好调,不好调,你在这里面先打上这些字,每一个分支里面都放,如果他打了就说明进来了。
07:00
然后进到这里面,你说看他执行执没执行,这个对应的这个口执行了,然后那就得看那个有没有二,有二的话说明他已经正常执行,有三说明它正常执行。哎,这样,所以说证明它走到哪,然后上面呢,我这块又怎么做呢?在最上面你要记住这两个分支,你也要测,我是这么发现的,怎么办呢?哎,我是这样,你有这个变量值吗?我把这个对打出来,然后到这里面也是。啊,我我是这样啊,得得拿下面的拿上面没用,要这样去去打。那这也是一样道理,这个呢,也是这个,然后。啊,这得加Dollar哈,它加Dollar符加Dollar do date,那在每一个分支里面,你都放一个能够打印出来的内容,你想关心什么你就打印什么。
08:01
这样的话会发现发这个方便你去定位,我就是因为打印这个东西,我发现了这个时间它不对。啊,发现的时间不对。嗯,因为他就没进来。他为什么没进来呀,因为我这里放的是到一啊进进进来了哈,进来之后呢,你个打印这个值不对啊,打印的值呢,不是日期啊,我就始终找这个日期,我说我传进来的这个2020年3月,呃,3月11号,我怎么就没找到呢啊,我一发现,我一分析啊,原来一看这啊,它确实是这个啊,因为你这里传进来的是这个first或者啊跟这就没关系啊,所以说就不行啊。行,那这个呢回来。保存车纸帽的信息,比如说遇到问题的时候啊,你要知道怎么去去调啊就OK,那行吧,那下面呢,我用一下这个odsdwd啊,其实我们这个3月10号的数据已经导过了,所以说你没必要执行那个first直行执行O就行了,要要直行。
09:21
所以写脚本就是一个细致活啊,是一个细致活,别着急,慢慢来。啊,而且这招一定会。这招哈,打印。
10:16
挺慢的啊,这个数据量还不小。我。行啊。三八。结束了,哎,Fail是吧,呃,Not found defect order detail。你是不是之前没创建这张表啊?来找一下啊。订单详情表没创建吗?来把这个订单详情表来创建一下。
11:05
订单详情表,你把这表。看啊,他不没有吗?没有没关系,哎。创建一下。其实可以先查一下,我看查一下这个确实有没有呢。Select from,嗯,我这个是DWDDW哪张表啊。这叫fact detail复制过来。确实没有对吧?啊,确实没有,那是不是之前我们见表的时候这个忘了哈,那就把它拿过来。OK,接完表之后啊,我们把这个3月10号以前的这个数据呢导进来,对吧,这个是以前分析的这个3月10号的数据。拿过来就是两个表,一招嘛。
12:02
会招人的话,这事就不是什么大问题哈。啊,这爆的已经很明显了啊,告诉你没找到。行,那下面正常情况在生产环境下呢,如果说这张表没找到的话,你需要单独去指定我要导这张表啊,但是我们这个脚本现在比较呃,比较粗糙啊,我们直接就再导一次这个全表就可以了哈。再导成表啊,生产环境下不允许这么导哈,生产环境需要指定这个表的名字,然后去导具体的这个数据。
13:27
来跑一下啊,需要点时间,这个脚本呢,大家私下里一定要一定要会哈,练其实你只要练两个就行啊,不要这个不用练太多,只要你会写两个。那这个事儿剩下这个事我觉得就简单了啊,没有必要都都去这个敲一遍,因为敲完一遍呢,你也不会提到提高太高太多,因为呢,你只需要记住这五步,井号叹号B定义变量。获取时间之后呢,是呃,具体的业务circle啊,然后执行circle没了啊,就这么几步哈,然后呢,具体circle这块呢,就是遇到时间换成到date,遇到这个表明呢,换成这个Dollar APP就结束了。
14:18
还是比较顺利的哈,应该是可以直接完成了。表上表是有多少张?有14张吧,六加八六加八应该是14张,14张表。六张维度,八张40。
15:04
这还是用T的引擎的,这个运算速度啊,相对来说比较快一些,如果你用那个MR啊,那跑的跑跑崩溃了都得。太慢。好,终于跑完了哈,跑完之后呢,别着急啊,别慌,一定要呢,这个测试一下,你测试什么呢?你要测试一下这个这里面有没有数据,尤其是你用脚本导的3月11号的数据,对吧?哎,测试一下。嗯。这说做事呢,要稳当一点啊,别着急,慢慢来,有数据有数据,他有数据还不行啊,都得一下。哎,也有数据。再来。
16:01
比如说你要保证这几张表里都有数据,否则的话,后续你再分析指标的时候啊,他他没法分析啊,对吧。OK,那这样呢,这个事儿就OK了啊,比如说现在的DWD层彻底就全部打通了哈。
我来说两句