00:00
呃,那么咱们现在呢,本身对吧,那我们要做我们这个啊实付分摊,那么这个实物分摊呢,那它不是我们现在这一张表可以搞定啊,那它的数据呢,要来源于我们的订单,还有咱们订单明细对吧?那么你现在呢,在处理订单的时候呀,它需要呢,和一些我们维度关联,它关联的省份和用户,那么订单明细呢,他也需要和一些维度关联,它关联的比较多,有说品牌品类,然后s puu以及呢咱们SKU,那么咱们现在使用的什么方式呢?使用的维度退化的方式,就是说啊,让我们现在这个商品和这几个东西呢,先关联好,那么关联好之后呢,咱们再写到我们的h base里去,对吧?再写到我们HB里去,对吧?然后接下来咱们呢,把这数据读到对,让我这个东西呢,把它关联好,然后关联好之后,那么咱们现在这个订单明细再和谁呢,再和我们现在它的一个我们的商品来进行一次关联。
01:00
这就OK了,对吧,这个图呢,大家要能明白啊,就虽然说我现在比较多对吧,但是你要知道咱们现在呢,这干的是啥对吧?相比较我们离线来讲,这个图应该还是比较简单的是不是啊,你想一下你们离线画的这个图,对圆给大家画这个图对吧?再一看这个这个东西还是比较简单的,对吧?那我们现在呢,那把这个东西啊,这个大概思路理解了,那接下来咱们就继续来往下看我的代码对吧?那咱们现在前期准备工作啊,已经在我们h base上面啊,已经在我们这h base上面,把什么呢?把我们现在这个表,把维度表创建好了,那接下来那么对应的在我们这个idea中来创建我们这个表上对应的一些我们的样例类啊,来创建这样类啊这些呢,我也直接CTRLCCTRLV对吧。首先商品的品牌在B下面,然后呢,创建样例类,把这个呢拿过来啊,把这个拿过来啊,这个是商品品牌的一个样例类,然后接下来再往下走,那么有什么分类的样例类,CTRLC。
02:17
在这呢,把这个拿一下贝来。这是商品分类的样力类,然后再往下走呢,那么咱们这里还有一个就是咱们这个SPU,它的阳离类SPU音。啊,然后再往下走,这有个商品样类,商品样类的东西稍微多一点了啊,咱们一会看一看,来在这里CTRLC在这呢,我去创建一个我们这个SKU in inform啊这样的一个样零类,然后呢,把这东西拿过来对吧?那商品里边除了我们现在商品本身的一些内容之外,这里还有咱们现在这三个对吧,一个什么呢?一个是我们的cat啊三类别名称,FP名称,以及呢,我们的品牌的名称啊把这名称呢,你得我关联进来啊,就我关联进来好了,这些呢是什么呀,这些是关于我们现在呢,它的一个样例类对吧?它的创建,那么样类创建完之后,大家想一想,那么咱们这里是不是就得体力活了呀,你是不是每一个维度表,你是不是得从咱们的卡卡里边数据读到,然后写到我的HB里面去,对吧,同学们就是我现在画这个图能不能看懂,同学们就是我现在啊,就是这个图的逻辑能不能看懂,可以吧,那我现在的。
03:54
啊,要接下来要做的事干什么呢?我要从我们的ods层,然后呢,去读取我们这个什么品牌的对吧?这个数据,然后读完之后呢,把它保存到我们这个h base里面去,对吧?那这块代码呢,那应该对,也不需要咱们写了,对吧?比如说我现在第一个要第一个去我们这卡卡里边把这个把品牌数据给他拿到,拿到之后呢,保存到我们这个HB里面去,对吧,那这块呢,我直接对吧来把APP创建一下,呃,这个呢,那应该来到我们的地步里边也属于维度数据,在这呢,去新创建一个我们的应用程序啊创建应用程序,然后把这里的东西呢,直接拿过来,对吧,我现在先写一个注释,从卡夫卡中来读取我们这个品牌啊,读取我们品牌它的一个维度数据,对吧,然后写入到哪呢?保存到我们这个h base中去,保存到我们这个h base啊保存h base是吧。
04:54
然后接下来把这个代码呢,直接拿过来,再把这个代码拷贝之前啊同学们对吧,大家想一想大概的思路是什么样的。
05:02
大概思路什么样的,我现在往一这边子写,前面那一套是不是都是一样的,咱们清准一次消费呀,对吧?然后接下来那么不一样的地方在哪呢?我需要把它转换成我们的一个品牌对象对吧?然后封装起来,然后接下来那么咱们要想把h base保存,那么这里是不是得把它当前的这个RD的给做一个我们这个转换,已知转换导一个包,然后进来叫它的一个就是save to菲尼克斯,是不是这样的方法呀,对吧?哎,所以说这种代码呢,不写了行吗?同学们就这种代码不写了,这家不写了,来把这东西CTRLC对吧,然后呢,来CTRLC,然后到这里CTRLV,来看一看我们现在当前我这里面的处理啊,我的处理,呃,这块呢,把它导一下包。这个呢倒一下啊,这个呢倒一下好了,那么咱们现在呢,这个也得倒一下,那么咱们现在来看一看同学们,首先呢,那么咱们要从我们这个ods槽这个主题中啊来读取数据对吧?然后这块呢,是关于我记录一次消这一块内容对吧?然后接下来再往下走,这个是我们现在做了一个我转换,本来呢拿到的是一个我们这个兼职对象,然后接下来把它转换成我们现在的一个品牌对吧,这样的一个对象对吧?然后再往下,咱们呢要保存到一辈子,怎么保存呢对吧?那么直接去调用RDD它的C有图菲的方法,那么需要改一改这里的东西,咱们现在这个表名说0523是吧,然后进来这块呢,不用改了啊,这块不用改了,对吧?这个代码同学们,我不写行不行?
06:42
可以吗?就是如果说老师这还有必要的话,可以再写啊同学们,反正这里面这么多呢,是不是啊吧,但是我觉得写的话,这在浪费时间了,同学们对吧?因为这个代码呢,没有什么技术含量,都是重复的代码对吧?呃,然后接下来那么除了我这个品牌之外啊,除了品牌之外,那么还有什么呢?那还有咱们分类对吧,这个分类呢,是一样的处理逻辑,来在这里我们呢,去把这些东西对吧,给它拿过来对吧,创建一个我们这分类啊创建分类,然后接下来在这把咱们这个数据呢啊把把把这个代码直接给拿过来,对,直接拿过来CTRLC啊CTRLC,然后呢CTRLV,然后把这个该倒的东西导一下啊把该倒的包导进来,还有跌森好了。
07:42
好,那么咱们来看一看,对于我的分类数据的处理,前面的都是一样的,那前面的都是一样的,然后接下来在咱们这块转换结构之后也是呃,调用我们现在这些方法保存到我们这个HB中去,把这块改了啊同学们这个呢是0523啊这块如果你们的话,你们的有可能是什么10210314对吧?好,这是我们这个关于我们这个品啊类别对吧,然后接下来再往下,除了类别之外呢,那就是SPU呗,对SPU对吧,咱们现在呢,把我这个SPU对它的一个处理也拿过来。
08:18
嗯。在这里呢,去新创建一个我们这SPU吧,然后呢,我们这个inform APP啊。把代码往这一放啊,把代码往一放啊,那该导的包导进来啊,该导包导进来,那我现在设置自动导入,但是假如说你现在这个类呢,它可能有多个的话,那么这个时候呢,你还得自己去手动去导一下啊,这个应该去导一下Jason啊,这Jason导一下confi,这导一下咱们使用的是我们的,好了,把这块呢改一改,这改成我们023啊这个六块三好了,那咱现在呢,这个是关于我们现在SPU这一块,注意啊这些啊,如果要是写的话,这个是不是应该就是体力活呀,就是目前如果让你们写的话,同学这个这块代码。
09:16
能不能OK,这个这个应该没什太大事是吧,那接下来那么如果说啊,他是体力活的话,那么咱们现在这里来一个更大的体力活谁呢?我现在除了SPU之外,那这里还有谁再往下是不是开始咱们这商品了呀,对吧?所以说呢,那么咱们现在在想办法把我们这个商品的数据呢,给拿过来对吧,把咱商品数据给我拿过来对吧?那么咱们现在商品数据呢,那这个东西SKU,我这个东西也直接对吧,把它拷贝过来啊SQ e for APP。这里代码呢就比较多了啊,这里代码呢就比较多了,但是这代码呢,全是重复性代码啊,全是重复性代码对吧?呃,我现在呢,在这里去新创建一个我们SKY了,这个呢是SKU info APP啊SQ info,然后呢,把它这代码往这一放,同学们大家觉得我现在呢,在我们这个商品里边,他都应该做些什么事呢?对吧?就假如说咱们现在啊,在这里让你写咱们这个商品,那么你大概都做的是什么事,首先第一个这些东西大家应该都没问题对吧,就是我现在先把这该倒的东西拿过来对吧?然后这块呢,对这个精准移动消费这一块,那应该是没问题的,对吧,这应该没问题,然后接下来到这结构转换对吧,这块呢应该也是可以没问题的,对吧?然后接下来结构转化完之后,它是不是得做一个维度退化呀,那维度退化的话,是不是得用商品品牌,然后呢,品类短P他们几个先关联一下呀。
10:49
对吧,那么如果他要相关联的话,这个东西怎么样去关联呢。咱们这里是不是两种方式对吧,以什么以分区为单位,或者说什么,或者说以广播变量的形式嘛,对吧,那么咱们现在呢,在这里对吧,大家看一下我们呢,在执行的时候,把这个该导的东西给导进来。
11:10
把这样东西导进来啊,然后这个RD呢给导进来对吧?好了,那么咱们现在呢,在这里啊,你看他用哪种方式对吧?用哪种方式,那一看transform,那你说他用的哪种方式,是不是咱广播变量的个形式啊对吧?广播变量形式,那么如果说广播变量的话,那这块呢,那把I利拿到,然后接下来,那么如果使用广播变量,它是不是应该在咱们每一个采集周期里边,把谁呢?是不是把咱们这个品牌,然后呢,咱们这个类别以及SPU它的数据给我查到啊对吧,那大家看一看,其这种你可以不加啊同学们,这个什么f RD count新啊大于零的话,其实这你可不加对吧,这这这个你是可以不加的对吧?呃,这是可以不加的,对,这可以不加的对吧?来,那么如果说咱们现在呢,把这个拿过来之后,他首先干什么了,这段代码大家单独写,那肯定知道。
12:02
首先呢,我现在要去和我们这个品牌关联,那品牌关联呢,在每一个采集周期之内,那么咱们呢,都要去把品牌的数据给拿到,就每一个采集周期他都去干什么,他都去拿一个咱们品牌的数据啊,拿品牌数据,然后接下来拿完之后放在哪的呢?说放在一个map里边来包装一下呀,对吧?哎,那么这块代码同学们其实和咱们前面的一样的,对吧?哎,我现在每一个我都拿过来,然后放到一个我的map里边来包装一下,对吧?放在map里面包装一下,然后接下来。那么除了这个品牌之外呢,还有我们这个类别对吧?这个类别呢,也是到我们菲尼克斯中,然后呢,到咱们这张表,把我们所有的类别给查出来,查了之后放到哪呢?放到map里边去了,那么只不过map呀,它的key是什么?是不是就咱们当前我们这个品牌的ID,或者说我类别的ID,然后咱们现在这个value是什么,这个value是不是就是我们现在查询出来的品牌类别的一个接能字串啊,它的一个接对象啊,接对象对吧?然后还有什么呢?还有我们现在SPU对吧?把这块也改一下,这个呢,是我们0523~023对吧?然后接下来那大家想一想,那么我们现在呢说如果要是以采集周期为单位的话,那么这些代码它是在哪执行呢?是不是在我们这个只有端执行啊,对吧,那么我现在呢,那我再去做处理的时候,这个这这个处理的业务呢,你在那行对吧,那么也就说每一个task,每一个分区的数据,它都会去拷贝一份咱们现在这个map的副本。
13:34
对,那这样的话对我们的AQ的压力是比较大呀,所以说咱们可以怎么办呢?是不是可以使广播变量,但是原来咱们广播的是一个,现在广播的可不是一个,现在的三个,对吧,现在三个,那么怎么处理呢?第一种方式把咱们这三个你创建三个广播链。啊,就是现在啊,第一种方式,你创建三个网络变量,把这三个变量给它放到我们不同的AQ去,行不行可以对还有第二种方式啊,把这三个东西合并一下啊,就是咱们现在不有三个map嘛,把这三个map再放在一起呗,对吧,那你想一想,我是不是可以这一个list list就是放到map呀,对吧?所以说呢,大家看在这里我要定义了一个粒子集合,然后粒子集合里放的什么呢?把这三个map给我放进去了啊,把这三个map放进了,然后接着把谁作为广固变量呢?把咱们粒子集合呀作为广播变量。
14:28
把这个粒子集合作为网络变量,对吧,然后接下来那么咱们现在呢,把这个代码呢,对这个这个开始执行,那执行的话,咱们这里的以分区为单位,其实这块同学们你分不分区啊,这个效果不会太大了。你想一想同学们,就咱们现在在这处理的时候,就是我也不以螺分区为单位进行处理,其实效果不会太大了,因为咱们这里说并不涉及到什么连接呀或者什么的,对吧,它其实也是把咱们现在这个RD数据一条整取出来,所以说呢,这会其实你用分区也行,不用分区也没问题啊,用分区也行,不用分解没问题对吧,那我现在呢,那你再去做的时候,对吧,做的时候比如说这个呢,是以分均为单位对吧,那我想改一改,我想不以分区为单位。
15:17
对吧,我不不不想以分级为单位了,那如果不想以分级为单位的话,同学们在这呢,我就直接上手了啊直接上手了对吧?那么如果说我现在不以分级为单位的话,这里拿到的应该是直接就是咱们这个商品对象了吧,对吧?这个就不是I tr是不是就是它了呀,对吧?然后接下来那么咱们现在拿到它之后,那你要干什么呢?那首先我要从广播变量里边把咱们广播变量给拿到对吧?这个广播变量是咱服装这个粒子集合呀,粒子集里放三个东西,是不是放了三个麦培呀,对吧?那你从咱们这个三个这个集合里边分别把咱们现在这个map给拿出来,对吧?第一个元素那是谁对吧品类的,然后第二个元素是咱们品牌的第三个元素,对吧,是我们这个对吧,这个s puu的是不是可以把它这三个数据给拿到,对吧,那么拿到之后呢,这个时候因为你现在一条条处理了,没必要去做迭代了吧,对吧,没必要对结合做别迭代了,这个呢就不要了,那如果这个不要的话,那你想一想你当前打造的是不是就当SKU,这for循环是不是没有了呀,对吧,哪有什么for循环了,没有了对吧。
16:17
这个问译完不要了,对吧,然后这个呢,这个就不要了后,接下来咱们现在呢,在这里看一看,同学们说我现在呢,把咱们当前map克拿掉了,那么如果这三个map拿到之后啊,那我现在是不是要判断一下呀,怎么判断呢?我从我商品这个里边,我是不是可以拿到咱们这个品牌的ID,我从我商品对象里边,我是不是可以拿到咱们这个类别的ID,从商品对象里边我是不是可以拿到s puu的ID啊,所以说呢,咱们的这里我呢根据我们这个商品对象它的一个呃,这个属性来到我们三个map里边呢来获取,如果能获取到的话,那么这个时候咱们把商品它对应的这个名称,这个属性给它设上去就可以了。
17:02
啊,把对应的名称这个属性给设上,这就可以了,对吧?这是关于我们现在的这个写法,其实大家想想这个代码其实在咱们前面这个东西是不是都写过呀,对吧?哎,只不过呢,他现在把这些东西都组合到一块了,对吧?组到一块了好了,咱现在呢,那得把这个代码处理处理,同学们如果说你这要是map的话,对吧,那这块呢,SQ in four对吧?然后这块呢,咱们得处理完之后,对吧,那得把这个SQ in four是不是得保给反回去。对吧,返回SQ in inform,对这块呢,这RDD还需要吗?这个RD是干啥的看看。卖吧。这个map到那这个map到这是吧,然后这个map到这对吧,诶这个map到这这个ledd对吧,那再往上对吧,再往上对吧,是不是它的RD啊对吧,它的RD,那咱们现在呢,那这个东西得给它留了对吧?这个东西留了对吧,SQ e four r DD对吧?那么最后呢,咱把这个东西给它拿过去就行了吧,看一看啊。
18:20
整个这块的这个代码。然后接下来咱们现在呢,把这个维度关联完之后啊,把维度关联完之后,那么接下来呢,咱们要往我们这个A保存对吧,那这块呢,也是一用二三啊这块呢,把这个东西给它对吧?去创建一下啊,把这该导的东西给导进来对吧?给导存导进来,好,那这样的话,关于我们现在啊这个维表对吧,他们几个的一个关联对吧,这个就完事了啊,就是我现在呢,把我们现在这个维度表的的一个处理对吧,已经完事了,稍微停一停啊。
我来说两句