00:00
那加乙数据脚本呢,就是这么几步,你看井号叹号B啊,然后呢,还有定义变量之后呢,这块呢是日期,那下面这块呢,是具体的业务逻辑对吧?啊业务逻辑,那业务逻辑。换换呗,下面这个呢,一会再说啊,一会再说,那中间这块业务逻辑,那怎么换呢,拿回来。我直接把他那拿了。你不就表多吗?啊,其实就是表多哈,没有别的。对吧,哎,就这么多,比如说中间这个过程就是load date in pass这里面,那以后你们写这个这块逻辑的时候怎么写呢?你先把一天的给我写完,比如说你要写你先写可以先写什么呢?3月10号呢。你把3月10号的写完,写完之后能够运行了,好,那接下来要写脚本的时候,只需要把3月10号这里面记住了,第一句话叫遇到日期的。我写上啊这样。嗯,遇到。
01:02
遇到日期把它换成什么呢?换成。服。Do that。遇到表。遇到表嘛,对吧,啊,遇到表名字加什么呢?哎,加上。他。就行了,你说在整个这里面,你不管多复杂的业务逻辑,你只要把这两事我搞定去了,你说第一个遇到日期加上都当然都在上啊,遇上这个表加样他那当然这个日期啊,你要看着点啊,他是不是确认是当前的日期,有的时候啊,这个日期要在当前的日期,嗯,减一减二减三啊,那个稍微看一点就行了,其他都没问题,那你看吧,这里面load data in pass啊,然后原始数据那这块呢,日期就是当前日期。是吧,然后呢,这个后面这块呢,是Dollar APP。WB在这个表的名字前面都给我加上WB。
02:01
这行,那你后面这个分区这个DT,哎,DT呢是时间,只要是时间就换成Dollar do date,你说你只要把3月10号的搞定,那其他的是全部一个替换就行了啊,甚至你可以这样玩,呃,CTRLF你可以替换啊,比如说这个2020年杠。零三啊。杠零三杠幺零啊,你可以给它替换成什么呢?啊,你可给它替换,假如说啊,你可以替换成到符do,对哎,这样去快速操作啊,非常之快啊,非常之快就OK了。这是这里面了一个叫。加1/3。为什么叫4Q1呢?因为我在执行这个脚本的时候啊,还记得不,有两张表是没有必要每次都导的。还记得哪两张表吗?
03:06
对吧,哎,省份表和日期表啊,省份和省,省份和这个啊,地区地区表,那这两张表没有必要导的话,那你就要有个写一个逻辑啊。写个什么逻辑呢?哎,写个这样逻辑,你传进来的参数控制它去怎么导,那正常情况下呢,它是这么控制的啊,可以写一个叫嗯,K传进来,你让我怎么打DOLLAR1,然后呢一。比如说第一次fl ST first,那first的话呢,我就诶。我可以执行说Q1第一次嘛,对吧?啊,第一次给了谁是吧,是不是这个波波老师啊,问问自己第一次给了黑是吧,那这里面呢,这是之前第一个circle口啊,全部都导完,嗯,但是我这里面好像没放那个日期的吧啊啊那个省那个地区的啊。
04:06
地区的地区的地区的。对吧,这里面没放地区的,那这里面只有21张表,那我再来一个circle,再来一个circle,也就CIRCLEQ2。等于我SQ2里面我只放D区的。那你看一下,我这里面只放地区的,你只把这两个拿回来。哎,对比一下,我这里面只放了这个base promise和base,那就简单了,那现在这是简单了,那我只需要在执行的时候先执行上面的。然后再执行。二这不就搞定了吗?对吧,比如说第一次执行的时候,执行一下前面21张表,再执行后面的两张表搞定,那如果是正常情况下呢?哎,正常情况二二的话。
05:05
哎,那我就这一块就变成只执行S扣一啊。这不就是对应的业务逻辑吗?哎,就这么简单。那这个可以干掉。是吧,哎,这样干掉了啊,Circleq号1Q2Q号一。然后上面你看啊,这是DOLLAR1,相当于是传进来的第一个参数,我判断的是first还是二。那么你的时间这个参数,它就会变成第二个值了。怎么为什么变成第二个值呢?因为你是调用这个脚本的时候,你会这样写脚本first,然后之后跟上2020,杠零三杠幺零对吧?比如说这个时间会作为第二个参数值,那前面这个呢是作为第一个,那第一个呢是区分是走first的函是二。哎,好,那这块这样。嗯,那后面这个下边这东西要不要呢?要不要对每一张表再重新建一个这个索引呢。
06:04
哎,那你看啊,这个要不要你得看一下你这个原始数据。我在原始数据在俄日date gmail gmail下面的DBDB里面随便找一张表,Activity,然后呢,我要导这个3月10号和3月11号都要导。打开我在3月10号这里面的数据。它就有这个index,那么它在漏的时候。就会把这个index直接倒过去。啊导过去,那你说这块呢,就没有必要去创建索引,那这个索引在什么时候创建呢?还记得不?哎,就是在这个从MYSQ里面往这导数据的时候,我们加了两个参数。啊,一个呢是compr压缩,另一个呢是compr,这个压缩叫LGO。那LP你说这块导的时候已经给你导了,你在那边导和这边导是一样了是吧?哎,如果前面没做的话,没做只有这一个文件,那你就需要在这块是不是一个一个去加呀,你说导这个啊,乘列水引啊,再导下一个再乘列水引啊,你说这块呢,这个没有必要就把它删掉。
07:09
嗯,就是这样的一套流程啊,一套流程。行,那这套流程完事之后呢,我们来试一下,看能不能用啊。嗯,井号叹号B,再查一下,没问题,没问题,这是CIRCLE1,这是CIRCLE2。SOQ1SOQ2,然后K分之没问题,试一下啊啊结束啊结尾E。嗯,Sac啊,反过来对吧,哎,我们检测一下啊,看看能不能用,不一定一下能成,但是我们可以慢慢调啊。目前这个定义这么一个脚本啊,VMSHDFS啊,这呢仍然是to to ods,然后呢,之前是log,那这块变成DB.sh。
08:02
放里面。好甚帽的T7A dys to DB OK,那这样呢,他就创建完了,创建完之后呢,我们执行一下HDFS,嗯,DB。第一次导入LD first first之后呢,是2020年杠零。三啊零三杠1010没倒过吧,应该是没倒过幺零。对,因为我是第一次打啊,先倒一次幺零啊中。感觉有戏啊,没问题,看这样子没问题。
09:13
挺快的啊,这个插入还是挺快的,他在执行第二个射口。你看它每执行第二个时刻的时候,中间呢,总会这个有一个这个加载的一个过程啊,相对会比较慢,如果你放在一起的话,相对来说效率呢,肯定会高一些。它相当于是have引擎有一个开和关的一个过程,你看这个第二次执行的是这个省份嘛,地区啊两个,那现在呢,这个这个数据已经导完了,导完之后呢。查一下吧。From随便查一张order。厘米的two,哎,那这样呢,现在呢,二月这个3月10号的数据就已经加载过来了哈,加载过来你要测一下,那这个测完之后呢,下面我们再来执行一下这个啊,3月11号的对吧?啊3月11号这个记住啊,这个中间这个词要要变了,变成二了啊变成二。
10:11
你前面这个呢,是first。First啊,要区分开,那来再一下把它变成first。11啊,改好了,然后执行。那我们这边准备好查询啊,准备好查询工作,那这块你就不能这么查了,你就得加上过滤条件了,YDT等于。2020杠零三杠幺幺啊,等着哈,等他执行完,我们就立刻执行。
11:09
好,那这个执行完了,我们来回来来看一下,查询一下。哎,现在呢,就是这个3月11号的数据我们也有了,对吧?啊就这么简单哈,所以说你会发现啊,这个写脚本也挺容易的啊,没有你们想的那么难,而且呢,会提高我们大量的这个开发效率哈。行,这就是整个这个ODI层我们就都打通了,这里面既包括用户行为的,也包括业务的数据啊,业务的数据哈,你说前两层的时候,大家不要晕一会呢业务一会用用行为,那其实在企业开发的时候,他就是这样。啊,他就是这样大杂烩哈,啊之前我们老的出商呢,是先把这个应用行为讲完之后又讲这个业务,但是呢,虽然说这个大家理解起来前期可能比较简单,但是如果去企业这个做项目的时候,他就是N多个数据源都会进来。都会进到你这个ods层,那你就需要哎,给他捋清楚ods里面的用户行为我们建表,然后呢,业务数据见表,还有爬虫的我们要建表,还有一些其他的这个网络请求过来的数据也要建表啊,不同的数据源你就建表就行了,建表之后先给它导进去,因为OD层的特点呢,就是保持数据源嘛,它不做任何修改,你也不用有过多的一个担心,对吧。
我来说两句