00:00
的项目,但是业务呢没那么复杂,所以我们做起来呢,应该相对来说也会快一些,所以接下来我们看一看项目的实现,首先第一个啊是我们系统的环境啊,在做我们项目之前保证环境是统一的,那么第一个是我们的系统啊,Windows开发,然后呢LIS部署啊就是这样,然后呢,下面呢是我们的开发工具,这个没什么说的,咱们用那个idea啊和那个JDK。这个may问的版本啊,这个不重要啊,这个可能跟咱们大家有的不一样,反正基本跟我的不一样啊,所以呢,这个不重要,能跑就行了啊,你要说老师啊,我这个may问可能跑不起来,咱们再说咱们单独解决啊,然后下面呢,说什么这个提示,这个提示就不考虑了吧,啊有问题咱们下来单独看,嗯,下面呢是我们的题型环境,其实就是我们当前给大家讲的那些框架,这些框架的版本呢,应该都是统一的,嗯,2.7.2就3.4.10 1.3.1呢,1.7.0,卡夫卡呢,2.10.110.2,应该是啊,就是这样,所以啊,这个呢,我们说都大同小异,没什么可说的啊,只要能够保证环境一样,我们再做开发就行了。呃,下面呢,是我们的硬件环境,那么硬件环境啊,这个我相信跟大家现在应该是一样的啊,但你要说老师啊,我就跟他不太一样是吧,那这样的话可能在你运行的过程当中可能会卡顿啊,这都是有可能的啊,所以我们这里什么四个G的内存,两个G2个G啊,双核一核一核。
01:25
啊,50g 50g 50G,诶这个呢,应该都是差不多的啊,所以这个呢,是我们的一个环境的一个什么,诶架构那环境没问题了,那接下来我们准备呢,去完成我们第一个操作,第一个呢就叫数据生产,数据生产他说了在我们当前场合下啊,对于模块的业务来讲,数据的生产过程一般不会让我们来做,为什么呢?因为我们做的是后台的,后台也就意味着我们是对数据做处理的,可是数据的产生按理说跟我们应该没有关系啊,数据的产生跟我们那个没关系,我们的目的是把你产生的数据我拿过来做统计分析,做存储啊,做一些操作,所以这个案例说跟我没有关系啊,可是呢,对于一个完整的系统来讲,数据的产生是非常重要的,而且是一套完整且严密的体系,这样的话可以保证数据的什么健壮性,这个叫五棒性,那其实就是健壮性的意思啊,但是如果涉及到项目的一体化方案的设计,包括整个的产生。
02:25
存储、分析、展示,这是一套完整的体系,那么对于我们学大数据的来讲,你光去知道其中一块还不行,所以在工作当中,我们的大数据的开发人员一般是跟前端的那个什么人员呢?要连在一块儿。举个例子,他会问啊,你们前台需要哪展示哪些数据,他会提出一些需求说诶,我要攒这个数据,我们要攒这个数据客有这样需求,那你要分析一下我们当前的后台的大数据,能不能把这些数据给他统计出来啊,能不能统计出来,如果统计不出来什么原因?可能是我生产的数据就没有这方面的东西,他没给我,他没给我的情况下,那我这边根本就无法做统计分析,我这边没有统计分析的结果,你那边也根本就无法展示,最起码有些数据的项目呢,就缺失了,那肯定是不合适的,所以啊,对于我们来讲,光知道某一块是肯定不够的,我要知道一个完整的过程,诶我这边的数据是如何产生的,我们的服务器当中,那个服务器日志里面有没有这样的信息,没有的话,你。
03:25
可能得找我们的什么,诶,开发人员把那个数据给我准备好啊,准备好以后你拿到了以后再做统计分析,给我们的前台的展示啊,就是这样,所以啊,我们说我们做的少,但咱们了解的要多啊,所以我们数据的生产呢,我们也是要给大家演示一下的啊,所以我们必须清楚每一个环节是如何处理的,包括我们每个环境当中可能隐藏的一些问题,数据的结构,数据的内容可能出现的问题,那比方说我们的数据生产,那可能改不了啊,他改不了他可能就把一个不符合你要求的数据给我生产出来了,比方说日期啊,咱们说咱们叫时间戳,但是别。
04:05
别人不会给你时间戳的,举个例子,咱们那个微博大家还记得吗?咱们那个微博,咱们是不是是那个时间戳那个浪类型那个数据啊,但是可能客户呢,根本就不给你个数据,他给的是什么呢?20180101,他这样的数据,那么大家想想可能跟这个不太一样吧,那你是不是就自己去清洗和转换了,哎,就是这样啊,所以说我们有的时候想要的数据,可能别人没有办法直接给你,你得用自己的方式把它转换过来啊,所以在我们这种情况下,我们需要知道它的数据的产生过程,以及产生的什么样一种方式啊,诶那这个咱们了解之后,那么用起来就会更加的方便啊,所以数据的产生我们需要了解,那么好,那我们既然要产生数据了,那我的数据产生在我当前场合下,我需要哪些数据来提供支撑呢?那首先咱们刚才分析过了,大家看一下。我现在比方说我说了我现在要什么,哎,有个折线图,这个折线图当中,我想看一看我2018年我的什么十月份的通话时长,通话总时长就这么个业务,那么你想想你需要知道哪些数据。
05:16
大家想想,我刚才说了张三,诶,我想查询2018年十月份我的总共的通话时长,这一个月的总共通话时长,那么他要想知道通话时长的话,首先是不是我得知道我们的通话的每条记录的时长啊,你说总时长,那我就不能总了,对不对?你的总时长这个统计结果,那我要得到的数据肯定不是吧,肯定是每次通话的时长对不对?那所以数据产生的时候,是不是应该把那个每一次打电话的通话时长告诉我呀,最起码比方说诶30秒,咱们以秒为单位,那30秒啊,还有什么两分钟啊,一个小时,你把这个东西得告诉我啊,而且他还说了是2018年的十月份,那也就意味着你通话的时间,你是不是也得知道,一个是通话时长,一个是你的通话时间对吗?诶,所以啊,还有这么回事儿,那还有一个,那肯定是张三打的嘛,所以我们这里数据生产的数据结构,最起码用户是谁,你得知道你在什么时间打的,你得知道你打了多长时间。
06:16
电话你也得知道,诶老师呀,那我给谁打的那个我需不需要呢?不需要,在当前的场合下是不需要对不对,哎,不需要,但是在某些场合下是不是需要了,我想看一看我的一年呀,给我的哪个朋友打的电话最长,对吧,我看他友好度啊,亲密度啊啊那这个时候可能就需要给谁打的,你也需要知道了,那所以在这种情况下,我们的数据咱们别的不说,最起码你两个电话号码你得知道啊,主教和被调的两个用户我都知道,第二个啊,我们说用户的通话电话号码你都知道,第吧,第二个和第三或者说第三个吧,我们叫做通话的时间啊,通话的时间,2018年的10月15号,你打了个电话,诶,这是个时间,然后呢,你打多少时,你打了多少时间呢?打了20分钟,诶打了20分钟,那通话通话的时长我们也要知道,所以数据结构当中一定要包含这些内容,那你要说老师包有没有包含别的内容,就要看实际的业务场景了,如果还有别的需求可能会什么,可以用一下比方。
07:16
说这个我给男的打的多,给女的打的多。那你是不是还得知道这个被叫用户的性别呀,对不对,那你还得知道这些东西,那所以说这都是跟统计有关系的,那你要看看你到底需不需要,那咱们这先不考虑那个事儿了是吧,不考虑那个我们的性别的问题了啊,所以呢,我们这里大家可以看到他说了,我们将在s base当中存储两个电话号码,以及通话建立的时间和通话的持续时间,最后再加上一个flag作为判断第一个号码是主教还是被教的一个标志,这个呢,我们后面给大家详细的讲,咱们为什么要这么设计,后面再说啊,现在呢,咱们先了解这么个东西就可以了啊,然后呢,姓名字段的存储呢,我们可以放在另外的一张表做关联查询,就是说我们当前base里面保存的数据啊,没有名称,我不告诉你张三海李四,我只告诉你电话号码,为什么呢?因为通话的数据是多的,但是你的这个用户量可能没那么多,这个呢,我就先不考虑了啊,所以我们先不管这些东西,只管我们的S当中的。
08:20
数据的什么通话这个信息我们把它保存好就行了,所以在当前的场合下,大家可以看到我们基本上应该就是这个样子啊,CALL1,这个CALL1呢是我们的第一个叫主教的电话号码,那么CALL2呢,就是我们被教的电话号码,然后呢,这个是名称,这个名称说了不是必须的,咱们后面想办法可以解决它啊,然后接下来是我们通话的这个时间,以及我们通话的时长,诶这个咱们都有,那么然后呢,它还多了一个是什么时间戳的形式,其实说白了就是一个是我们字符串,一个是我们的浪类型的,这个其实不见得非得用两个,你用一个来转换也可以啊,这个问题不大,你要说这个转换的时间可能太长了啊,我们也可以直接给他设定好,这都没有问题啊,所以我们这里呢,其实这两个我们就暂时可以先不考虑了,就是1234这四个,这个我们加了也可以不加也没问题,这就是我们整个的数据生产的一个结构,把结构给它搞明白了,我们的什么里面的。
09:20
那个业务要素都已经明白了,那我们生产数据就可以生产了啊,所以呢。
我来说两句