00:01
呃,那么现再往下走的话呢,那么咱们现在呢,那就得来看一看了,对吧,本身呢,我把咱们这个订单明细的数据啊给获取到了,那接下来咱们的应该让订单明细把这个实时表和我们的商品品牌SPU的这个维度表呢,来进行关联,大家想想这个东西怎么关联呀。就你得先把他们之间的关系给我弄明白,同学们对吧,把这些东西呢,我都关掉啊,把这东西关掉,然后现在呢,咱们拿到谁拿到订单明细吧,把订单明细给打开对吧?把订单明细打开,那我现在关联的目的是什么?大家想一想,你现在你把订单明细拿到了,但是我到时候统计的时候,我有可能呢,我有各种各样的不同的一个这个指标,说来你给我统计一下,咱们现在把这个案例商品名称给我统计一下。按照品牌名称我统计一下,对,按照类别给我统计一下,对吧?对,那这些东西咱们现在这里是不是都没有啊对吧?所以说那我肯定得和什么呢?肯定得和咱们这个商品说进行关联,对通过什么进行关联的,那我们可以看到商品这里是有个SSKYYD啊对吧?而且其实在咱们设计的时候啊,这个东西有些字段呢,它是冗余的,有的时候我现在我可能在统计订单的时候就想,诶把那这个商品名称都西显示出来,对吧,那这块呢,其实商品名称在咱们商品表里面是有啊,对吧,但这里设计个其实余的的为的概什的方便查询对吧,比如说我现在仅需要把这个商品名称展出来的话,这个时候咱们是没有必要再去我们这商品表里去做关联查询了呀,对吧,有的时候涉些冗余字段,它可以避免咱们这关联查询啊,可以避免的关联查询对吧?哎,那么我现在呢,那你要到商品表里面去的话,那在咱商品表里边来找SQ的info,把这个打打开,那么商品表里边对吧,那么他通过什么观点呢?通过到S的这个ID的和咱们现在的订单的这个。
01:52
进行关联,然后接着再往下走,那么在咱们这个商品表里边,它有一些咱们这个ID,比如说这个咱们品牌的这个什么,这个咱们现在这个类别的,还有什么s puu的s puu和s puu它什么关系,什么叫做SPU,什么叫做SPU,你们做过咱们这个离线电商对吧?那这个东西这两概念,那常识性的东西,你肯定得知道SPU是什么。
02:16
商品聚集的最小单位,SKU的商品库存量最小单位,对吧?那么这两个东西都一定要弄明白,都一定要弄明白对吧?然后接下来呢,咱现在呢,也就说我只要把这个商品啊给拿过来之后,对吧?那这个时候呢,我可以和啊,什么品牌呀对吧,什么品类呀对吧?然后什么的SPU啊来进行关联,那么在他代码里边咱怎么写呢?其实这个东西也比较简单,对吧,我现在是不是已经把我现在这个这个所有明细给拿到了,然后接下来在这里我是不是可以进行维度关联,那么先关联哪个维度呢?比如说我先去关联咱们这个商品维度,注意啊,在这里我先去关联我们这个商品这个维度,对吧?那么关联商品维度之后,那大家想一想,是不是相当于在我订单里边有商品相关的内容了呀,对吧,那么它呢,会形成一个宽表,然后接下来那么用它形成这个宽数据,再去和谁再去和我们这个是吧,这个品牌维度关联是吧,再去关联我们这个品牌是吧,这个维度啊,再去关联我们这个品牌维度。
03:16
对吧,那然后接来用它再关联完之后呢,那么再往下走对吧,再往下走,那么再往下走的话,那咱们现在这个除了品牌维度之外,还有一个类别吧,对类别维度,然后再往下走,还有一个什么呢?还有一个是我们现在它的一个SPU啊,还有一个是关联我们这个SPU,对吧。那么大家觉得咱们现在这种管理方式怎么样呢?其实我现在呢,这个如果是使用这种关联方式的话,对吧,其实肯定能肯定能把咱们的效果实现同学们对吧?但是呢,大家想一想,每次呢,我这里面可能有多个订单明细项,那么咱们现在在这关联商品的时候,是不是每一个订单明细项都得关联一次,对吧?比如说你1000条这个订单名项,那么和商品那你肯定关联1000次对不对,然后进来你关联品牌的时候,是不是这1000个名项是不是也得关联一次呀,关联人类别的时候,是不是也得再关一次,关联ST的时候是不是也得关一次这个东西啊,我感觉有点太麻烦了。
04:16
对吧,就是每次咱们现在呢,在做关联的时候,我们订单明细项呢,它都要去重新关联一次啊,这个比较麻烦,效率呢不会太高啊,效率不会太高,但是这种方式呢,对其实也有它的一个好处啊,它的好处什么呢?它的好处呢,就是我这个当前我们现在订单明细,对吧,它实时的关注啊,或者说的观察每一个我们这个维度的变化,对吧?如果每某一个维度发生变化了,他可以实时感知到,对吧?比如说我现在的这个以五秒钟每一个批次来进行处理,那么咱们现在假如说下一五秒钟咱们其中啊,我的商品品牌这个数据发生变化了,如果发生变化的话,那咱们在下一个批次,我是不是马上就可以感知到它的变化呀,对吧,这个呢是它的一个好处对吧,但是大家想一想,在一个电商网站里边,商品品牌类别IPU,像这些东西基本上不会随意变。
05:08
呃,这个东西一旦啊,他对这个这个这个发布好了,基本上不会随意变,那么如果不会随意变的话,对吧,那么咱们其实呢,可以用另外一种方式什么呢?大家想一想,咱们刚才啊,看到了我们现在这个商品这个表的设计,在商品表里边,它是不是关联了我们现在它的品牌是不是关联了品类是不是关联了我们现在这个SPU啊,那能不能这样干什么呢?我现在呢,让我们这个商品呀,先和他们几个关联一下,就让咱们商品先和咱们现在这三个维度关联一下,因为商品它本身是不是也是一个维度啊,对吧,但是我现在呢,让他和咱这三个维度呢先关联一下,那么如果商品和这个其他维度关联完之后,咱们以后订单在关联的时候,是不没有必要和这四个都关联了,你只需要和谁关联,你是不是只要和商品关联就可以了呀,对吧,这种方式叫什么呢?这种方式叫维度退化啊这种。
06:09
方式叫维度退化啊,这种方式叫维度退化什么意思对吧?比如说原来我这里12344个维度这个什么,这个是我现在这个实时表对吧,这个呢是我实时表,对就咱们现在订单明细奥D对吧?然后接下来他怎么做的,先他俩关联得到一个,然后接下来再和它去关联得到一个,再和它去关联得到一个再和它去关联,是不是得到结果呀,对吧,咱们每一个啊维度都要关联一次,到现在呢,那如果说是维度退化的话,那么这个时候咱们现在也是1234这么四个维度,那么他们之间怎么关联呢?对吧,比如说我现在用它和它关联一下,然后现在关联之后和它关联一下,和它去关联一下,然后接下来,那么咱们真正在我实时表和它维度上去关联的时候,我没有必要和它一次关联了,是不是直接和我现在这个东西关联一次就可以了,对吧,就相当于把这个关联的维度啊给降低了,这个叫什么呢?叫维度退化。
07:05
啊,这个东西叫维度退化对吧,那么咱们这里用哪种方案呢?我们现在使用维度退化这种方案啊,是维度退化这种方案对吧?但是这种方案呢,它也有不好的地方,它也有不好的地方,你们觉得不好的地方在哪?同学们它有弊端,刚才我说的,刚才我说咱们现在这种方式有好的地方对吧,那它不好的地方,好的地方肯定差不多,相相对应的嘛。部所有的全部的对大家想一想啊,咱们现在在这里,我们呢,有商品对吧?和谁呢?和咱们这个品牌品类,然后以及IPU来进行关联对吧?那么它的关联的时候呢,那么咱们最终把这个维度表数据肯定要保存到我h base里面去,对吧?肯定要保存到h base里面去,对吧?那么假如说啊,我现在呢,在咱们初始化的时候,我把它们都关联了一遍,然后呢,关联完之后保存到h base去了,那么如果一旦其中啊某一个维度发生变化了,大家想一想,维度发生变化,咱们假如说我现在商这是什么呢?品牌对吧?这里的数据发生变化了,你本身品牌你自己可以感知得到,但是我现在商品能感受的到了吗?
08:14
感知不到,那h base这里边数据是不是就不会变化呀,所以说呢,它这种方式呢,它的弊端就什么了,它感知不到咱们就变化对吧?所以说一般咱们如果要用于催化的话,这这个东西你不能随便变啊,不能轻易变,如果其实这个东西就就要需要没事你变一下,没事变一下啊,这是不行的啊,这是不行的,好了,那咱现在呢,来看一看我们具体的的处理方案,对吧?呃,第一种方式对吧,就咱们刚才一个个关联吧,但这种方式不好,对吧,每次每条记录都接似的关联系统比较低,那么第二种呢,维度退化,咱们使用这种,那么如果使用维度退化的话,那么咱们大概的一个操作是什么样的呢?那咱们就一步步来呗,首先在咱们h base里边把对应的表对吧,以及维表给创建出来啊,给创建出来对吧,那首先第一个品牌咱们现在呢,在这CTRLC把这个这个数据啊给创建一下,那么如果要创建这个HB的数据的话,那在这里咱们。
09:14
再把你工具给打开。啊。一辈子没起,我今天起了吧,一辈子。It master,但好像提的有问题对吧,但是好像提有问题,呃,CK写了吧,然后呢,咱现在把这个给重启一下stop,然后呢,没问题吧,不是这这里边我看都都少一个h master的对吧,这这里面是我正常情况下,我现在这里边应该有两个吧,挺正常的吧,对吧,我现在把它先停一下。
10:45
这时候有1MASTER了,对,然后接来呢,咱们现在重新连接一下好了,那么连完之后呢,那么咱们现在来去把这个字体稍微改一改,它这个每次要不保持三的话,这个字体还得重新调是不是。
11:13
每次都要重新调一下,呃,那么首先呢,咱们来看一看当前我们现在这里面有哪些表了,现在咱们这里一共有三张表,一个呢是用户状态,一个呢是用户信息,还有一个是省份信息,那接下来咱们在这里呢,继续创建表,首先第一个把这个咱不要,呃,把这个建状语句呢给拿过来啊,把建状语句拿过来。CTRLC啊CTRLC,呃,然后来到这里,我呢也是改一下,咱当前的这是T贸0523啊623,这个是关于我们商品的一个品牌表,那这里主要有ID和品牌名字两个字段,对这第一个啊第一个然后接了,接完表之后呢,咱们养成好的习惯,Select星,然后呢,From从咱们这里边做一个查询,看一看这个表创建成功没有啊,这个表成功了,这是第一个,那么除了它之外呢,咱们再创建我们这个分类表,把这些东西砍成LC啊这个东西我就不一个大家挑了,同学们我也没必要敲,对吧?这时候呢,这个是500523,把这改一下。
12:27
然后接下来这里边主要有什么ID,然后内部还有一个二级分类的ID,对咱现在把这个表创建一下,创建完之后呢,我们也是对在这下边去执行一个我们的查询啊,把这个名字改一改啊把名字改一改,来看一看,我现在这个分类表也创业成功了,对吧?品牌品类再往下是不是得有SPU了呀,对吧?来,那咱现在呢,再往下走对吧,创建SPU,把这个SPU表创建的打过来,然后这个改成0523执行一下。
13:03
然后咱现在呢,来查询一下啊,查询一下把这名字改一改,对吧,来看一看我现在呢这个PU表对吧?是不是创业成功了,这也没问题,然后接下来那么除了我们现在品牌品类PU之外,是不是再往下,是不是得咱们商品类这个商品它管联的东西比较多了,来把这个东西呢,CTRLC拿过来啊,拿了之后呢,往这一放啊,拿着之后往里一放啊,这个呢是我们这个05230523,然后这个是我们的SQ知把它的运行一下,然后咱们去做一个查询啊。询一下,那么现在这个商品呢,经创建了,哎,那目前咱现在啊,在h base里边这几张表呢,对吧,就已经完事了,那么表创建完之后,大家想一想,那么你要想去执行,那么你应该怎么办?你是不是也得监听着咱们当前这几个维度表的变化呀,对吧?你肯定也得监听咱们这个维度表的变化,对吧?那么如果要监听维度表的变化的话,同学们这块呢,咱又得变一变了。
14:18
注意啊,原来你看咱现在在卡不卡里边对吧?最开始的时候咱们呢,是在我们这个这里对吧?在我现在这这这个主体里边去获取数据的,然后接下来呢,那么咱们现在的有个ods层对吧?咱们主要呢从ods层对吧来拿到这个数据对吧?然后接下来那么咱们现在呢,其实这里啊,还有我们ods,它除了这个之外,你像刚才咱们创建这几个什么品牌呀,品类呀的什么SPU啊,那么这些东西它在咱们一开始初始化的时候,这个数据是不是已经在数据库里面去了呀,就这个东西啊,你看就咱们现在在统计的时候,现在咱们什么品牌品类到这些东西它已经有了,对吧?你看咱们这个这个品牌对吧,在这里它已经有了对吧,那我是不是也应该把它给初始化到我们现在h base里面去呀,那么如果初始化的话怎么办呢?对吧,那你是不是也得去执行我们现在Maxwell对吧,它这个bootrap这个工具对吧?那么这个bootra工具呢,它是不是也是要把这个采集到我们这卡拉这主题里去,也要分流,然后根据咱们这个不同的。
15:19
表现了不同的一个这样的一个主题啊,对吧,那么接下来,那假如说我现在想去监控的变化的话,你在这里是不是得有一个Spark stream程序去监控它呀,所以说每一个维度啊,那么到这呢,它应该都有一个我们对应的一个Spark streaming,对吧,维度表,每一个维度表是不是都应该有个Spark程序来监控对行处理啊,所以这块东西呢,就多一点了,我这边呢,往这拖一拖啊。这边呢拿一下啊,这个呢,这边拿一下啊。
16:00
这个拿过来。好了,那么咱们现在除了这些之外呢,那其实这里还得再给我来几个SPA,就这里啊,咱们现在SPA程序不太够了,对吧,还得再来几个对吧,一个是处理品牌的对吧,这拿过来。一个呢,是处理我们这个类别的,一个呢,是处理我们现在呢,它的PU的,那另外一个呢,是处理我们现在它的一个我们的一个商品的啊,另外一个商品的啊,所以说大家想一想这些东西,它那个处理过程是不是就是从这里读数据,然后读数据,读数据,读数据再往哪写,是不是再往一辈子写啊,你说这个代码我是不是不需要再写了,对吧?所以说呢,同学们来,那咱现在呢,把这个东西拿过来对吧?那么它本身呢,这个刚才detail有了,那再往下呢,这块咱们改一下,它呢应该是对吧?读取什么呢?咱们SPA dream这个别叫它了,比如说叫我们现在品牌对APP,他呢是读取我现在对他的一个,对吧?那么获取什么呢?获取我们现在的。
17:29
从品牌这样的数据啊回品牌数据,然后接下来那么除了品牌之外呢,还有别的,对还有别的对吧,那这里呢,咱们现在把这个拿过来,对把这个拿过来,那这个呢,它应该读取类别,那类别呢,那比如说叫咱们这个cat green base cat green3,对这类别你们当时在分的时候分几分几级啊,三级是三级是吧?哎,那么咱现在呢,那应该去读取我们现在呢,这个base cat3啊它里面数据来获取什么呢?来获取我们类别数据啊,然后接下来呢,除了类别之外呢,还一个是我们的SPU的s po。
18:20
这个呢,就是我们的puu inform,那么它呢,去读取我们现在po的这张表,然后呢,来获取我们现在s po它的一个数据啊,S po的数据啊,然后接下来除了这个之外呢,再往下,对,那么这块呢,咱再来一个啊,再来一个。那么再来一个这谁呢?这个是我们这个商品对吧?那这个呢,就是SK医保APP对吧?那么他读取谁读取我们现在这个s puu inone对吧?这张表来获取呢,我们这个商品对吧?来获取咱们这个商品啊它这个数据,那么大家想一想,像前面这一个啊,那么他们在处理的时候,那其实呢,我们这个要拿大一点对吧,他们拿这在处理的时候呢,把这个要拿大一点对吧,什么呢?说本身啊,我现在如果要是我们这个品牌的话,那么他处理完之后是不是要把这个数据对吧?要保存到哪,是不是得保存到我们的HB面去,然后呢,咱们现在这个类别的话,那么这里是不是也要保存HB里面去,然后再往下,对这些呢,都是对吧,我现在呢,这个也要保证一个位置去,然后这个它的首先要干什么呢?同学们,你现在如果要是商品的话,咱们说是不是有维度退化呀,那么维度。
19:48
的话,它是不是要在咱们这里边先和谁呢?是不是先和我们这个品牌,然后呢和谁和咱们现在这个类别和SPU先关联在一起啊,对吧?那如果先关联的话,这块呢,它的箭头呢,应该往上来,是不是得先从我的HP里边把我们这个品牌,然后类别一些SP的数据给拿到,拿到之后关联完之后再怎么办呢?是不是再把它写回到我们这个HB组数去啊,对吧?所以说呢,这些呢是我们对维度的一个处理,同学们这些呢是我对维度处理,那你现在呢,你可以把这两个颜色呢稍微标记一下,对吧,然后这块呢。
20:24
我给标记成一个对这个颜色对吧,换一个颜色对,然后这块呢,咱们这个订单detail,我给他呢,稍微换一个颜色,稍微换一个颜色,那么这两个呢,其实是我们对实时数据的处理,像这些绿色的其实都是什么呀,稍其实都是我维度的一个处理啊,对吧,其实都是维度的处理好了,那么我现在呢,如果把这个维度表处理好之后,同学们,那么到时候谁和我的维度数据进行关联呢?是不是咱们现在要它来和它维度数据进行关联呀,对吧?所以说呢,在咱们这里边,你得去从我们这个h base里边,把我的A度维度数据呢,给我拿过来关联在一起啊,把这东西呢给关联在一起,对吧?那么接下来咱们再往下处理的话,那其实就开始干什么了,对吧,就开始对吧,把我们现在的携代码对吧,把每一个不同维度数据呢,给它读过来,然后保存到我们的HB中去啊保存HB去,咱们先稍微休息一会啊,先稍微休息一会。
我来说两句