00:00
手卡的这种实时数据,我们想想怎么去造啊,呃,这个其实首先啊,咱们要给德鲁伊造这种实时数据的话呢,我们首先得得得有一些要求,第一点得是清洗好的,也就是结构化的数据,那再一个呢,你还得是什么,你还得是有一个时间字段才行。对不对,还得有一个时间字段,那这样一来的话,咱们想想谁比较合适啊,诶其我们这还真真是比较巧啊,比较巧巧在什么地方,其实我们在这个tmp logs当中,咱们生成的这个日志。咱们看一下我们是不是有这个启动日志啊,那启动日志首先它是不是一个结构化的。没问题吧,它是杰森,而且启动日当中,我们是不是恰好是有一个这样的一个字段的呀。这是不是有一个时间串对吧,它就是一个时间字段,那所以说我们现在正好就可以以它作为咱们这个数据的来源,以它作为数据来源啊,那这个其实非常不错了,非常不错,那也就是咱们现在呢,可以怎么做,我可以这样去做啊,我可以开启咱们这个F1这个flu把它开启,然后把谁开启,把卡夫卡也开启,那然后呢,我们让那个love.sh呢,让他不断的我去生成数据,那这边咱们卡夫卡是不是就能不断的收集到这个实时数据啊,那所以说咱现在呢,把这个去做一下,那要做这个的话,我需要首先去启动咱们的卡夫卡。
01:18
卡不卡点start。已经启动了吧,SGPS看一下。好,大家看啊,102有这么一大堆的闷进程,这个都是谁,都是咱们这个play里边德鲁伊的进程,都是他的进程啊好,那其实这样的,你可以这么看一下,你可可以看一下啊,可以看一下那个GPS-ML回车,你看这里边每个慢进程后边是不是都对应一个德鲁伊的一个角色呀,对吧,是这样GPS-ML可以查看这个进进程的详细信息,好,那现在呢,呃,完成之后呢,我们接下来卡不卡提起来了,那我把这个呃是不是F1也得提起来呀,来F呃一点。Stt start。
02:01
把它也起起来了,那它也启动完之后呢,我们现在要做什么事呢?我们现在就可以去生成这个日志了,咱们使用那个呃,Lg.SH续成日志,诶但是大家可能会觉得我直接log.sh之后,他是不是一下把数据写完了呀,对不对,那那是不是又不是实时的了呀,我得实时得不断的产生才行,那咱们可以怎么做呢?这个脚本咱们是可以传参的。可以传参,怎么传参呢?来我们看第一条呢,一个参数指的是咱们发送每条数据的延迟,那后边的是一共发送多少条,那我这是不是可以诶写一个这个,比如说写一个这个三秒钟让他发一条,然后让他发1万条,那这个是不是可以在很长一段时间是不断的产生数据啊,那咱这么做一下就行。比如说我让他,让他这个,呃,3000毫秒一三秒钟一条,我发多少条,发1万条。那直接咱们这个回车,那回车之后。诶,这个它怎么直接就生成了呀,这个有点不太对啊,那我们去看一下这个OT。
03:02
CDCD到这个这个bin目录,然后我看一下这个Lg.SH啊,这个可能写的有点毛病。呃,我来看一下啊来。呃,这个Java杠这啊没问题,没问题啊,他是把这个东西推到这个,呃后台去了是吧?那应该是没问题,那CZZ啊,那OK,那我查一下这个进程,看他在不在,好那这个进程在就行,没问题啊,这没问题,好他退到后台了,好那现在呢,呃,我们继续去写什么东西啊,继续去,呃呃,检查咱们的数据有没有造好,那现在也就是我现在源源不断的在往咱们的这个卡夫卡里边写数据,那我现在是不是可以去消费一下卡夫卡的这个topic呀。Mo,然后卡夫卡B开一个卡夫卡cons consumer,看看有没有数据con,然后杠杠topic,后边呢,来一个topic,下游线STT,然后后边杠杠这个boot s TP,然后杠S。VR,然后boot serverop102,后边呢,来一个9092。
04:03
咱们先测试一下这个数据能不能过来回车。看数据能不能过来啊。然后B卡夫卡council consumer,诶这个数据呢,其实是能过来的,呃,咱们大致呢,是这个,呃,三秒钟一条,大致三秒钟,但是这边到卡夫卡之后呢,其实并不是说严格的三分钟一条了,为呃,为什么呢?呃,并不是严格的三秒钟一条,为什么啊,因为我们整个的前面是什么?是flu采集文件,然后再往卡夫卡里写,对不对,那这里边其实你甭管是读还是写,其实这边呢,都有一个批这样一个概念,所以我有有可能我得等到一批我才写一次,所以说可能并不是说我写一条立马就实时的往这边发一条,诶不是这样的啊好,那这个玩意之后呢,咱们数据应该是没问题的,那接下来呢,我们去对接一下卡夫卡。来点击它,那这边呢,需要我们去写卡夫卡的参数,首先卡夫卡broke,你得告诉他卡你的夫卡在哪,卡豆102 9092,逗号海豆103,冒号9092,那这个地址呢,我们写两个就够了,通常写俩就行啊,那topic呢,我们应该是topic topic ST start。
05:07
啊,下边大家要注意,你看这边咱们这个数据的格式是有要求的,是不是必须得是结构化的,要么是杰森,要么是什么,要么是CSV,要么TSV,那CSV指的什么呢?是逗号分隔的,TSV呢,是tab键分隔的。是这样的啊好,那咱们是杰森,完事之后呢,点击and continue,这是抽样,并且继续。点这个看一看啊。这个可能比较慢啊,可能比较慢,咱们稍微的等一下。那这个数据呢,已经抽样过来了,你看啊,而且他已经是不是帮我们把这个字段已经解析出来了呀,这里边儿是咱们那个杰森啊,已经把每个字段解解析出来了,那OK,这就是我想要的数据,来点击yes。那这时候来看这这地方啊,他已经干什么呢?已经帮我们把这个时间字段是不是已经自动选好了呀,已经自动选好了,然后这边呢,这个T字端选好了,下边那个格式呢,咱们有是这个毫秒,它已经选出来了,是非常强大自动识别了,已经自动识别了,好,那现在呢,我们往下看,下边呢,这有一个什么,有一个这个data roll up。
06:17
Up什么意思?Roll up就是这个是不是这个它上卷的这个意思啊,对不对,其实在这呢,其实指的就是我是否进行这个预计算,是否进行预算啊,那如果说咱们使用这个,诶don't有rap也是它不会预计算,那如果说使用点击这个东西呢,它就会进行预计算了,这其实我们可以自动配置的。自动配置的啊,OK,咱们现在让它计算,接下来呢,点击con columns。那来到这一步之后呢,大家应该就比较熟悉了,你看这一步是在干什么啊,这一步首先这块呢,是把我们所有的列都给你列在这儿了,所有的列都在这边对不对?然后呢,我们在这干什么,你需要去指明你每一个列,哎,你这个列啊,你是一个维度,你还是一个度量。
07:00
需要我们去指定这个事儿,其实跟我们h base当中是跟那个麒麟当中是一样的啊,指定维度和度量,那比如说咱们这先确定一个度量吧,那我的度量谁可以作为一个度量啊,咱们看有没有合适的,诶咱这呢有一个loading time。就加载时间对不对,那我可以去统计一下,咱们不同手机品牌,或者是不同这个什么那个系统的,咱们这个加载时间这个最大是多少,咱是不是可以统计一下这个东西啊,那我给咱去统计一下啊,那也是它我可以做一个度量值,那咱们去选呢,点左边meri就是度量的意思,那度量其实我是不是得有聚合函数啊,那聚合有sum,有min,有max。对不对,那你这个数据数据的类型可以有什么呢?可以有long类型的,也可以有什么double类型的,对不对,可以有这些东西,那这就是我们去指定这个字段的这个这个方法啊,那现在呢,我们loading time,比如说我想求一个最大值,那就应该选谁meri,然后是long max,选它就对了,对不对,那其他我们没有度量值了,那我把其他的东西呢,全部作为维度,那现在没用的东西我可以删一删啊,这个东西我不要,不要我就删掉,可以删,这也删,咱也给删掉,这咱都不要,咱们就留一个loading time吧。
08:09
这都干掉好,那这个上面这些东西呢,呃,M它作为M也不合适去掉,这个呢,咱们也给它去掉UID呢也去掉行,那咱们就剩下这么多东西,有一个count,还有一个loadtime的最大值,那上面的全是这个维度,那咱们就给它作为维度就行了,那OK,那接下来呢,咱们点击additional这个con。好,那这边呢,呃,就不用再做其他的一些配置了,我们点击这个review con,那这边呢,是什么,是咱们这边啊,就是那个刚才咱们所有配置的一个这个回顾,你看有没有问题,有问题呢,你返回去修改一下,没问题那就点击start load。那这时候呢,就开始去加载这个数据了,这时候就开始加载数据了啊,这时候我们只需要静静的等着就行了。现在等着。
09:00
那这个一会儿加载成功之后呢,这个会会变绿。大家那个坚持一下,我们呃,可能需要耽误这个三五分钟。一旦这个数据对接上之后呢,我后续就可以对他进行实时的分析了。实时的分析啊,因为那边不断的产生,那我这边呢,就不断的这个收,不断的这个计算,不断计算。对,加载完这个就就就可以这个下课了就演示一下嘛,就演示一下。那这边加载的时候可能比较慢,呃,而且大家自己去做的时候呢,就是这一步呢,它有可能会出问题,有可能加载不上,这是为什么呢?呃,大家说一下啊,其实大家现在啊,如果去看我这个102的这个基,那资源的时候呢,应该是基本上已经满了,就是所有的资源应该都都已经占满了,是因为咱们现在在幺二上面启动了太多的进程了,太多进有什么呀,有德鲁伊六个进程对不对,还有这个造日志的,还有还有卡不卡太多进程了,可能这个资源已经枯竭了,那如果说这玩意你要是成功不了,那就是资源问题。
10:11
那资源问题那就没有办法了啊好,那现在呢,我们接下来漏完之后呢,我们点击这个circle。然后这时候大家看这边已经出现了这个topic start了,这其实是不是在德鲁伊里边进来之后就相当于是一张表了呀,对不对,那我们就可以写词后查询了,那刚才咱们预计算了什么东西,咱们预计算了什么东西,咱们预计算了select select。Select什么东西啊?呃,咱们要看一下不同手机品牌的这个loading time的最大值对不对?那这块应该怎么写,是不是应该select loading time?然后逗号,然后得有一个max max,谁max,呃,诶不对,不是轮time嘛,应该选谁,应该选那个那个字段啊select,呃,MD对吧,应该有它,然后后边有一个max,然后括号来一个这个诶,Loading time对不对,然后呢,From哪from咱们那个topic start他进来,虽然这是一个主题,但他进来之后是不是变成一个表了呀,对吧,那后边呢,我们呃让他去一下啊J。
11:14
BYBY谁BYMD对吧,那现在呢,我们就可以去执行这个circle。好,你看这个结果是不是已经出来了呀,不同手机品牌,不同手机型号吧,应该是我的这个最大值都求出来了,那而且这边咱是实时计算,你要知道是实时计算,那也就是说我这不断的run again,那他是不是应该就是不断的去变化呀,那可能是可能是我这个最大值已经就是已经是最大值了,所以可能是不是不变了呀,那看这个效果不明显,我们可以看一个明显呢,咱怎么办啊,咱们执行一个这个咱是不是还有一个count的度量值啊,对吧,那可以执行一个s select select count星。对不对,那这样一来我应该效果就比较明显了啊,谁来看一星from,然后那个呃,Topic start来咱们去跑,这个时候你看我点走。
12:00
现在是54对不对,54条,然后我再转。诶55了对不对,那一会儿呢,可能还会不断的变,还有五断变啊,因为咱这儿不是说不是说严格的就是三秒一个,三秒一个,它可能会一批,诶你看5657对不对,也就是他是一个实时的这样的一个计算的,这是非常不错的啊,那我们德鲁一其实更多呀,诶是不是也是做这种多维分析,但只不过人家能做什么能做这个,诶多维的这种,呃,实时的这种多维分析,实时的多维分析啊,是这样的,德鲁伊更多的还是用在实时上面。事实上边好,那这个德鲁伊咱们就演示完毕了啊行,那我把视频录一下。
我来说两句