00:00
呃,那么咱们呢,这个阶段呢,说是我们这个实施项目是吧,那大家注意啊,这个讲了咱们项目之后学反馈是这样,呃,大家呢,一开始在学咱们这个这个离线的时候,对吧?诶觉得这个离线对还行,但是我不知道为啥啊,因为好多同学学完离线之后,对吧,都跟我说老师我以后不做离线对吧,你会觉得这个你你们你们是不是有这个想法啊,我看有好多都是想说以不找离线的活,就找实时的,你想离线的时候是因为重复性的工作太多吗?还是什么每天就写S狗,就想写搜狗是吧,其实呢,对,那就根据自己的情况啊,对就我觉得如果经要写思的话,其实有很多职位对吧,你像DBA啊或者什么的,对吧,也可以往发展对吧,像你想一想现在对吧,你这个大数据,然后呢,再整一个Oracle的什么OCM是吧,加持那其实也是很厉害的,对吧,你像我家的我有一个哥们是吧,他就是银行的DBA对吧,后来实在提不下去了。
01:00
后来找他当老师了,当很级别很高,Oracle你想很多年之前or Oracle他那个那个DBA的认证有什么OCOCP,然后还有一个OCM对吧,我考的OC的话,我坚持不下去了,对吧,我就OC,然后后来这哥们是OCM对吧,那个时候你想一想考试费就几万块钱,导这很多年之前对吧,然然然后呢,后来去那个银行的一个什么呀,这个DV其实很其实很其实很什么的,其实DV在银行里面,你想银行数据是不是很重要,DV其实很吃香了,但是后来我说为啥不干了,压力太大啊,我说啥压力呢,所每天就是没有用数据就行了呗,他说这个银行的数据和别的数据不一样,对,每次假如说要产品一项目一隔接,或者说版本一隔接的时候,对吧,就是那是真实,就是除非特别大领导,那没事不用到现场收费的,关于小领导那时候都得上,那都得到现场,然后呢,你一个人在前面操作,你然后就是几个大屏,后面一帮十几号人在那盯着。
02:00
对吧,你要不小心,就假如类似于什么你这行一个RM操作后面得吓死是吧,就这样对吧?哎,所以说呢,这就是那个压力不是一般人挺得住的是吧?哎,那么咱们现在其实如果你要感兴趣的话,你可以往这DBA上去发展啊,往这D位发展,其实但是呢,现在真感觉这个DBA和咱们原来不太一样对吧,原来DBA呢,其实玩的那无非是咱们这几个都关于数据库对吧,那比较认得这个证啊,比较认得证对吧,那就是咱们这个奥Le的这个认证了,对吧,你像网络比较认得证,比较认得证,那就是谁的CC对吧,应该ccie呗,对吧,这还是比较不错的,有学网络的一个指导学学网络的一个特思科的是吧,思科这个ae它是不是也有na,还有什么NP吧,还有ae是吧,啊,我也是到了na,然后就没签扯下去啊,就全是在这个最基本的认证这啊,我觉得我这个网络认证啊,唯一用处就是什么呢,在大学学这个。
03:00
网络工程的时候对吧,诶特别轻松都不用这个考试的时候不用看了对就行了,对吧,但是这个根据自己的一个习惯啊看,或者说这个发展方向就真的,如果说我现在觉得我就写这个思特别什么对吧,那你就可以钻深一点对吧,钻的深一点,其实我们现在我对吧,就咱们现在高考这块我啥都学学很多对吧,但其实这样我我感觉不是特别好对吧,我我我比如说我现在我会50个技术,那每一个呢,对吧,都像我一样,在我这个什么na的基础上对吧,这个这个这这比入门呢要要厉害一点对吧,然后但是呢,达到精通对吧,你不如啊就摁着一个对吧,把它给做的非常非常精,对就假如说现在同学们你们这个数据库对吧,你就会买S,买S里面所有东西对吧,都搞定,等面试官跟你聊的时候,你就啥也不跟他聊,对说啥都能包买S上业对吧,你找工作也不是问题。对吧,找工作也不是问题,对吧,就可以把某一个东西学精,就看你感兴趣不感兴趣,对吧,在你感兴趣的基础之上对吧,然后呢,咱们现在这个学完之后呢,咱们这个是我们这个实时对吧,这个实时呢,先实转换一个思想对吧,首先呢,你得搞明白对吧,我们现在实时呢,那要问的话对吧,那肯定是我现在主要两个词,Spark,还有一个是flink,对吧,那么如果说啊,这个如果说要是什么呢?要是我们这个说用的广的话,现在其实还是Spark用的多,但是flink呢,现在发展的比较猛对吧,但是fli发展的比较猛对吧,你像原来这个有学生出去找工作,我就想做flink,对吧,我这样不好,对吧,你想你离线,你如果说在写的时候,你pass掉一部分工作,然后事实呢,这个Spark在干掉一分工作,到时候你到你这可选的时候,这实就很少了呀,对吧,你想我现在这我一投我修复link,对其实这就很少了对吧,对,所以说你可以去多多什么一点对吧,去对吧,这个把机会做多一点对吧,然后flink呢这块。
04:53
对吧,这个一般学生这个弄完之后感觉都是,哎呀,这个弗林格跟面试官一聊,面试官好多都被学生给吓住了,是不是对一般都是这个感觉,对一般都这个感觉,你像今天中午对吧,还有学生在聊对吧,这个目前他他也是。
05:10
也是今年的班,几月份的,二月份三月份的这个班对吧?然后这个现在目前的情况就是他和他的手下在干活对吧,他的手下是一个对吧,有两年多工作经验的人啊,但说他说他很虚是不是是吧?所以说呢,同学们,咱们现在呢,把这个实时啊,这个项目还离线项目吧,最起码你要把这业务给我描述的非常清楚啊,业务描述的非常清楚对吧,Flink呢,人家要好好学对吧,面试的时候会有很大的帮助对吧?这个东西相信以前学生没有上班,学生我说老师flink难不难对吧?我说我也不太知道难不难对吧,但是呢,这个好多学生们反馈就是这个学完之后头发掉的比较厉害,所以说,所以说这个提前把头剪短是非常明智的啊好了,那咱现在呢,在这儿是吧,这里我来带大家把这个东西。
06:10
看一看啊,来看一看我这些天所学过的东西,呃,那么咱们呢,说整体啊,我们在没屏吗?没屏我的屏不需要是吧,厉害了啊,现在现在怎么样,屏幕这么正常吗?正常是吧。对,其实不用屏幕也行,是不是,呃,那么咱们现在呢,在这里啊对吧,那么我们呢,看着很多东西对吧,但其实呢,也过了很多天了吧,对吧,啊一不小心对吧,也是六七天了啊也是六七天了对吧?呃,那么咱们主要呢,我说当时啊,我们要做的我们这个这个需求对吧?那么主要呢,有这么几个对吧,那一个呢是我们这个日活对吧,一个呢是日活对吧,那么另外一个呢,是我们这个对这个首单,还有一个呢,是我实付分摊以及呢,咱们这个ADS聚合这一块对吧,主要咱们做这几个需求,那么我希望从咱整体上来讲,你看这两天基本上我都带和带大家都得看大家的进度,我希望什么呢?这个需求呢是一方面,哪怕你就把咱们这个首单给我做完了,但是呢,你告诉我老师对吧,咱们现在这个阶段完事之后,对吧,这个我这个这个对卡夫卡对吧,他的一个这个处理对吧。
07:30
整个的一个经理的消费,我这一点问题没有,那我觉得这个东西你的阶段你没白学对吧,我就怕什么呢,你把所有的功能都做完了,然后我说诶,那你现在能够做我这是活吧,这样你做你还做不出来,那其实就完蛋了。对吧,所以说呢,就是咱们现在你可以什么呀,就是我们不可能说啊同学们,我们讲的东西和以后你做的东西一模一样,这不可能对吧,就是我们像我们讲完之后,然后你到企业里边对吧,你能干什么呢?你能对咱们把我们讲东西,然后呢,结合你们真正要做的业务,对吧?然后呢,做的新的一个东西出来,对我觉得这个呢是比较不错的,对这个比较不错的啊呃,那么咱们现在的这四个需求里边,对吧?那么第一个我们这个日活对吧,那这个日活呢,咱们现在看一看,我们回过头去啊来看一看我日活对吧,它的一个我的处理流程。
08:21
啊,日活它的一个处理流程对吧?那其实呢,首先有一个我们这个数据的准备啊数据准备,这个数据准备呢,那其实主要呢,让大家熟悉对吧,和咱们这账号人员打交道对,那如果他给你数据,然后你把这数据呢,把卡牌流边写对吧,那这块呢,应该怎么来做,其实主要的是不是咱们N这呀,对吧,NEX对吧,就是咱们现在虽然是大数据成员,但是NEX那你也熟对吧,这N这你也熟对吧?然后接下来呢,那么咱们现在把这数据啊放在这里边之后啊,那接下来咱们可以把从我这里边把这数据呢给拿过来对吧?那么对日活进行处理的时候,同学们咱们呢,来到我们这里对吧,来到这里,然后呢,看一看啊,我们现在这个日活程序对吧?想一想咱们当时在做我们的日活的时候,对吧?在做我的日活的时候对吧?那么都有哪些啊,我们这个操作呢,第一个咱们应该在Du APP里边对吧?咱们当时在做日活的时候对吧?那么都有哪。
09:21
哪些我们的操作对吧?那么首先呢,咱们也是对吧,去从我们这卡卡呀,嗯,去拿数据对吧?然后拿完数据之后呢,那么咱们现在呢,这里它应该有一个驱虫操作吧,对吧?那么这个去虫操作呢,那第一种方案对吧,咱们是一条条驱虫对吧,一个个的驱虫对吧?然后接下来呢,那说这种方式呢,不好,对吧,那每条这个语句都要执行一次对吧?那这个时候呢,咱们是使用的是我们的以分区为单位进行处理,而且去重,大家注意啊,这个需求你们以后如果说你们要做大数据开发的话,那么用到的几率也是非常大的,对吧?那么这个时候你可以考虑咱们去重,那怎么办?我是不是可以把这个数据,把这状态找一个地方给它保存起来呀,比如说我是red是不是首选对吧,但是呢,是百分百red嘛,那也不一定对吧,如果说我这个就这个东西要持久的往咱们ready里存这个东西是不是不太合适啊对吧?哎,持久往ready这就不太合适,但如果说持久。
10:21
放这个持久保存的话,咱们可以往那往哪去保存呀,H base嘛,比如说你看咱们在做首单的时候,这个用户的一个这个是否购买过,咱们是不是就放在h base里边去了,对吧?诶那么咱们现在呢,把这东西拿到,然后做一个去重,然后把ES里来写,对吧?其实呢,整个咱们现在在讲的时候,ES啊,同学们其实讲的并不深啊,ES我们在这里边我讲的我们更偏向于什么,更偏向于使用操作对吧,你想他和我们的卡夫卡的讲的时候,对吧,就是咱们讲卡夫卡课程的时候,它不在一个量题上,卡夫卡其实咱们讲的其实比较多的对吧,那讲的什么咱们怎么它的结构啊,什么这个架构深入啊,对吧,怎么去读写呀,你像ES对吧,简单的介绍什么这个什么,呃,这个倒排索引对吧,然后接下来搜索引擎对吧,历史关系对吧,然后接下来咱们再往下走对吧,直接就开始教你们命令了对吧,怎么样去创建索引,怎么样呢?对吧,往这个索引里面添文档对吧,然后怎么样去做一些查询对吧。
11:21
这个就完事了,对吧,主要是实用对吧,但如果说以后你们要是真正啊,你公司又是ES的时候,那你可能呢,对吧,这个还会对更深入学习对吧,然后而且如果要学习的话,你们ES首先啊这个版本,你们版本呢,可能和咱们当前不一样,对目前用六的呢,有一些对吧,然后还有一些用什么呀,用E气的对吧,用气的对吧,那么如果用气的话,那有一些地方可能会发生变化对吧,那这个时候呢,你要注意一下啊吧,你要注意一下对吧,这是关于我们现在呢这个日活这一块对吧,日活这一块,然后接下来那么日活完了之后呢,咱们就开始对吧,做我们这个首单分析啊做咱首单分析,那么如果说首单分析的话,那这会儿其实呢,我们这个数据啊,来源就不再是我们原来的那种对吧,这个日志的的数据了,那来源业务数据,那么来源业务数据呢,那么咱们其实就开始玩这条流程了,对吧,咱现在呢,对吧,就开始玩我们现在这个流流程了,对吧,那咱们现在主要是干什么呢?对吧,其实。
12:21
大家我希望每一个人对吧,就是这是要求啊,同学们对吧,这个要求对吧,你们自己也没事的时候可以看一看,对比如说今天对吧,感觉很无聊,怎么办呢?把咱们离线的这个图对吧给画一画,对吧,感觉无聊,把这个事实给图学画一画对吧,因为咱们现在面试呢,其实比较灵活对吧,咱们有太多的学生啊,太多学生出去的时候,对吧,都靠什么,都靠在白板上给他画图,把面试官征服的对吧,就你想一想,同学们,假如说你们拿那个笔,然后把你们离线那张图给画出6%十来,一般面试官扛不住的,就你看你那天有儿给咱们总结一个图,是不是那个图那么多,你画出6%十来,在一个白板上给它画出来,你想一想,那是不是得满满满满的一白板都够想能放得下呀,一般面试官如果如果能让你把它画完的话,对吧,千行画完啊,如果说画完的话对不对,如果要画完的话,我觉得一般面试都是扛不住的,对吧,你想想咱们学生出一那天对吧,说老师我今天同学感觉还还行,我面多长时间,两个小时。
13:21
对吧,就跟就咱们这学生出去面试,面两个小时,你想一想这两个小时那聊的如果说要是这个要是不行的话,对吧,一轮啊一轮对吧,聊两个小时这么聊对吧,还是不错的对吧,上上上上班的学生那哥们觉得很好也是对吧,唯一我给的建议就是什么呢?我说你说话要柔一点,对吧,因为我一开始他光问我问题啊,光问问题我觉得很有想法,对吧,但是我就感觉这个哥们说话我不太喜欢,然后后来问问题多的话,我就说。我说你这个对,这个说话那么不那么硬是吧,后来说老鼠他原来干啥的当务兵就感觉就像在汇报工作的这种是吧?对,所以说呢,这块就一说一说一说他,呃,那么咱们现在呢,在这儿是吧?那我们来接着回头继续看啊同学们说整体呢,我们现在这张图呢,其实和我们离线比起来,这个呢,还算是这个比较简单的啊,因为我们这里东西没那么多对吧?呃,那么咱们现在呢,那首先呢,这里设的知识点这块呢,算是一个啊,这块算是一个对吧?呃,那么这块呢,其实我们呢,也是对,把这个功能给他拿过来了,对吧。
14:38
那其实大家呢,也可以没事关注咱们现在这个大数据搞的这个这个公众号对吧,那这块呢,前两天好像刚发了一个关于开的文章对吧?关于开文章大家可以看一看对吧?呃,那么咱们现在呢,那比如说我这个业务数据对吧,把这数据呢,我现在得拿过来,那么这块注意啊,那么你不光是要看到我现在当前这两个对吧?那么咱们说处咱们大数据处理了,那么它有什么的,它有什么存储层对吧,有什么咱们传输层对吧,有什么什么咱们这个什么业务层对吧,业务层等等对吧,还有一些什么咱们的控制层等等对吧,那在存储层里边什么FDMS呀,什么什么这些对吧,那你像咱们这块是是有传输层啊对吧,那么针对我不同的一个,我们这传输的内容啊,这些不同传输内容,那么咱们使用的这个工具也不一样,对吧,那比如说我们现在呢,对吧想对吧,从我们这个。
15:32
某一个什么呢?比如说我现在想从我某一个这个磁盘目录里边来读取数据,那这个时候咱们是不是可以考虑对吧,把这个这个啊也给他用一下呀,对吧,除了之外还有别的吗?做传说的对scoop,比如说我现在对想把我们这个数据库的数据给它采集到,然后放到们这个my circleq里边去,那这个时候呢,你可以选scoop对吧,就注意这个东西呢,对吧,这个东西你这叫什么呀,这些东西一定每一个点对吧,都要给我掌握透啊,就别人跟你聊诶比如说我现在你们一该在传数据的时候,假如说啊面试的时候,对吧,你们涉及到我传输数据,一般传输数据你们用什么,千万不要给他就说一个。
16:13
对吧,因为我你们是有经验的对吧,那我现在呢,我要说的话对吧,那得看不同的场景对吧,不同场景对吧,比如说那我们当时在做离线的时候对吧,在做离线项目的时候对吧,那我的需求是对吧,比如说我要把我们现在对吧这个对吧这个数据库数据,然后呢,给他采集到我们现在这个HDS上面对吧,那么这个时候,那我们用的什么,我用库都用school对吧,那我们在做实时的时候呢?那我们在K和mathwell里边,我们选了对吧,我们这个Maxwell对吧?那如果你要这么说的话,同学们想一想,就假如说你要这么嚣张,说你在canon和Maxwell里选了Maxwell,那人家马上会问你为啥这么选,对不对,你要是不能回答出来,你就别这么说,对,我就选的马xwell就行了,Kind我不会是不是对吧,就OK了,对吧,你要这么说的话,你想一想,那肯定对你比较有帮助对吧什么的,那我现在这两个我都会对我希望的为问我为什么我希望的问我对吧,我希望他问我为什么这么干,因为我对这位置位什。
17:14
说我都特别清楚对吧,那这里边我就可以把它俩的一区别对吧,比如说我们当时在这个做的时候,对吧?因为我们主要把数据呢,采集到卡普卡对吧?那这个时候呢,我们想到这个传输的时候呢,那这个canon呢,会把我们的类型也打过来,那其实我们在处理业务的时候,这个并没有用的类型啊,所以说呢,它的体积比较大,对,那我们想传这个声音的体积,那这是一个,那另外一个呢,那么咱们现在在传输的时候,对吧?那我们这个can呢,它的采集数据的时候,是把所有变化的数据都放到一个数组里面去了,对吧?那每次呢完这数组进行遍历,然后把一条数据取出来再进行处理,但如果ma就不一样,对吧?它每一条咱变化记录,它封装就是一个接对象,我直接对这一个对象进行操作就行了,对吧,还有一个就是咱们对基本数类型的处理,对吧,那如果说我现在开头的话。
18:05
它也是当做字串来进行处理了,但如果说我这master的话,对吧,那么它呢,就得到对应的数据类型对吧?然后接下来咱们现在把这个数据给采集,采集到我们这卡不卡这的主题里边去,对吧?那么同学们,那么这块呢,注意啊,这里其实一说到卡夫卡这个主题,那么到这呢,咱们也应该知道说我原来默认情况下,我们的卡不卡对吧?如果说我再去创建主题的,比如说我现在要输出某个卡卡主题,那么如果是卡卡主题不存在的话,它是不是自动把这个创建主题啊,对吧?那默认地方创建主题的分区数,那可以在我们这个卡夫卡的server proper里边都来进行设置吧,都进行设置,对吧?那么咱们现在呢,那如果说我现在要想这个事儿的话,对吧,那么你可以去改对吧,比如说我们把它改成四个对,改成四个之后呢,那么咱们现在啊,在这个随后,对吧,我们又把谁改了呢?是不是把Spark streaming这个程序里边它的一个local咱们对吧,这个线程数是不是改成四了呀。
19:06
对吧?那为什么这么改呢?因为我们现在呢,在处理我们的卡法数据的时候,我们使用SPA swimminging对吧?那么咱们使用SPA swimminging它对我们的卡卡支持的哪个版本呢?啊,一般比较出名两个版本,一个是零杠八,一个是零杠幺零啊那么咱们是不是用的零杠幺零啊,那么零杠幺零它是怎么做的呢?它是每一个excu对应去处理我们这卡卡的一个分区,那咱们现在这里边四个分区,你是不是四个excu是不是就够了呀?对吧,不是越多越好,那不是越多越好对吧?哎,那么这块呢,那你要注意一下对吧,然后接下来我们把这个数据呀,我们把这数据对吧,给它采集到对应的我们这个主题中,对吧?然后接下来我们呢,去通过Spark training对它的来进行一个读取,来做一个分流,对吧,那么咱们在分流的时候呢,那在我们这个ods层对吧,那么这块对吧,咱们做一个判断,注意啊,这块的代码它不是固定的。
20:06
这是我结合我当前这个程序,对吧?那么有可能呢,以后你们得结合你们的业务对吧?你可能得结合你们的业务对吧?哎,然后咱们现在呢,把这个分流啊给我表明,然后呢,把我们现在啊这个数据对吧,给它放到不同的层里面去,那么大家如果从这到这的话,那么需要注意什么呢?对吧?如果说你们接触一个新的框架,比如说以后除了piano和八之外,那么可能呢,有一个更好的框架出现了,让你呢来使用那个框架完成咱们这个数据传输采集的一个这样的一个过程,对吧?那大家想想,你们要想咱们还用这套逻辑,你们应该怎么样去学习啊。首先你是不是得先把这个框架这个DEMO给搭建起来,是不是先可以跑到咱们卡卡里去呀,对吧?然后你配通之后,你是不是应该运行个程序,然后呢,你到卡卡的主题中把这个数据拿出来看一看,这个数据长什么样,是JA森格式,这个Jason都哪些字段对吧?这个字段呢,我怎么样去给拿表明对我怎么样对吧,可以拿到咱们现在这个类型对吧?然后呢,根据咱们现在拿到的东西对吧,来去编写咱们这个程序对吧?就比如说我们要使用我们这个对吧,这个bootrap啊,使用我们这个8BOOTRAP的时候,对吧,它可以帮助我们去初始化历史数据,但是在初始化历史数据的时候,它其实在我们的第一行和最后一行,它呢有两个输出,第一个叫什么叫做咱们这个初始化开始的start,然后呢,在咱们这个最后不trap complete完成,那么这两个数据其实和业务没关系的,对吧,那你要当做业务数据处理,那有可能会对你的业务影响,有可能会报错,对吧,因为date里边没数据的,所以说呢,你要。
21:45
要提前先看一看对吧,传输的这个格式什么样的,对吧?然后接下来把我们这个分流操作做完之后啊,把它分流操作做完之后,那么接下来我干什么呢?那我现在呢,那要从我们的不同的我们这个主题中来读取数据,那因为我要做首单嘛,对吧,所以说呢,我肯定先从咱们订单表里边来读数据,所以说咱们写了一个这个SPA程序来从我订单表来读取我们的数据啊,那么从我的订单啊,直接从订单主题里边读数去,对吧?那从订单主题读成出去之后呢,那么这个时候你要想对首单来进行统计的话,那么咱们主要从这么几个维度来进行统计了,一个是对吧,咱们当前首单分布的一个省份吧,一个呢,是我们这个首单它的一个用户年龄对吧,年龄段对吧,还有一个什么,是不是还有个性别呀,对吧,还有一个性别对吧,那么咱们现在这个省份,然后呢,以及用户的年龄段性别这个东西在他订单这个表里边是没有啊对吧,那没有的话怎么。
22:45
看到那你需要和咱们省份表以及我们现用户表来进行关联,那么这个时候那咱就想了,对吧,那么省份和用户,那么这两个东西它呢,对吧,一般不会经常发生变化,那应该作为我们这个维度表对吧?它呢应该是先于我们的业务数据对吧之前而存在的,那么这个维度表存在哪呢?对,我现在在卡卡里边直接上来做刷个join,这样行不行,没必要对吧?因为咱们是不是这个东西可以直接把这个保存起来就可以啊,对吧?卡夫卡它注意啊,它是处于半传输层半存储层,你说它没有存储功能吗?那也不对,你说的是存储功能吗?那是不也不行啊,它是不是只保存七天呀,对吧?所以说一般咱们有用卡普卡做存储啊,咱不会用卡卡做存储对吧,所以说呢,你现在搞地把它存储起来,那么咱们把用户以及呢,咱们现在把这个省份这个存储,这个信息存储在哪呢?存储到我们的h base里面来,对吧,那么怎么往h base里面存对吧,如果说你要不变的话,同学们你可以直接对吧。
23:45
靠菲利克斯,然后把这个建表,这可以对你甚至可以直接往这里边什么呀,就写一个这个类似于我这界面是个circle口,对吧,直接往这里插数据就行,对吧,但是这个东西呢,如果一旦发生变化,你想把变化也拿过来,那么咱们呢,那应该怎么办?是不是应该通过ma来对这几张表来进行一个监控啊,对吧,那么也是对吧,咱们呢,诶这个ma监控这几张表一旦发生变化了,Ma可以监控到,然后呢,也会发送到这个主题,然后接下来咱们也会发送到不同的我们现在这个topic里面来,对吧?那么咱们有对应的我们这个用户的信息以及省份的信息,它的处理程序,然后把它变化呢,保存到我们现在h base里面去。
24:27
啊,把它变化保存到我们的h base去,那这里有一个bug是咱们学生帮我,咱们班同学帮我发现的,对吧,就是我在保存这个用户信息的时候,是不是有个用户年龄啊,对吧,这会其实放到你base里这是不合适的对吧,这会放到你里边是不合适的,对吧?那我到时候要什么呀,我把它改出来,就我直接呢,我到时候我在下班的时候,我就把咱用户的这里边这个年龄段啊,我就给拿掉了,对吧?因为咱们现在年龄段,我是不是在咱们这个这这个用户他这个里边来在在咱们这个18岁者来计算的呀,对吧,你计算完之后,你保存这一旦咱们这个对吧,这个你没有消费对吧,没有你从来没有消费过,然后你过两年之后来消费了,那你说你年龄段,你还是这个年龄段吗?那不是了,原来可能你29注册的,对吧,等到你31的时候在我这买这个东西。
25:13
对吧,那你说统计的时候是不是就不太对了呀,对吧?所以说可以怎么办呢?我现在可以把这用户的关联,然后等下单的时候,我是不是你啥时候下单,我把你的年龄段给打过来,说这样就可以了呀,对吧?哎这块呢,我会到时会这个给他改一下,然后接下来那么除了这个之外啊,除了这个之外对吧,然后呢,这里对吧,还有一个什么呢?还有一个是我们现在这个订单啊,这个这个这个这个明细对吧?那咱们现在首单呢,注意这个和订单明显没关系的,把单首单呢,那其实就是这里还有一个保存用户状态的来判断收首单对吧?然后接下来,那么咱们现在把这个维度金关联完之后呢,那么咱们把这个数据啊,对吧,那么给它保存到我们的ES里边去了,对吧?对它呢,来做了一个我们的分析对吧?对它做了一个分析对吧?呃,那么咱们现在呢,把这个处理完之后,那么接下来那么第三个需求,那么再往下第三个需求什么呢?就是我们这个订单明细,对吧?它的一个实付进行分摊,以及呢,我们的交易额。
26:14
统计对,那么像这个啊,同学们这块订单明细实物金融分担,那我觉得是我们这里要重点内容对吧,也算稍微有一点点难度的东西对吧,稍微有点难度东西对吧?那么如果你要想实现订单明细实不金额分担的话,那首先呢,你得把这业务给弄明白对吧?什么叫订单明细这个这个金额分担呀,因为我们现在这个订单呢,它本身里边是不是有一个优惠金额以及运费呀,那么像这两个东西,它是针对于什么呢?它是针对于整个订单对吧,来进行优惠,或者说我这个加运费的,那如果说我现在把这个东西都分摊到订单里面的每一项的话,那么它的价钱呢,就发生变化了,对吧?比如说本来我现在要1000块钱对吧,我的订单就是说这这这个商品,这这要花1000块钱,但是我优惠对吧,我有优惠300块钱,对,那也是我最后实际付700块钱就行了,对吧,那如果说总付实际700块钱的话,那么咱们分摊到每一个我们现在这个商品里边,那每一个商品大概对吧,每一个订单项大概分摊多少呢?咱们现在要做这个事。
27:14
那么如果你要想做这个事儿的话,同学们,那么咱们是不是应该对吧,这个把订单和订单明细他们两个给关联在一块了,对吧?那么像订单和订单明细这个业务呢,它都属于我的事实数据,所以说呢,那么咱们短都要从Spark这里边啊,从卡卡里边把这个这个主主题数据呢,给源源不断的读过来,而且订单的和订单明细的数据呢,对吧,它不停的发生变化,对吧?我现在这个网站一直在有人往我这下单,在不停的发生变化,所以说呢,那么这个东西咱们是实时的,要实时的,那么你拿了数据之后呢,这是两个流,咱们应该把这两个流呢给它放在一起,这个操作叫什么呀?叫双流join,咱们怎么是直接照呢?不能直接照,为什么?因为咱没有办法保证我在同一个采集周期里边,咱们订单和订单明细呢,都包含进来,对吧,所以说呢,那咱们在这里得对双流状可能出现的问题呢,做一个处理,那么咱们解决双状出现的问题,那么有两种方式,第一个缓存。
28:14
的第一个缓存,那么这个缓存要不然你别说对假如说我现在双join做没做过,这个问的挺多的同学们对吧?这个双重join,那么咱们现在怎么去解决,我们怎我们采用哪种方案,我们采用是不是开窗啊加去重对吧?我们现在呢,不是按采集周期处理的,我们开一个大窗口对吧?开大窗口,然后呢,我们这个窗口对吧?到时候诶,我现在采集周期,把这采集周期把这个数据打过来对吧?然后我这窗口呢,来不停的动对吧,来处理我们现在这个数据,但这里肯定会有重复的东西,比如说我现在窗口这一个啊这一个,那这个数据是重复了对吧,然后我再对我这个数据呢,做去重对吧?那么除了我现在开窗之外,还有一种方式是什么呢?就是我们现在它的一个缓存,那么缓存你要说的话,你也说明白对吧,我们现在啊,把这两个流对吧,进行一个全外连接啊,全外连接,然后接下来,那么如果是全外连接的话,那么这个时候他们两个连接之后的结果,那么肯定有三种情况,一个是sum sum对吧,一个呢是我们现在。
29:14
它的一个萨now,一个是那萨,那有的时候不对,老师还有个那闹对吧,那你处理的干啥对吧?那那是不是说明咱们现在采集中心啥也没采集到啊,对吧,你不用去管呢,对吧?咱们需要处理的就这三种情况对吧?然后假如说如果是丧丧的话,那说明什么?说明现在我订单和订单明细里面都有数据啊,订单和订单明细都有数据对吧?那么咱们现在就把当前这两个数据做一个关联,同时同学们你想一想,我订单订单明细都有数据,我订单明细处理完之后,数据不用管它了,但是订单是不是有可能下一个采集周期里边会有订单明细需要它呀,所以说我需要把它订单放到咱们缓存里边去缓存一下,对吧?这是第一种情况,那么第二种情况,如果上不到的话,那说明咱们现在有订单,但是没有订单明细,这个时候一定对吧,咱们订单明项没出来。
30:00
对吧,那你怎么办?你是不是得把咱们现在这个订单这个放到咱这个这个缓存里边缓存一下呀,对吧?那么如果说我现在呢,在咱这里边对吧,那是no sum的话对吧?那sum的话,那说明什么?说明咱现在有订单明细了,对吧?但是现在没有订单对吧?订单对吧?没有订单那说明什么?有可能订单在哪,就在咱们缓存里边,也有可能订单是没出来的,对吧?诶所以说这块呢,那你要注意一下,对这要注意下。好了,然后积累双流状文完了之后呢,那么咱们给大家介绍实物分摊,关于我们实物分摊呢,注意这个代码呢,也不要去记得,我不知道大家在写代码的时候,有没有就是咱们记代码的,比如说记代码说老师这个代码这么写的,我要把它背下来啊,你们这样会非常非常痛苦,对吧,千万不要这么干对吧?我希望什么,我希望呢,大家能够学会咱们这种思路,对吧?我希望大家能学这种思路,咱们在做我们的实物分摊的时候,同学们,我是不是其实先把这个提纲给大家写明白了,对,最起码我相信啊,同学们,如果你要认真听的话,你应该能够不说写代码,你应该能够把我在咱们这个sub LA里边,对吧,这个这个给大家写的那个思路,应该你能听明白。
31:09
对吧,然后呢,你再想办法,哎,把这个思路拿下来之后,对吧,那就把这个翻译成代码,这样就好了,对吧?如果说啊,同学们说老师我现在思路很清晰,对吧,但是呢,代码写出来,那没有别的好的办法,同学们只有练啊,只有多条代法,没有别的好的办法,对吧,对吧,这个代码你可以敲什么呢?不一定非得敲下,就像那天那个贾展哥们分享这个什么扫雷呀,什么分享这些东西,你没事的时候都可以敲对吧,你没事的时候都可以敲对吧,这个注意一下,呃,然后接下来呢,然后接下来对吧,那么咱们现在十分摊完了之后呢,又做了一个我们这个交易额统计,对吧?这个交易额统计呢,其实这里倒没什么,对吧,其实这里吧倒没啥东西,对吧?然后接下来,那么咱们现在呢,把这个东西完成之后,对都其实呢,我们到这儿了对吧,那交易额统计呢,其实在这块主要给大家介绍什么呢?就是介绍的对吧,这个往house里边对吧?来去保存我们现在相关的数据啊,来保存数据对吧?那么这里呢,给大家介绍一。
32:09
提供我的clean house啊,来介绍clean house对吧?呃,这块呢,注意啊,要是clean house的话,一般情况下,一般情况下,那么如果要是现在问的话,那都可能是问咱们现在这块内容对吧?但是这肯定house呢不一定一定出现在你的项目里边对吧,你可以作为你的这个什么啊吧,技术补充啊,或者说我现在所以加分项,我本来呢,我现在是往ES里边或者往E贝里边来写出数据的对吧,然后但是呢,我这个也看过对吧,比如说肯林耗用没用过,肯林耗我看过一些对吧,但是网上资料比较少啊吧,比较少啊,如果说你要是我还买过一本书呢,是吧,那就更厉害了对吧,就这一本狼经一书对吧,然后呢,咱们现在可林浩斯对吧,那这块呢也可以对吧,做一加分项来说啊,再加分项来说对吧,然后接下来那么咱们现在除了把这个数据保到clean house之外,对吧,那保存clean house咱们上其实其实主要什么呀,就是发部分数据接口呗,就是昨天那个对这在那个,那主要是干什么呀,统计咱们当日它的一个,或者某天指定天的一个这个交。
33:09
B额以及咱们分时交易额对吧,然后接下来那么咱们现在呢,又做了一个ADS层的汇总,那么ADS层汇总啊同学们,那么这块呢,那主要干什么呢?主要呢,你要去这块,其实呢,我不会总也行,同学们我先到这儿呢,如果需要的话啊,你把这数据拿出来,那如果说啊,我现在要不会做的话,咱们呢,这个东西对吧,你可以没用这层,我之所以加这层,那其实我让大家找的知识点在什么地方。就是咱们现在对吧,这个两个啊两个对吧,一个什么呢?一个是我们这个精准的消费它的第二种处理方式,咱们是不是使用事物要来进行处理了,对吧?而且呢,注意同学们,咱们现在呢,这里边我采用的是我们SC的代码,都要来处理事物,那这里呢,有一个DBs.setup那么这个是干什么的,是不是加载配置文件的呀,然后DB对吧,然后这里边有一个什么找出穿local ts对吧,这个呢开始处理我这个事物,然后这里参数呢是一个placeit对吧,然后接下来咱们在这里有一个circle,这个circle对吧,这个对吧,只要在咱们这个local ts里的circle,它都在一个事物中来控制的啊,一个事物中来控制的对吧,然后接下来呢,那咱们这个完事之后呢,那么对吧,再往下对吧,我第二个要求大家掌握的就是什么呀,就是关于我们现在这个spring的这个项目,对吧,就是你现在的学完这个阶段之后,你最起码最最基本的要求,对吧,你能发布这个结口出来。
34:37
别的啊,这也不说,就是假如说人家说,哎,我现在你把数据统计出来了,我想要你的数据,你能不能给我提供一个接口对吧,这个东西对吧,你可以对吧,比如说你们可以什么呀,没事的时候对吧,你问你同桌你想要什么数据对吧,他随便给你提,那你看一看你能不能写一个这个程序给他对吧,你能能写一个统程序的,其实这个东西这个如果要是对吧会的话,那就这点东西对吧,咱们现在无非是如果是SSM对吧,那无非是map service,然后CTRL的CTRL接入请求对吧,那请请路径,你们提前商量好请求传输参数提前商量好,想用什么格式提前前商好啊提前协量好对吧,然后最后呢,把这个东西吧做一个展示,那么咱们现在整个实施项目呢,其实注意啊,别看最终咱们说到这儿什么发布接口,但是其实我们这里这个比较灵活,因为我们这里有分层有什么对不对,我们在我这个刚做完,刚刚做完订单的时候,我是不是就可以完成一些需求了呀,对吧,我在玩做完咱们订单啊和订单明细他这双。
35:37
放的时候是不是这里也可以完成需求啊,那么咱们现在呢,这是不是也可以完成需求啊,对吧?这就是什么呢?这个项目到底怎么分层,那和谁有关系,就和你们的架构师设计有关系,对吧?那么有些架构师设计,我现在对我做了一个我这样的一个这个架构设计,然后后来发现对客户不管提什么需求,我我这个设计啊,我都能够满足,那你会很省事对吧?诶不管怎么样,我现在我这做的需求可能好几年对吧,他不管怎么样,我从我现在这个价构里边,我都可以给他提供数据,对吧?那么有些呢,对吧,哎,我今天我做一个架构设计对吧,然后呢,统计出一什么东西出来,明天客户发一个需求过来,完了这个架构不好使了,对吧,你得重新来,就重新还还导数据到另外一个什么卡卡里边,那就比较麻烦了,对吧,所以说怎么样去把这个东西做的更加灵活一点。
36:25
对吧,怎么样做更样灵活一点,举个例子,同学们,咱们现在第一个需求是不是首单分析,如果说我现在这块我没有把咱们所有订单都给拿到,只取首单的话,后边这些啥也没了,同学们你的到这就结束了。对吧,你到这就结束了,后面这些统计是不是都用不了的呀,对吧,所以说呢,同学们这块呢,是关于咱们这架构设计好了,嗯,那这样的话呢,咱们这个就完事了,把这个就完事了,呃,明天呢,今天晚上今天晚上对吧,大家呢,把这个接口这个发布出来,然后一定要这个东西,一定要把这个这个可视化,这个大屏这个啊走一遍啊一定要走一遍啊这个为啥为啥这么说,同学们能用大屏的公司都不会太差。
37:10
啊,就是咱们本身大数据你要就但如果说要用大数据的公司,对吧,都差不多对吧?然后呢,如果能有大屏的公司吧,都不会太差对吧,那如果说你用过的话,那肯定比你一次也没走过对吧?这个东西呢,对吧,要好很多,所以大家呢,呃,去免费申请一下啊,然后呢,咱们把这个测一测,然后走一遍,然后以后你要真用的话,你会什么样,你会心里有点谱的,对,会心里有点谱的对吧,然后明天呢,咱们最后一天讲这个get啊带你们带你们玩转什么全球最大的同性交友网站是不是行了,说休息会儿啊说休息会。
我来说两句