00:00
啊,下面的话,我们来看一下这个3.4数据生成的一个脚本,写这个数据生成这个脚本,就是我们要一些数据了。那造数据过程当中呢,我们先看一下这张图哈。这张图呢,是我们之前上面啊讲的那个书上那个架构啊,整个这个数据流怎么跑的,那现在呢,我们下面这个数据生成这块是哪一部分呢?相当于是这一部分。也是红框标起来的一部分。那这一部分相当于是如果正常在企业里面,你会有买点的数据打到这个安里面,打到对应的日志服务器,日志服务器呢,这里面是一个spring部的代码,它会接收这边传过来的数据,同时把这个数据往这里面落落盘。啊,落到这个纸板上是这样一个过程啊,就是这块呢,它是一个spring的代码,很很简单,就是接收网络请求,然后存数据。OK。那数据呢就落到这,那现在呢,我们现在要模拟个什么事呢?这个数据生成就是我们自己写一个加构程序,把数据直接生成到这。
01:00
啊,省去了别人访问,我自己在这内部就照了,啊,也是一个加代码。好,那下面的话,这个这里面是生成这个测试。呃,测试程序。的一个过程,过程的话我们来见一下吧。那我告诉大家,如果让你现在去写这个测试代码,你应该怎么呢?怎么去这个测试程序呢?让你去写把这个11类日志,然后把它产生,你能不能实现。For实际基数啊,非常棒啊,这个张浩非常厉害啊,嗯,说的。非常对。创建一个project啊,创建project。然后呢,下一步下一步呢,这里面呢,我们来创建一个工程名啊com点。
02:01
阿里硅谷,然后具体这个项目名称,记住后面的所有内容呢,你不需要去敲啊,因为这块呢,属于你一个常识性了解就行了啊,因为真正开发的时候呢,我们很少去写这个东西的,因为你在公司当中,你是有生产环境数据的啊,直接拿过来就可以用哈,这个名字log相当于是日志的一个收集。OK,放在这儿。N。之后呢,这块呢,这个idea project我放到这个工程二里面哈,工二里面。OK finish创建。好,这样呢,就创建了一个工程,那创建工程的话,我们这个工程里面肯定需要一些,呃,一些依赖啊,包括一些加班,那这块呢,我们需要可以通过微问把它添加进来,那我们需要用到哪些呢。来看一下,我们需要在这个文件里面添加这些内容,一。第一个呢,叫log back啊log这框架,Log back这框架呢,其实你们现在可能不懂他跟谁一样呢,Log附近。
03:08
嗯,Logo附件啊,类似的就是打日志的对吧?啊,就是用来我们打日志的,只不过呢,用了它之后呢,可以帮我们去,嗯,按照我们想要的把数据写入到Linux系统啊,指定的目录啊,类似这样的一些功能啊。哎,那再往下,再往下呢,是呃,Dependence。我们这里面用到了这个里,Fast们是们肯定需要这个是。啊,这个是log这个版本号啊,版本号就说这里面我们没没写死,我是在上面统一去修改的,当然你把这个这个版本号呢,直接写到这里面也是没问题的啊这个框架呢,主要是用来这个生成日志的啊生成日志。啊,这么两个OK,呃,再往下这块,这块呢,大家并不陌生啊,因为咱们在写这个high do work count的时候,就已经把这个打成包,然后上传到群进行一个运行,那这块呢,其实就是打包的一个工具啊,就是件包的件,那件的话下面是正常这些呃,插件的一些配置。
04:16
啊,不用管,那这里面有一个地方要注意,你说这个地方。它这里面有一个main class啊,也是你的主类是什么名啊,它的主类的全类名,那全类名这块呢,你一定要不要写错了啊,要跟你那个类的全类名一样啊,我们一会儿呢,先先粘过来啊,先粘过来之后啊,一会我们对照一下,你要跟谁一样呢?就是你会在这个com at硅谷application下面要建一个内。啊,如果你起的名字跟那个不一样,那你就重新获取一下全列名就行了哈,仅此而已。嗯,对,这个男你之前也说过哈,拿过来。好,拿回来之后呢,放在这儿。好,那这个放在这之后啊,这个inport顺一下啊,一定要第一时间确认一下你这个主类啊,主类主类的话要建一个呗。
05:09
在这下面要建一个。com点点application。右键你有一个pack。嗯,报名,然后呢,在下面呢,创建一个APP class。OK,那这样的话这些事就OK了啊,基本准备工作OK了,我们添加了一个这个log back以及依赖就是打印日志的,还有一个呢,是用来这个解析JA的fast JA啊,不用fast JA你可以用森,还有杰克son啊,也都可以啊,没问题。这是这一块,那我们下面继续。下面呢,我们就要配置对应的这个公共字段啊,公共字段就是Java嘛,你像我上面这里面一共涉及到了是有11张表吧。来看一下,一共是四件日志呢,有11张表,那么这个启动日志呢,一张表,那你假数据的时候,你得按照这个字段去啊。
06:08
那你要方便去照这个数据的话,那就是要创建11个11个类。啊,然后逆相应的对象这样去做就会方便很多,所以说我们现在呢,在这个B里面,哎,就是创建对应的这个啊B对象。那好,那这个公共字段呢,其实就是这种Java对象,比如说你看一下啊,这个是APP base base的话,这里面主要涉及的是一些公共字段,你看这个,呃,设备唯一标识啊,用户ID啊,程序版本号,跟我们之前的工作不一样吗?你看手机品牌啊,手机型号,手机品牌。啊,还有这个全球邮件。呃,什么精度纬度是一样的哈,那这个呢。我们拿过来创建。创建的,我们放到一个包里吧,统一放到这个包里面包上。OK,先准备各种这个对你要之前是第一步,然后呢开始创建。
07:10
哎,重建I base base的话,这里面呢,因为呢,它都是一些公共字段,那我就把它拿过来哈,直接拿过来。嗯,这个效率比较慢啊,我不这样玩了啊,这不怎么玩了,我直接这个解压吧。这样效率有点低了啊,在咱们这个资料包里面,不是资料包这个代码包里面有个B,我把它解压。哎,这样。啊,解压之后呢,把这个拿来啊,这里面就是加对象啊,没有任何业务逻辑啊,没有任何业务逻辑直接拿过来啊,然后。呃,拖拽到这个B下面就可以了。那这个呢,我先删掉吧。
08:00
OK,直接拖拽过来。哎,你看这就很省事儿了啊,那这里面呢,你看这个呢,是用户后台活跃,它就一个子弹一个子弹,然后呢,形成他get set的方法啊,之后呢,是这个ad广告啊,入口啊,入门啊等等啊。这咋的了?各种给我刷刷火箭刷刷车呀,大家都是有钱了。能打字吗?呃,行,那我把这段讲完哈,这段讲完,因为这段内容呢,嗯,比较比较连贯,那下面呢,是这个广告啊,广告的这个每每一个字段啊都没问题,然后呢,之后呢,是这个APP comment啊,什么评论表一些信息。啊,然后呢,这个呢是点击表。故障日志表。还有呢,这个呢,是这个啊,主见是这喜好收藏。Loading的是商品列表。嗯,这个是商品详情。
09:01
还有这样的通知。点站还要启动啊这么多。五分钱送的五分好吧。那不管啥时候送的啊,都感谢老铁们啊,这个送火箭的送这个啊跑车的啊,都发大财啊,工作顺利,学习进步啊,这是B之段,那下面呢,还有这个核心业务逻辑,你说具体你怎么照啊。对吧,大家关心的是这个,因为这个呢,就都很简单,造价和拼对象,我相信应该凭你们的手速会比我快啊,会比我快一些,因为每天晚上都会勤加练习啊。很怕生疏了,嗯,那往下看啊,这个前面这些这块呢,都是照B对象的一个过程,那再往下这块呢,就是主类函数,那这个主类函数你想咋写啊,你想咋写呢。哎,来看一下。比如说你针对这个数据,你要有想法啊,一定要有想法,多思考。对吧,我们就想模拟一些真实的这些数据,那怎么模拟呢。
10:02
你需要照的数据就长这样。哎,你照出的数据需要长这样,那剩下怎么照?你看啊,这里面分这么几块,第一部分呢,这是服务器时间串啊,然后呢,竖线拼上了一个,这是大括号开头,大括号结尾,这是一个节省之后呢,这个最外层这个里面呢,有一个啊gmail啊,也说哪个APP程序的,那是这个我们叫全球电商啊,全球电商gmail。然后呢是CM呢,相当于是common共在这呢,那这里面又是一个,再往下呢,是一个ET事件,然后之后这个件里面包含的是四。啊,数学也是阶层数组,那这里面呢,又包含对应的外层阶层。阶森里面看好啊,看好啊,阶身里面这是正常字段,那这块它又嵌套了一个阶身。哎,又签到,节省。那是这样的结构,你如何来你这个数据成这样呢?
11:04
很简单,在没方法进来之后,然后参数一。参数二。啊,我这里面这个代码呢,这个呃可扩展性呢,会更长一些,比如说我增加了这个呃,控制每条发送的时间。哎,我产生一条之后,我下一条什么时候产生,那如果不设置的话,默认是零秒。哎,如果你想模拟这种实时的效果哈,比如说你们后面要做这种实时项目的时候,你需要这个一秒钟来一条,一秒钟来一条啊实时的产生啊,真实的模拟这种生产环境的话,那这个呢,就要加一个每条的一个延迟时间。嗯,好,那再往下呢,还有一个就是循环变列条数,你说你想产生多少条日志。啊,多少条,那默认的是1000条,当然了,你这里放一个一个亿也行,没问题,只要你电脑性能OK,那可以,这都是没问题的哈,好。进来。那既然设置了这两个参数之后呢,下面呢就简单了,那你开始找数据吧,那首先这里面你已经默认了1000条,那你循环便利的次数。
12:06
那肯定要循环1000次啊。对吧,是刚才有同学说了,那照数据其实就是后循环加上随机数嘛。啊,那我们放循环的话,就是放循环,放循环1000次之后,下面呢,是具体的执行业务逻辑,那这些业务逻辑呢,这里面其实呢,我是分了呃两块一块呢,是这个上面这个。这是启动日志。我现在这个呢是事件日志对吧,这是事件日志,还有一块是启动日志,启动日志很简单,因为它只是单接身,就是大框开头,大框结尾里面,它是一个一个的,这个接成KKV啊KV形式。那你可以创建启动日志并对象并赋值。哎,向这个启动日志里面赋值,赋完值之后呢,将B对象转换成阶层,用谁来转呢?Fast阶层那个框架。对吧,刚才已经添加了这个集成框架啊,用它就可以搞定,只要把这个B对象。把它传进去那个发身对应的API就能得出来你想要的,就这么简单,比说B对象可以转成JA,同样道理也可以转换成B对象啊,这是相互转换的,那再来下面呢,是创建一个接身对象,向接身中添加AP,因为这是事间子的啊,事间值事间段比较复杂一点,它分三部分,Apcm和ET。
13:21
啊,那首先呢,添加这个AP,然后呢,再添加这个CM,因为这两块部分呢,它是完全不变的。对吧,什么什么时间他都有。那之后下面这块是有点特殊,那这块呢,因为这里面有的时候是一个时间,有的时候两个时间,甚至时候有七个时间,甚至八个时间。那这块呢,就要随机向阶乘中添加ET的这个值啊,随机添加。那就需要用到了啊,一个一个事件,其实一个事件呢,封装一个事件就是一个函数嘛。啊,进行一个函数哈。OK,呃,这个完事之后呢,获取系统当前时间,获取系统当前时间主要是为了干嘛呢,这个事儿,你这还有一个服务器时间呢。
14:02
啊,要拼成它啊,把这个时间呢,给它添加上去。之后呢,是通过这个back对象将系统时间拼上数据打印到控制台或者系统。啊,再就是log back的一个框架了,因为他就负责帮我们去打日志,是拼接呀,啊,包括存储在我们想要的位置啊,由他来控制哈。最后呢就结束了,这是整个业务逻辑,其实呢,前半部分呢,是输入参数的控制,中间这块呢,一个是启动日志,另一个是事件日志的一个封装,最后呢,这块呢是获取服务器时间。啊,定他之后往写,这是整体上的一个方向,那下面的话我们来看一下具体的代码哈。
我来说两句