00:00
好,刚才呢,我把这个用户行为的表已经做完了,那下面呢,我们来处理一下业务数据,业务数据啊,在大家的心目当中呢,这个里面表呢,特别多对吧?啊特别多,我们要处理的呢,一共有20。三张表。那么二三张表处理起来这个难不难呢?哎,处理的难度呢,是非常之简单,记住了OD上它是保持数据原貌啊,不做任何修改。对吧,哎,不是任何情况,那你看吧,比如说订单表。那你在原来这个就是Java后台,它的表是什么样的,那我这边就应该创什么表。对吧,啊,你看这个订单表啊,我这里面可以跟谁对比呢?跟我们之前的第二个文档对比。第二个文档。你看一下这里面订单表。对吧,这是我们最原始的数据的一个订单表,那你看我们这里面呢。
01:00
对比一下。你看这边有订单编号,那我这边呢也有订单编号,你这边呢,这个叫什么final。那这呢这呢对吧,这叫总金额啊,这面叫订单金额啊,描述上的一个问题啊,这叫final total amount对吧?然后下面呢是order states,那状态,那状态你这边呢是user,那我这边user,呃,你这边呢是out trade,这个那out trade对吧?啊交易编号,然后创建时间,那创建时间再往下呢。在这创建时间,那下面呢,Oper time oper time,嗯,再往下呢,是省会ID,省会ID在这呢,嗯,这个呢是benefit reduce,再往下。在这优惠金额,那后面呢,是original to amount to amount原价啊金额还有运费,运费呢在这对吧?哎,其实也就是说这里面的表啊,这些字段它都是从这里面拿来的,但是你发现了一个现象,什么现象呢?就说原始的表的数据呢,比我这里面的多。
02:07
比有人多,你说这里面这个订单表并不是这里的全部,那你说你想要哪些字段,你就过滤哪些字段嘛,因为SCO在导表的过程当中,其实是可以加上一个query过滤条件的。对吧,哎,扩容过滤条件的啊,所以说这里面是这样一个情况。好,呃,那这是创建这个订单表,那创建订单表的条件呢,跟我们之前一样,你看job table if exist ods,你说如果存在的话,我就把它先删掉,之后呢是创建了一张web表。啊外表,那外表表的名称是这个,这下面呢是具体的字段。那同时呢,这里面表呢,也都是这个对应的分区表。创建分区,呃,还加上了一个分割符。啊,杠T,因为我们这边在导表的过程当中,数据的分隔符是不是就是杠T啊。哎,所以说这里面,那你再过倒过来的时候,那我们也用杠T分割,那如果前面的话,你不用杠T,默认的它的分隔符是001。
03:05
啊啊,这个斜杠001啊,0001,斜杠001。那你当然你这块也得变成斜杠0001啊,是一样的道理哈,就是你前面用什么分隔符,那这块呢就用什么分隔符把数据分开,呃,这个呢是stop as,也就说还是仍然采用的是拉住了压缩啊,这是ODI层,呃,Location指定这个位置,这个位置啊一定要注意这个改哈,注意改说跟你这个表明这尽量是对应的,对在一起的。有的时候啊,这个表特别多,大家呢就偷懒,这个呢,那下边这个呢,有的时候它不一样啊,找bug的时候还找不出来,都存在的不同位置上啊,存在数据跟我们想要的也不一样,所以说容易产生比误哈,你记住这么三个点,三个地方。对吧,啊,这三者的表的位置是一致的,那其他的表呢,也是一样的啊,你看正常的去创建。这里面都是创建。创建完之后呢,是向这里面去加载数据,那加载数据之前不都说过了吗?你看啊,嗯,我们date在哪里呢?在这里面。
04:09
在DB这里面有这么多张表,每张表里面都有很多数据,我们需要把这里的数据剪切到哪里呢?哎,剪切到这个书仓的warehouse gmail gmail下的ods层啊,剪切到这里面。就是这么一个过程,那不还是load加载吗?对吧,只需要load就行了。啊,Load,那你看这里面具体的命令就是load date pass,然后original date这个路径下的数据,然后all right into,向这个table里面加载数据,然后对应的分区跟我们刚才这个这个。Load date into这里面对吧,啊,Into table是不是没有任何区别啊,啊,没有任何区别哈,行,这是这块的一个操作啊,这句话操作,哎呀,我刚才是不是忘加了一个overri呀。
05:00
对,刚才那张表要加一个overright会好一些啊,Overright in这个table啊,这个overright起到一个什么作用呢?啊,你如果你不加这个overright。如果在导出的过程当中失败了,那下次再导的时候,他会发现这个原来的路径上有这个数据,那它就不会再加载了,那right的话就是原来把原来数据直接全覆盖啊,这回好一些啊,可以加上一个right啊,你说在你原来的。嗯,这个脚本上VMHDFS。在这个位置。In pass啊在这个位置哈。All right。然后这个呢,也是。OVERI啊O啊,向里面去覆盖啊,全覆盖,这样会好一些。
06:06
行,那回来之后,那下边的话,我们具体的去啊创建一些表啊,把表先给它创建完,创建完再说。嗯,创建表呢,这个就复制粘贴了啊,这个你你如果自己呃,手术比较快的话,你可以自己敲一下啊,但是呢,这个东西呢,没有什么技术含量。直接拿到这儿,我拿到这边给你粘了哈。我会快速的操作一下窗帘表卡一两表。然后再来。都是复制粘贴啊,有一张表,这个是order detail。这呢,是这个order skill in啊,这个你们看不到这张表是不是发光啊,而且你们看到了。嗯,下一个呢是商品表,那这个呢是商品表,然后来。
07:05
哎,商品表,那再往下这是用户表,就是手术哈,这考验的就是手术。OK,呃,你们可以把它创建到一个脚本里面啊,执行一个脚本命令,直接就把这些啊都创建完也是可以的。再过来。这个粘的时候别粘漏了啊,别把一些表给整丢了,数着点,一共是23个表。再往下支付流水。比如说别着急啊,慢慢来这指标。OK,再往下第区表。好品牌。嗯,之后呢,是订单状态。
08:05
之后呢,是商品表。商品评论表。还有呢,退单表。架构表。商品收藏表。优惠券领用表。太多了哈。呃,优惠券,这个优惠券全量表。快了哈,还有四张表,之后呢是活动表。
09:00
这就是你们在企业开发的时候啊,这个表呢,就相对来说比较多,一多呢你们就容易晕。但是呢,实际分析用到的表还真不多,之后呢,是这个优惠规则表。所以说第一下别被拍晕,那剩下的事都简单啊,之后呢,是这个编码字点表。终于到头了,嗯,行,那这里面呢,这个就到头了啊,比如说所有的表呢,我们就创建完了啊,创建完之后呢,你可以看一眼啊。感受一把,受TS受哇一看啊,这里这个数据库里面这么多张表,对吧,这么多张表,这个前两天咱有个老学员,嗯,去一个企业上班啊,上了两天班啊,在他这个书场里面创建了这个50张表啊一天啊,一天一口气创建了50张票,给他们领导给吓到了,因为呢,这个咱的老学员呢,实在看不上那个。他们那个数仓啊,那那那个建模啊,几乎就没有什么建模,也没有什么分成啊,就是上来之后呢,直接就开始分析指标啊,他去实之后呢,就准备对这个数仓呢,进行一个重构啊,所以说建了这个N多个表哈。
10:09
好,那这是这一块,那下边的话就要写这个ODI层具体加载数据这个脚本了。
我来说两句