00:00
对吧,咱来看一下这个图对吧?呃,前天是吧,咱们做的其实这块就是订单对吧?相关的这个内容我可以拿到,然后并且呢,和我们这个省份以及用户啊这两个维度转进关联,是不是形成一个宽表了呀,对吧?然后今天呢,咱们现在是把订单明细对吧?这个数据给拿到了,然后并且呢,和我们现在商品相关的电影数据组合一块形成宽表了,对吧?那我现在大家想一想,如果说啊,我要想去做我们这个实付分摊的话,我是不是需要订单和订单明细这个数据都得要啊,我想做实付分摊我得知道诶当前的订单它对应的订单明细项是哪些,我是不是都得要对吧?那么如果都得要的话,那去哪去取呢?目前你这个数据是不是直接对先打印到我们这个控制台了,或者说你直接保定的ES了,对吧,但是我现在我还想对吧,把这个宽表数据再要一下,那怎么办呢?那你可以再往回写。
01:00
啊,再往回写,那么如果再往回写的话,那这个时候呢,那来到哪呢?是不是来到我们现在卡不卡右边去了,那这个应该是我们的DW第一层啊,这个呢是我们的DWD层对吧?那么我现在DWD层它主要什么呢?主要有两个,一个是DD,然后呢,我们这个order for对吧?那么另外一个呢,是DWD,然后w order detail啊我一个是订单的数据,一个呢是订单明细的数据,大家想想我这个程序是不是还在一直往下运行,但是我现在我这么设计的好处,我每个文度是不是可以单独做分析啊,你想想咱们前天我到到这儿,我再把这订单对这个做完了,我是不是可以在咱订单这我单独去分析订单什么相关的操作,比如是不是首单呢?对,然后首单的什么消费什么地区啊什么的这些统计啊,对吧,那么咱们现在呢,在这里啊,那我继续再往下走,再往下走呢,我要把咱们现在什么的,就是关于我们这个订单和订单明细关联起来,所以说呢。
02:00
那我需要把这数据呢,再给写回去啊,再写回去,那么如果再写回去的话,那这块呢,咱们得把对吧这个给拿过来,对这个呢是往回写的了,对这是往回写的,把这颜色呢稍微调一下,对这个颜色稍微调一下这个什么颜色。就这个吧,啊,那咱们现在呢,大家注意啊,那我当前呢,在咱们这里边,我呢要把咱们这两个订单和订单明细对吧,它的数据呢,再给写回到我们这个卡卡里面去啊,再写到卡卡里去,然后作为我们现在它的一个DWD1层对DWD层,那么如果写回啊这个操作呢,那其实对还算好对吧,那其实就是什么呀,就是往卡卡里边来插入数据呗,对吧,这个事儿可以搞定吗?同学们,咱们好像也封装工具类了吧,啊说么买卡卡think对不对啊,那所以说一会咱们直接对吧,把订单还有订单明细的数据给他写回到我们这卡不卡里面去,对吧,这是一个,那写完的卡不卡,你的目的是干什么,你的目的是不是要把这个东西给我读出来呀,对吧?所以说你要读的话,大家想一想,这个时候呢,那你还得再去写一个我们这样的一个SPA streaming这个程序,对吧,那么这个SPA streaming它从哪来读数据呢?它是不是应该从我们现在对吧,这个。
03:24
呃,DWD层的来读数据呀,而且这个时候的读的呀,不是一个了,同学们。对吧,这个时候呢,他读的不应该单独一个了,他是不是应该把订单和订单明细的数据都给拿到,对吧?然后来形成一个我们这个对订单和订单明细组成一个更大的一个宽表数据,对吧?所以说我在这呢,我再写一下,这个是比如说叫我们这个订单Y的吧,对吧?宽表它读取谁呢?它读取咱们现在这两步内容,一个是DWD,然后呢,Order in,那么另外一个呢,是DW d order detail啊,Order detail啊,Order detail,然后接下来获取谁获取我们现在订单啊,以及我们的订单明细对吧,这样的一个数据啊,获取订单以及呢个订单明细的一个数据,对吧?哎,那么这块呢,是我接下来要做的事啊,接下来要做的事,对吧?那么咱们现在呢,那要做的话,那首先那是不是现在。
04:31
把这往那个这个卡卡里写呀,对吧,所以说呢,那咱们接着往下来啊干什么呢,说订单明细对吧,来写到卡卡里面去对吧?呃,那么如果说啊,注意这个东西呢,其实严格来讲,我现在订单明细往卡卡里边写对吧,如果说你要是呃光看到奥德比特APP的话,这种其实它位于哪层呢?把这层大家要要稍微的这个的划分,这个划分需清晰一些对吧?那么我现在order detail这两个东西,这其实什么,他是不是七瑞于我这DWD层,对就是说它处理完之后呢,他写到DWD去对吧,然后接下来。
05:09
那我现在往回写的话,往哪写,是不是写到咱们的卡卡对吧,它的一个相关的我们的DWD层对吧,所以说这块呢,其实啊,你目的是其实往DWD1层写这种其实更合适一点对吧,比方DWS对吧,这W有点早对吧,这个呢,其实DWD层对吧,更合适一点,那咱们目前到这里我们呢,要再分一个层,对再分层什么这个其实呢,是我们的DWD对吧,DWD层对吧,然后接下来那咱们看一看呗,那么订单这个东西怎么来,呃,往里写,订单明细怎么来往写,其实前面代码大部分其实都是一样的,那么只不过呢,咱把这块代码拿过来,这个代码啊,咱们还是都写一遍,都要写一遍,然后呢就OK了,把这个就复制粘贴了,比如说我现在呢,在这里来到我订单明细中,然后接下来我要干什么呢?我要将我们的订单明细数据啊,将我们这个订单明细数据那么写回到。
06:09
啊,写回到我们这个卡普卡它的一个DWD层,啊,写回到卡卡它的一个DWD层,对吧?哎,那么如果要写的话,那么这个时候咱们是不是相当于对我当前的流来进行处理了呀,对吧?那么而且呢,应该是提交操作,这里是我们这个for each r对吧?那每次处理你现在拿到的是什么呢?是不是拿到一个RDD这样的一个对象,然后接下来,那么你要对RDD的数据做什么操作呢?我要对它做一个提交,所以说呢,直接装意识就可以,对吧?那每次提交你拿到的是什么?我拿到是一个order detail,对,我在这里啊,我拿的是一个order detail啊,我拿这个order detail,然后接下来,那么你要对这个order detail来做什么操作呢?对吧?那我希望我去调用MY卡卡啊,这个think啊,MY卡think它里面有一个方法叫什么呢?叫stand对吧,那么叫往这个发送,那么发送什么呢?同学们这里注意啊这块对吧,这个主。
07:09
题,你能不能直接这样。这样行吗?这是不是就有问题了,你好不容易刚从读出来,你是不是就写过去了,对吧,所以说咱们现在呢,在这里我直接写死了,这个呢是DWD,然后这块呢,是我们这个order detail啊order detail然后接下来那么除了它之外还有一个什么,还有一个message,那message我现在想发送谁呢?我是不是想把咱们的order detail给发送过去啊的,但是同学们这个它要求什么形式的呢?是我们现在的这个这个字符串。那你说这个搜串的话,这东西怎么来做呢。对,我现在直接这么吐行不行。就是从这个这个语法上没问题了,但你想一想,我现在如果要处理的话,对吧,到时候咱们现在拿到的东西是肯定有问题的,对这个兔子顿是不是相当于你把这个奥德里特它重写的兔子顿方法返回东西给拿回来了,但其实我想要什么,我是想要的一个杰S形式啊,对吧,所以说呢,那我在这里我还是想把它转的杰森格的字串,对吧?那么怎么去转Jason和字串呢?那么咱们上午给大家介绍了,说目前呀,我们现在这个Jason对吧,目前咱们这个Jason对吧?那么其实我们现在用的这个方法呢,主要有这么几个,一个呢叫pass object。
08:30
Pass object,那么它可以干什么呢?它可以帮助把咱们这个字符串给转换成我对应的一个G对象吧,或者说对应的一个指定的一个对象就转换对象,然后接下来咱们还取消了什么呢?To,什么Java什么什么老宅的对吧?那么这个时候它的作用干什么呢?是不是可以把它接的对象给转化成我的Java对象啊,对吧?然后接下来这里其实还有一个方法叫什么呢?叫to Jason string啊叫to JA string,那么它这个作用干什么呢?它的作用是帮助您把咱们这加入对象转换成我们这个Jason格式的一个字符串啊,主要是进个字符串导就不帮帮你把这个东西提供好了,所以说呢,那么咱们现在呢,在这里啊,那我得去调一下它的一个方法,谁呢?咱们这个Jason对吧,咱们这个Jason,它里边有一个叫to Jason string对吧?那么这有这样的内容,注意看啊,同学们to咱们的Jason to我们的Jason string对吧?那么这里你发现有好多。
09:28
是不是好多话出载啊,对吧?那么其中呢,有一个咱们必须来指定一下对吧,指定什么呢?就是关于我们现在这的一个对吧这个配置对吧,什么呢?有一个叫咱们这个s conflict对吧,S con就他要求你如果说序列化的话,必须得指定一下对吧,这个S这个con它的作用干什么呢?对吧,就是避免对吧,就是或者咱们在序列化的时候,他都会帮咱们把属性也会递归的序列化什么意思,比如说我现在A有B,然后B下面有C的属性,对吧,那么这个时候呢,他要在序列化的时候,那我是不是应该对吧A的序列化,如果说减BB的序列化是不是减C啊对吧?其实这个意思啊,得,那我需要传参数,传谁呢?第一个object,咱们是不是order detail对detail,那么另外第二个参数这是什么呢?就是一个我们这个serveize conflict,那咱们呢,去new一个我们一个serveize。
10:18
咱们这个thirdline对吧,当咱现在呢,来来Z对吧,然后config对吧,Config对把这个呢拿过来给它传一个值啊,就是说明啊,我现在再去我们这个序列化的时候对吧,那么它呢,其实是啊吧,它这个官方说啊,它是避免啊重复循环依赖啊吧,其实呢,就相当于对我的属性呢,对吧,也做一个检测啊,这个属性做检测对吧?好,这是关于什么,这是关于我现在呢,把它往我们这个卡普卡DWD层写对这个操作,那么整个这操作做完了,别忘了同学们,咱们现在是不是这个偏移量也可以更新一下了,所以说来到这里呢,咱们把这个偏移量啊也保存一下是吧?来保存我们这个偏移量是吧,那怎么保存呢?是不是有一个offet manager,然后呢,这个YouTube.save outside这方法,然后这个时候是不是咱们现在操作这主题,然后呢,Group ID。
11:16
然后接下来在这里什么off outside ranges对吧?给它打过去了,好了,这是将咱们订单的明细啊写将订单明细对吧?它的数据写回到卡卡DW底层对吧?这会代码同学们也不是第一次写了对吧?也不是第一次写对吧?呃,这是关于我们这个订单啊,关于订单,那么订单完事之后呢?呃,订单明细,那订单明细完之后呢?那接下来咱们呢,来看一看我们这订单啊,来看一看咱们订单,那么订单咱们得看一看我的代码啊,咱们当时做的这么几个功能,第一个从我这卡卡里读数据。对吧,这个有了,然后第二个呢,咱们应该是判断是否为首单啊,做为这个事儿,第三个咱们按照我们当时讲课的顺序,我们是不是直接把它保存了呀,对吧?第三个咱们在这里应该是干什么的,对吧?应该是我们做了一个保存操作,对吧?当时咱们做的对吧,应该是我们这个保存对吧,维护咱们这个首段一状态,然后第四个咱们是不是对同批次的对这个这个订单状态做了一个修正的,对,然后第五个咱们干什么了,是不是才和我们这个维度进行关联,对吧?第五章关联谁的关联我们这个省份,然后第六个关联的是我们的用户维度,对吧?然后接下来,那我现在呢,那要想去保存的话,大家看,那我是不是应该在咱们最后这方来写啊,别看着咱三对吧,那其实呢,他是最后再执行的对吧,那么咱们在这里哪块写呢?得找地方了,对吧,大家看啊,咱们在这里。
12:48
本身啊,我这个for RD已经有了,都已经有了,那3.1的维护手段用状态,那从这呢到这儿是吧,维护手手段用状态,然后第二个把这订单的数据呢,又保存到ES里面去,然后第三个对吧,那咱们现在是不是想干什么,是不是得相去保存到我们这个对吧,这个卡不卡写不到卡夫卡,其实注意啊同学们,对于我这会数据呢,那有可能有多个,你像这个这个有些是吧,这个这个帖子啊,就说我现在啊在分析的时候对吧,包括大家也在想说ES,或者说我现在clean house。
13:26
或者说呢,A他们之间怎么来选择对吧,他们之间怎么来选择对吧,大家想想我现在如果说要是大家熟悉的这两个ES和A他们两个来选择的话,你目前能够想到的区别,对吧。首先对大数据的处理,对大数据处理来讲,他俩谁合适都合适。对,这对大数据处理,ES不能处理大数据吗?其实原则来讲是不是都可以啊对吧?哎,都可以对吧,然后接下来,那么咱们现在除了这个之外呢,那还有一个什么呢?还有一个就是我们现在那个存储方式呗,对存储方式对吧?那么我现在如果要是h base的话,它本身呢,是不是什么对吧,这个列都是存储对吧?然后接着咱们如果是ES的话,它里边是不是倒白索引啊对吧?那如果说我现在想去对做权威检索相关的一个分析的话,那你说这个时候是更合适,是不是ES呀,对吧?但如果说我只是保存数据的话,那这个时候是不是咱们这个h base是不是更合适一点,对吧?所以说有的时候呢,对吧,像有一些对吧,这个咱们在做分析的时候,对吧,所以那我你说我这数据,我假如说同学们到这里到到这儿对吧,其实呢,就是不做咱保存操作啊,不做咱保存操作,就到目前为止到这儿啊,咱们的数据其实我已经拿到了,就咱们现在已经通过我的处理,把各种各样的一个数据,我可能已经分析完了,那么最终这个数据到底往。
14:50
而保存的对吧,那么根据你的实际情况,有可能呢,会保存到什么elect上面去,对吧,那么你诶可能你的需求是哎,我现在我要做一些对吧,我们这个全文检索这样的分析对吧,你可能把它保存到我们E言上去,那么如果你们有条件的话,同学们这个数据呢,它可能保存到多个这个路径上去,有网ES保存一份啊吧,往click令号保存一份对吧,有可能在咱们网页base再来一份对吧,就是我们现在本身个分析的时候,对吧,什么OIP库是不是也不一样了对吧?诶但是注意啊,目前呢,对吧,咱们在咱们这个统计分析的时候,对吧,基本上选一个对吧,基本上大部分公司其实选一个对吧,咱们现在呢,其实这里我ES呢得用的成上升趋势,但是现在一些大厂开始尝试什么的,就先大厂现在开始对吧,尝试我们的clean house了,所以说呢,我们在我的课程里边,后边我们呢,也会把这数据往clean house里边,对吧,去写一写啊。
15:50
来看一看啊家来看一看,好的,那咱现在呢在这里对吧,我们呢,这个网ES保存一份对吧,当然咱们也可以怎么办呀,是吧,也写回到我的卡不卡吗?比如说在这里我来一个3.4对吧,把这个数据呢来写回到我们的卡夫卡对吧,就相当于多了一个维度嘛,对吧,写回到我们这个卡夫卡啊学的卡法,那么如果学的卡法的话,大家想一想这块咱们是不是其实主要处理的数据啊,这个处理数据的话,那咱们啊找找谁呢?对吧,你看一看我现在把这个数据写的卡不卡,这个呢,是它的一个对吧,这个RDD,然后fors以分级为量,对的行处理吧,然后得到个集合,然后这块是往这里边来对吧,这个批量插入,接着咱咱是可以在这里这接可以写就可以了呀,对吧,来在这里咱们现在要写的话,那怎么办呢?那肯定得对咱们集合来进行遍历吧,对吧,它点我们现在这个号循环每次遍历呢。
16:50
得到的是一个我们的order info对吧,这比较这不型,好像俩每次遍利呢,咱们得到的应该是对吧,这里一个元组对吧,一个呢是我们现在order info ID对吧,另外一个呢,是咱们这order info这个对象对吧?然后接下来那么咱们现在要保存什么呢?我是不是可以去调用我们这个MYKA卡think的my kaa think啊然后呢,接下来它里面有一个我们的S的方法,这个主题呢,我也把它给写死了对吧,原来呢,咱们这个是order detail,那这个呢,就是我们的DWD,然后呢,Order in for对吧,这就把订单,然后接下来那么咱们现在呢,除了他之外,是不是还得需要一个我们现在的一个这个消息啊,这个消息是不是按照他刚才这种方式来处理一下就行,Jason,然后它里边有一个方法叫to,什么Jason string,对,然后接下来咱们现在呢,传一个我们的order ino过来,然后另外一个注意啊,这个东西,如果你要是把它转对下的。
17:50
啊,你不加这东西都过不了的,你有一个啊con。然后给传一个处过去对吧?哎,那么这块呢,是不是相当于我现在把这个这个当前的订单对象,然后转成杰森,然后发送到咱们现在这个主题了呀,对吧?那这个呢,是关于我们现在啊这个订单还有订单明细对吧?他们的一个协回啊订单还有订单明细对吧?玩卡不卡特的一个协回对吧?呃,那么这样的话呢,整体咱们现在啊,这个要进行这个分析的这两部数据我们都准备好了啊,这两步数据呢,咱们都准备好了,那把它准备好之后呢,那咱们现在呢,就来做一个我整体测试吧,到这测试来,我们这个东西呢,把它去填。
我来说两句