00:00
接下来呢,我们看一下这个思路,这个就比较简单了,第一个就是接收各个明细,也就是说呃,读三个主题的数据,对吧?咱们的五个需求主要来自于三个主题啊,读三个主题数据,呃,变成数据流,接下来呢,将每一个流呢,呃要转换成相同格式对象,做一个聚合unit。对吧,呃,对,用了之后呢。我们按照窗口做轻度汇总,因为毕竟DWS嘛,像离线数当当中,咱们所谓的轻度汇总按天做聚合对吧,那我们实时的按天,我们就不按天了,我们就按照十秒钟啊,十秒钟一次,十秒钟一次对吧,最后呢,将结果写到数据库,注意这个地方大家还记得我们DWS哎,DWS层存储到哪。我们的DWS是准备把数据放到哪的,还记得吗?
01:12
啊,郝总说了,House没问题啊,在click house当中。对吧,啊在house啊,好,那这是聚合之后呢,写入这个click house,这是我们的一个思路啊好,那接下来呢,我们把这个东西来写一下,叫visit的state APP,对吧,打开我们的idea。稍等一下,哎,我ID早上没开对吧,因为我开的东西现在比较多,所以ID打开呢,可能会比较慢一点,我们稍等一下,大家趁着这个时间对吧,可以喝口水啊什么的都可以啊。
02:01
大家可以稍微的这个时候放松一下,因为我早上刚才忘了开这个idea了,应该把idea打开一下。其实这块呢,整个的也有做了这个解释。对吧,也有整个的做了一个解释。就是这边我们说了,你不要拿作为维度信息对吧,因为如果m mid作为这个信息的话,那你日活UV它肯定是一对吧,你之前多少个mid还是保留多少个m mid,那这个就没有意义。这个没有什么大的意义。对吧。你单位时间你怎么压缩,就是聚合这个数据,Mid一定不会聚合到一块对吧,所以原来UV表当中有多少量数据,那还是多少量数据啊,并不能起到一个聚合的效果。
03:04
好,这边呢,Idea已经开启来了,然后呢,我们等待加载这个项目。加载完以后呢,我们就可以了啊,那我们继续把这个看完啊,所以呢,我们选用了相对来说比较通用的几个指标,对吧,渠道新老用户版本和这个。省市,也就是说地区按照地区维度对吧,度量值比较简单,因为从表里边我们就知道了,度量值有五个对吧,就说窗口呢,我们采用的十秒,至于为什么选十秒,到后面大家其实就知道了啊,因为在最后呢,我们用的那个大大屏展示的那个东西,那个工具啊,我们用的是sugar。百度的一个框架叫sugar啊,这个框架呢,我们肯定不去花太多的钱用这个内容,对吧,我们用的就是一个尝鲜版,叫大屏长鲜版,里边的功能呢,其实够我们用了,这个最便宜60块钱一年,对吧,比较便宜,而且大家如果第一次以前没有注册过的话,是不需要花钱的。
04:04
啊,它是有试用期的,一个月的试用期对于大家来说够了啊,那对于大屏长尝鲜版这个版本来说啊,它里边那个图是不是要刷新啊,因为实时的大屏嘛,要刷新,它刷新的最快,最快的频率是十秒钟。对吧,最快最快的频率是十秒钟,那假如我聚合窗口,我搞一个一秒钟的窗口,大家说意义大嘛,我是每秒钟都往克里号去写,但是你那个屏幕刷新是不是还十秒钟刷新一次,也就是说每过十秒钟才能看到一次数据的变化,对不对啊,所以这个就没必要了啊,没必要了,我们就把这个窗口呢,调成十秒钟在工作当中,如果说你希望这个快一点,对吧,你可以呃。就是短一点,当然有同学说我希望看到像阿里双11那个大屏实时滚动的效果,行不行,可以,那你不要做聚合了,对吧,来一条写一条,不做聚合不要去开窗,因为你开窗这个十秒钟开一次窗,对吧?是不是相当于在Spark streaming里面,我们把这个批次大小设置为十秒钟一个道理了。
05:15
能不能理解这个事儿啊,刚才我说的。OK吗?没问题吧,对吧,是这个意思啊好。这个已经开启了,开启之后呢,我们到real time当中来啊,我把这个呢,其他的先全部关掉啊,在src目录,然后Java ABB里边,我们在创建一个Java类啊,这个Java类呢,我们就。叫这个名字,但是呢,我们就要放到DWS层了点。Visit state APP对吧,把我们刚才分析好的这个思路呢,我们写一下啊,把这个注释先写上。
06:05
那第一步。获取执行环境好,那第二步读取卡卡数据创建流,那这边三个主题肯定是三个流吧,对吧,三个流好,那接下来继续啊第三步。将每个流。处理成相同的数据类型啊,处理成相同的数据类型,对吧,好,接下来呢,有。几个流对吧?啊,我们要把几个流用到一块,用到一起之后呢,我们在这边可以第五步对吧,因为最后呢,我们要做开窗对吧,第五步呢,就是提取。
07:00
时间戳商城沃玛。我的对吧,好,那下来不要着急,还有我们要在开窗之前还要做一个分组,按照维度信息分组,对吧,我们要做分组,分组之后呢,我们要开窗聚合。开窗去合对吧,开一个这个滚动窗口十秒。开窗,我们写一下十秒的滚动窗口,好,呃,那这个计算完之后呢,我们就可以将数据。写入写入clean对吧,第九步。做一个数据的打印啊,不是就是数据打印在克里面对吧,任务的启动。好,那核心的我们要做这件事情,第一个获取这个经营环境,那我们还是拿一个啊。
08:09
接下来。读取卡卡数据,那这个呢,我也就不写了,我直接把它拿过来啊先。呃,哎,祖祖跑这儿来了是吧。把这个组呢,我给他拿到这儿来吧。把这几个东西拿过来看一下,是不是三个主题啊,对吧,三个主题一个消费者组好,那接下来呢,我们就把它,呃,创建我们的流啊,对应的把它该转换转换。对吧,啊行,那我们就直接创建啊呃,因为点a source啊,然后呢,这边。第一个我们就读取这个PV数据呗,对吧,PV数据它有三个指标要出啊呃,然后PV数据的话我们看一下啊,我们先搞UV吧啊,因为大家发现PV是最复杂的对吧,它有三个指标啊,UV跟u jump都比较简单一点啊,所以呢,我们就先搞简单的就是麦卡不卡U9点。
09:15
盖了卡卡的consumer对吧,然后呢是UV,然后。是我们的group,但是呢,我们也给它重新取个名字啊。好,这样的话,我们就得到了一个UV的一个什么DS。对吧,UV点。好,第二个因为点ADD source叫MY卡不卡YouTube点卡consumer,呃,然后呢,我们叫use the jump还是groupd,对吧,我们就得到了一个ug的点。啊UJS第三个en点对吧,还是一样的麦卡U点是我们的配置。
10:02
Groupd,对吧,得到一个PV的一个DS,当然这个时候还不是PV啊,还没算PV呢啊行,那这不就搞定了对吧?它呢很简单,这个就无非就是跟之前相比就多了两个主题呗,对吧,以前我们都是一个主题啊,现在呢,三个主题,接下来将每个流处理成相同的数据类型,那这个明显的我们要有个招聘更方便一点,对吧?而且我们分析了招聘当中呢,应该有这个什么地区,渠道,版本,新老用户四个维度,加上我们要分析的五个度量,再加一个TS字段,也就至少得十个字段,好,那我们来看一下,这是我们分析出来的,接下来呢,我们有实体类,叫这个visit states。来在并包下再创建一个长病啊。叫visit states,把这个东西呢,我们拿过来。
11:00
好,那我们来看一下啊,来看一下。Whether states这个包呢,我们来找一下啊,对吧,导两个包啊呃,那首先看这个啊,从这。VC is new是不是四个维度对吧?然后接下来UV count UV count PV countv count健count some对吧?这是不是五个度量加一个S。啊,我们加一个PSOK,那这个呢,明显的就是我们的什么。这个内容了对吧,就是这十个十个啊,四加五加一嘛,十个,但是在这个基础上呢,我们又加了两个字段。一个STT,一个e dt。对吧,这个是统计的开始时间和结束时间,其实是窗口的开始和关闭时间,就是未来我们不是要开一个滚动窗口吗?对吧?那这个地方放的就是窗口的开始和结束时间,那他可能在想,那这两个字段有什么作用呢?现在我没办法给你解释。
12:13
啊,因为click house呢,我们还没学这个东西,这两个字段是为了跟未来house相关的。啊克会用到克house里边会用到这个字段。会用到窗口时间,那家说不对呀,你不有一个TS吗?你有TS不行吗?不行。啊,那这个要注意一下playhouse,所以你现在要记得就是我们在聚合的时候呢,我们要用到这个窗口的开始和结束时间,你只要知道这个事儿就够。啊,你先明白这个事情,那就够了。对吧,后面我们聚合的时候一定要把这个东西加上啊,把它加上OK吧,这是我们所看到这两个的一个指标啊,这两个指标也就是说总共有12个字段对吧?12个字段好,那接下来呢,我们就具体的来做这个事情,好然后接下来呢,我们先这样。
我来说两句