00:00
啊,大家来看一下啊,呃,就是我们可以在这个monitor当中去看到我们每一个任务的执行进度,对吧?那在这儿呢,咱们刷新一下之后,你会发现啊,此处已经报错了对吧?报错之后怎么去排查啊,应该怎么排查,理论上排报错之后,我是不是应该是点开这个小小箭头对吧?这里边是我们计算CU的每一步,你就从上到下往往下看呗,对吧?看看到底是哪步出错了,呃,还是一样的啊,绿色表示成功啊,这个蓝色表示正在执行,红色表示错误,那现在大家看一下是不是在这一步它出错了对吧?那为什么出错?点这其实是能够看到日志的这个log,当然呢,这个log去哪看也行。这个log哪看也行,是不是去咱们下面那个麒麟的根目录,像那个logs路径里看也行啊,对吧,但是在那儿看有点乱对吧,你不知道是哪一步出的错,在那儿能够清晰一点,你点一下,点完之后呢,它会有一个这样的报错信息,然后这个报错信息咱们一起来看一下啊,看看这个东西是怎么一回事啊,那首先我们呃给大家简单说一下,大家去看这个报错信息的时候,有的同学他抓不着重点啊,他上来之后呢,按照这一大堆的这个对战信息去看这东西,你能看出来啥?
01:02
那除非你现在要去根据这个错误去追源码,你要追源码的时候,这个是不是是比较有用的呀,对吧,到底哪个类的哪一行报错的,你是不是可以去看对吧?但现在呢,我们要查原因,那基本上哎可以把这些信息略,那看什么呢?你就看它上边或者是下边这些信息对不对,上边我们看一下,他说什么什么checking snap这个个表,什么这个商品表是出题了对吧,那这是在们还是不不懂你下对吧,你能对吧,你看往下走,这不还有一个coby对吧,有什么导致的,通常在这里边我们能找到有用的信息来看一下,他说干啥,他说table这个表啊,哪个表。是不是咱那个商品维度边对吧,这里边儿有什么。Duwk放什么意思?其实就是重复的意思啊,对吧,重复的意思啊,也是在这张表当中,他发现了一个重复的K,这个K是啥意思。K就是见的意思对不对,那其实这这个K啊,它指的是什么。
02:02
它指的是事实表与维度表的那个关联字呢,其实也就是我们所谓的这个商品维度表的什么键呀,就是它那个主键,也就是那个ID,对不对,也是在这里边发现了重复的ID了,诶这个怎么理解,这个大家能不能想到为什么会有重复的ID啊,在商品维度里。能不能想到这个很容易想到啊,对吧?为啥咱们回忆一下我们刚才在使用麒麟的过程当中啊,啊,咱们从前到后啊,是不是只有在一个地方提到了咱们那个维度表来,对吧?在哪,是不是在构建model的时候,我们指明了这个维度表与事实表的这个关联关系对不对?后续咱们还有过对这个维度表的操作吗?没有,我们后续只是从这个表当中选过一些字段,对吧?啊,是这样的吗?那也就是说我们指明的这个关联关系是什么?是事实表与整张维度表做关联吧,咱们有对这个维度表的过滤什么的吗?有吗?没有啊,那咱现在这个维度表是一个什么维度表,这个上限维度表是不是一个每日全量对不对?每日咱现在几个分区,是不是分区一个十四一个15对不对,所以说那这里是不是肯定会有重数据啊,对吧,比如说S个数据就会有两条啊,那我的事实表,比如说拿了一个SQID等于一这样一个记录,我去关联这个维度表,那我是不是会发现我能找到两条记录啊,对不对,那这样一栏是不是。
03:20
了,我不知道该用谁,所以说此处呢,就会报这个错误啊,那其实啊,不光这个,呃,商品维度表会出现这个问题。商品维度板咱们给他解决了之后,谁还会出这个问题啊,拉链表是不是也会出这个问题对不对?咱们回忆一下啊,拉链表当中每行数据是什么来着,是一个维度对象的一个状态对不对?那一个人假如说我改过几次状态,那是不是在这张表当中就会有多条数据,就是不是同样会出现这个重复K啊,对吧?哎,那这个重复K问题咱怎么解决?怎么定?怎么解决?这个我们在麒麟的这个使用过程当中,没有发现任何地方可以去配置这个维表的数据,对吧?麒麟行只自己解决,大家好好琢磨琢磨啊,怎样能解决这个重复K的问题。
04:12
Dad。有想法吗?其实这个最最容易想到的一个方法就是什么,对我取一份最新的是不就行,对不对,我我不让这个实施表去关联整张维度表,哎,我只让他关联全量的一份最新的数据,是不是就可以是这个道理吧,OK诶那我怎么去实现这样的一个功能呢?这样一个效果怎么实现?那怎么我是不是还是可以利用我们前面那个所谓的视图啊,对吧,咱们是不是刚刚哎用过视图对不对啊,在这儿我可以这么做,哎,我可以这样去做啊,我可以在have客户端为咱们的拉链表以及每日全量维度表去创建一个视图啊,当然当然呢,我们在创建视图的时候,后边是不是得有一条搜狗L语句,对吧?在搜狗语句当中,我们需要对数据加以过滤啊,那我们得确保从视图当中查出来的数据呢,是一份全量的最新的数据,那这样一来是不是就能解决咱的问题来,对吧?视图创建出来之后,那你说我们跟实时表关联的时候,让谁关联,我是不是让是让这个视图去关联啊,对吧,我就不让这个真正的维度表去关联了,那这样一来就能解决咱这这个问题啊OK,那这个视图怎么创建,我往下走了啊,我们先来看一下这个拉链表的视图如何创建,拉链表怎么创建在这儿呢?我先开一个还有客户端啊,一会儿咱们需要用的拉链表视图怎么创建。
05:34
很简单,是不是就这么条简来看一下create you dim userf you后边是不是来一个后边加一个select查询啊对吧,是不是有个select星from真正的用户维度表,然后V尔DT等于9999杠九九杠九九诶那这样一来咱是不是就能够拿到一份全量最新对吧?按照我们之前的分区规划啊,拉链表的9999分区里边存放的就是啥,是不是就是全量最新对吧?那那这样一来的话呢,我们每天从这个视图里边拿的都是啥,都是当前的全量最新对不对,我我我不知道这儿大家有没有这个理解我的意思啊,那假如说啊,我在昨天,我昨天去从这个呃表当中,从这个视图当中去查询数据,和我今天从这个呃这个视图当中去查询数据,你说我这两天查询出来的数据是一样的吗?
06:22
是不一样的,对吧,我们前面说了啊,每次从这个视图里边查看数据,后边这个40课都会怎么做,是不是都重新执行一次啊,对吧?这个一定要理解啊,也是我每一次从这里边查得到的都是截止了当前的全量最新啊,OK,那这是拉链表的视图,那接着再往下这个全量维度表视图怎么创建呀?全量维度板收算不上钱。啊,其实很简单啊,那全量维度表,我们要想拿到一份全量最新,是不是拿到最新的一个分区就行了,对不对,最新的一个分区应该就是啥,是不是就是我们计算日期的前一天对不对,比如说我今天,呃,麒麟在今天去计算,今天计算,计算是不是应该最新数据是前一天的对不对,那所以应该怎么办,是不是就加一个这样的过滤条件就行。
07:03
大家看一下啊,这是什么?是不是应该是where dt date a current date减一啊,对吧?诶这个current date大家还记得吗?之前在给大家讲那个have的时间函数的时候,应该看到过吧,它返回的是啥?是不是就是当前日期,就是咱们来试一下,比如说我current,咱们看一下。你看返回的是啥,是不是返回的就是我们,诶这个最近一天的日期,当前的日期,对吧,也就是是不是7月22号,这个没问题吧,那所以我们要做的应该是啥,是不是应该是获取它的前一天的数据啊,是这个道理吧,所以说我们在这怎么获取,是不是来一个这个data I的car的减一拿的就是前一天的量,就是这样的啊OK,那这就是全量维度表创建视图的这个方式,那当然啊,咱们现在能不能这样去创建,咱不能啊,咱要是能去去创建的话,那我们获取的就是7月21号的数据了,对吧,咱们有吗?咱没有没有,哎,不好意思啊,这个屏给断了啊,我再重新控上。
08:01
来再共享啊,那咱现在应该怎么创建,咱现在呢,是不是就得往下走啊,对吧,咱们怎么办,是不是指定一个分区就行了,对吧?啊在这咱们示例一下,但实际在生产环境中应该怎么办,是不是要获取前一天的这个一定要理解一下啊好,那由于我们之前啊,是不是已经创建了一个dimsku这个尾了。对吧,咱们刚才创建是为了什么来着,是为了过滤掉那两个复杂的数据类型,对不对,就在这儿呢,我们就不需要再重复创建了啊,怎么是不是改一下就行对不对,怎么改很简单啊,来看一下怎么改,这就是al view加上刚才创建的view,然后后边再as as一个新的serve是不是就可以了,对吧,这就是修改啊好,那现在呢,我们按照诶咱们的规划把这两个视图创建出来啊,我们先创建第一个来CTRLC拿出来,然后呢,放在这个位置执行一下,诶诶,这个应该在哪?应该在那个JA贸库里,对吧?这个千万别忘了啊,G ma,诶柚子一下啊,没写柚子。今天脑子有点不够用啊,柚子真棒啊,完了之后我们继续往下走啊,那现在呢,我们再把刚才创建师傅的语句给他拿过来,我们直接这个回车。
09:07
啊,现在它是不是已经算出来了,那紧接着我们把第二个页创建下,注意啊,第二个咱不能创建,我们得怎么办,是不是得修改对吧?那下面这个al语句啊,诶CTRLC拿过来,拿过来之后呢,我们来一个右键粘贴,粘贴之后就创建出来了啊那现在我们从这两个视图当中查询数据,拿的就是全量最新的了,在这我就不测试了啊啊,那视图咱就创建完了,视图创建完之后接下来呢,接下来怎么。接下来咱们是不是就得把原来的这个Q啊,以及原来的什么model等等,是不是都得改一下啊对吧,对不对,咱这里边是不是问题就大了去了,对吧?那首先我们我们得干啥,是不是从数据源上就是不对的呀,对吧?那在这呢,咱们需要去呃进行这样的操作,咱怎么操作呢?哎,我可以这样啊,我先把咱这儿呢,不需要的这两个表给它去掉,哪哪个不要示他俩不需要对不对啊诶当然这个其实呃咱们是修改了一下,对吧?这个修改下咱怎么做啊,为了保证它能够诶刷新过来,我可以怎么做呢?我可以先给它移除,再重新加载,或者说呢,在这我点一下,点一下之后,这有一个啥呀,是不是有一个re reload呀,对吧,咱们这个重新啊,这个loadad一下就可以点击single,这样也行啊,这也行啊啊那下面这个咱是不是就不需要了,对吧,这个不需要,那我就可以给它是不是去掉了对吧?那咱们点击unload table点击yes,但是你按load的时候呢,他报错了,他他说什么。
10:26
说这个表is already in use by是不BY这个model啊对,这个model是不是用用这个表了,用这个表你就不能删,那不能删的话,那怎么办?这个model其实咱们也不需要,Model也是错的,对吧?那所以咱也给他删了drop一下,对吧,但你会发现drop还是不行,为啥呀,他说这个CU吧,是不是用着这个model呀,对吧?那所以说他也删不了,那cube是不需要了,Cube也是有问题的,对吧?那所以也给他删除点击知点击还是不行,为啥还是不行啊来看一下他怎么说,他说这个Q吧啊啊有一个什么,有一个正在跑着的或者是失败的任务,是不是在这个用着它呀,对吧?啊那为什么有,为什么有一个失败的任务再用了它,我都删不了,为啥呀,因为你失败了之后,我是不是可以恢复如来重跑啊,对吧?重跑是不是还得用啊,回头在这怎么做,我先把这个任务给他,呃,Discard一下,里边是不是有个取消对吧?点点完之后点yes,那完之后它就变黑了,变黑之后呢,我就能够drop了,给它删了,它删了之后那我们就可以怎么做了,是不是就可以。
11:26
去删这个cube了呀,对吧,招一下,那cube删了model是不是就能诶删除了呀,对吧?啊点它,那他删完之后呢,我们的数据源是不是就能删了对吧?咱们把这个Di user给unload一下,点击yes,好,那现在三张表咱们拿到了,是不是现在还差一对吧?那还是点它,点它完之后呢,往下走,我们再搜一下这个V找谁是不找到这个U啊对吧?点击好,那现在我们最新的四张表就拿到了啊OK,拿到之后我我们接下来看拿上,接下来是不是得把刚才做的东西全部从头来一下对吧?那这个呢,我就快速的操作一下就行了,我就不再不再多说了啊那跟刚才一样,相当于复习一下啊,正好上节课没听的同学可以再过一下,那首先我得干啥,是不是得先进一个model对不对?Model里边呢,应该是起一个名字叫做order,是不是detail ta班之后呢,来一个比如说star,这是当名字随便起下一步,下一步时候选实时表对吧?找到order加lookup table,选择实时表,选择第一个维度表,选择关联条件应该。
12:26
是SSKYD对吧,那我操作的时候大家注意观察啊,啊,我写错了之后,大概那个提醒我一下,好继续往下走来找到实时表,下一个呢,应该是谁个条II一个,再找到实时表表那个应该是pro ID这个找到ID点击OK,那现在是不是就管点击下一步,那还是选择我们刚刚的那些维度啊比在这呢,我还是选一个,比如说source type完之后往下走,那这里面呢,选择呃三级分类的名称以及下边的这个品牌名称,然后再往下走,那再往下呢,是不是选择用户维度边的维度对吧?选一个login u level用户级别对吧,再选一个真点性别啊,那再往下走,这个呢,我们就选择省份名称和呃这个地区名称就可以了,然后点击下一步,然后选度量值,度量值是不后边五个咱们都要对吧,选上。
13:22
好,选完之后点击下一步,OK,那选分区,那还是实时表的这个DT是不是就可以对吧?没问题,点击私有保存,OK,那咱们现在的model就有了,Model有了之后呢,是不是就可以见CU了,来咱们快速的创建出来啊,还选择刚才那个,那名字呢,还叫order底下有CU吧,完之后呢,点击下一步,下一步是不是又选这个维度还跟刚才选一样的啊,刚才我选了一个他对吧,然后选了一个,真的选了一个province,还有region name对吧?当然自己选的时呢,这儿可以稍微少选一点,你说选两个或者选三个都可以啊啊,那然后还有一个点要注意啊,后面这个维度的类型,当然说现在先都选这个normal对吧?诶normal normal,那这个没问题,点击OK啊,那现在完之后点击下一步,那还是批量添加我们这个度量值,然后点击sum,点击所有的字段,点击OK啊,是不是都填上了,点击下一步,那此处呢,还是那个合并的,合并那个事儿对吧,咱们就不再多说了啊,然下一步那这块是advances的S,是不是还是高级配置,暂时先不提,我们往下走下一那再往下呢,这也不用填,那下一步后。
14:22
是不是就偶尔用没问题,我们点ec保存就可以了,OK,那到现在呢,咱们这个新的CU就创建出来了,那接下来我们还是提交这个任务,点它点完之后,那谁是不是点这个build呀,对吧?点build点完build呢,我们需要在这里边选择一个时间,我们还是选择15号啊来应该是dream,呃,来一个这个十五零零没问题吧,那继续往下走,那应该是,呃,找到这个二零年啊,二零年应该是六月的十六零零,好,没问题,点击submit这个时间没错吧?啊没错啊没错,我们就提交就行了啊好,那现在这个任务呢,是不是就重新开始计算来对吧?OK,那这个任务呢,它需要计算一段时间啊,那我们暂时呢,先等一等啊啊来,我把视频停一下。
我来说两句