00:01
好,我们继续往后说啊呃,现在我们这个驱虫已经完事了啊,那这个驱虫完事以后,接下来就是做这个维度关联啊,来吧,那我们就一起来做一做啊。好,这个打印我就去掉了啊,维度关联啊呃,这个维度关联的话就比较简单了啊,就是把我们这个存到这个red里面,这个维度数据给他这个调出来,调出来以后呢,把我们这个后面分析的时候需要用到的这个字段啊,给它这个拼接进来啊呃,那我们需要这个拿哪些字段啊,这个东西的话就得看你这个后面用什么啊。呃,现在我们是这样啊,给大家一个提供了一个并对象啊。就是这个do info。啊,这里面封到的东西呢,就是我们后面需要用到的东西啊,首先你看一下我们基本的这个页面访问日志数据。这是我们目前已经有的啊,然后这个维度的数据的话,我们需要用的是呃,用户的一个性别和这个年龄啊,还有一个是这个地区的信息啊,当然呢,我们还得什么处理两个这个日期的字段。
01:07
啊,因为后面我们在这个做分析统计的时候需要用啊,啊你比方说。呃,像我们做这个操作。做这个分时统计的时候,那我们就需要知道你的每条数据呢,是在几点钟访问的,对不对。是吧,啊,这样需要去做一下啊,说这个呃,可以把这个就是它的日期字段啊,给他这么做一个这个处理啊,在这个地方。对吧,给他这个做一个处理啊,然后这个地区信息的话呢,我们也给他拿上啊,因为后面我们都有可能会用啊,所以说呢,呃,目前我们就把这么几个字段给他这个从维度里面调出来,然后呢给它这个拼接进去,然后呢,最后呢,我们得到的是一个DA info啊这样一套数据。好吧,来,呃,那这个我们就先拿进来吧。把这个deal info给它拿进来啊,呃,再去写一个并对象啊,用上一个SKY。
02:04
呃,这个题就是我们的这个宽表了啊。好加进去啊,然后呢,呃,写成样例类啊。好,呃,这里面有什么东西啊,那就直接网购复制吧。好放到这儿啊。OK,嗯,这个好像还是少两个字段哈,就少我们这个之前,呃,我们在做封装的时候呢,给大家这个加的那两个字段,一个是这个brand啊,一个是这个type啊,行,这两个我们都加上吧,呃,因为前面既然已经处理了,那我后面就把它都带上啊。嗯。啊,字符串的啊,再来加一个那个什么s type。对吧,把这两个字段给它加一下啊,行,然后剩下的话就是我们需要去补充的啊,需要去补充的OK,行,那这个有了以后呢,接下来我们就把我们当前这个配置log啊,给大家这个想办法,然后呢,处理成一个deal info。
03:12
OK吧,来,一起来写吧。那这个维度关联的话呢,还是需要去查red啊,所以说我们这个直接就是呃。调这个map partitions就可以了啊,因为目前你做的还是一个结构的转换嘛,就是把你的配log,然后呢转成一个info。对吧,所以说我们就直接使用这个map partitions啊好进来以后。他给我的是一个page log的一个啊,OK,那我们怎么写啊,呃,还是。做迭代对吧,好做一下迭代啊,这个拿到的是我们的pagelo。能看到吧,好,最后的话给大家返回啊,那我先这样吧,先给他返回一个空吧,别报错啊,先OK。那你拿到这个每一个配置log以后啊,我们主要做的事情是如下几件事情啊,第一件事情就是将配置log中的啊已有的字段,然后呢,字段啊拷贝到这个DA中啊OK,然后第二步呢,就是补充这个维度了啊补充维度,那这个补充维度的话有这么几个啊,第一个是呃,就是这个用户维度啊,用户信息维度好,然后第二个是地区信息维度啊好,然后第三个就是我们的日期维度啊啊日期字段啊,对吧,日期字段的一个处理啊。
04:47
OK,呃,来一起来看一下吧,这个先做第一个吧啊,因为第一个会麻烦一些啊,第一个会麻烦一些大家看啊,现在我们是想要把这个配置log里面的字段啊,我把它这个截个图啊。
05:04
好,我们想把这个配置log中已有的字段,然后呢,现在呢,什么统一给它搁到你的这个,呃。DAO中啊,放到这里面。啊,这个时候大家仔细去看一看啊,其实你会发现我们这个page log里面这个字段的名字啊,跟你什么这个duo这个字段的名字其实是一模一样的。那好的吧,你就挨个去对比一下啊,其实是一样的啊。然后的吧,然后呢配置ID,然后呢配置什么item item type。对吧,呃,它少一个last page ID啊,这个我们就不要了哈,为什么不要了呢。因为我们目前对这个数据的过滤,就是你所有包含这个last page ID的这个数据已经过滤掉了,那就说白了啊,其实我们最后在做这个日后统计的时候,它里面是呃,不需要用这个字段的,对吧,那我这个DAO中呢,我也就没有什么再去加这个字段了啊,OK,剩下的应该都是一样子的啊,以及这个TS啊,TS在最后啊,在这个位置。
06:01
对吧,好,那想想啊,既然你这个字段都是一样子的,那你说我现在想把它里面的值呢,给到我的这个对象里面的这些个字段上面。那我们应该怎么去做呀?啊,如果说你使用这个笨办法的话,那你可以这么去做啊,就是比如说我先,呃这样啊,我先用上一个b info。对吧,叫这个DAO啊。OK吧,呃,那我new的话,New的话我就需要有一个无参构造器是不是,嗯,但是我现在这里面是没有这个无餐构造器的哈,呃,那我给他一个无偿构造器吧,这个我也我应该也提供了哈,在这。好复制过来了啊,我就不写了啊,好看一下吧,给了一个无参构造器,然后呢,我们都是给的这个空值啊,然后这里面我因为我们加了两个字段啊,一个是这个brand,一个是这个。对不对啊,那我就这个好像都是加到这个浪前面的哈,第一个浪前面,那我在这个浪前面呢,加上两个空就可以了吧。
07:07
对吧,这就可以了啊,就是我给的都是一个什么空字段。好吧,都是给的控制段啊行,那有了这个无参构造器以后,你看一下啊,现在我就可以把这个对象给它扭出来,扭出来以后如果你用的是笨办法,那你可以这么去做,就是dau for的mid对吧,然后呢,给他什么设置一下。呃,Mid等于啊,等于什么呢?等于这个dau啊,叫配置log的mid。对吧,你就一个一个的把它字段拿出来给到它上面,字段拿出来给到它上面。这是一个笨办法。OK吧,但很明显啊,我们是不希望大家这么去做的。能听懂吧,哎,就是这个分办法啊,干嘛呢,就是将这个配log中的每个字段啊,每个字段的值啊,挨个什么呀提取,然后呢,复制给这个dau ino中对应的字段啊,中对应的字段啊,复制给。
08:18
对吧,这是一个笨办法啊,呃,但这个事情呢,我觉得我们就给他优化一下吧,你这么做着实这个有点有点low哈,好,那我们可以怎么去做呢?我们可以怎么去做,就是呃,我们写一个什么这个对象拷贝啊。对吧,我们想什么呀,就是这个好办法吧,好吧,好办法怎么做呢?就是啊通过什么通过对象拷贝拷贝来完成啥意思呢?就现在我们已经明确了啊,我要把一个对象里面的这个属性的值,然后呢,拷贝到另外一个对象上面,对吧,那其实我们完全是可以什么写一个。工具类啊,或者说你找一找有没有这个现成的工具类啊,然后呢,能够帮助你去完成这个功能。
09:03
反正我们知道的就是你的这个字段的名字都是一样子的,那我就完全可以什么基于你的诶某个字段提取值,然后呢,再去到它里面找到具体对应的字段,然后把值给它附上去。对吧,因为你的名字都是一样的,那我就可以怎么通过代码去做这个关联,就不需要你这个手动的一行一行去写了。对吧,所以我们就差一个什么这个对象拷贝OK吧,呃,那这个对象拷贝的话呢,其实对于我们这个Java中来讲的话,它有很多啊,有很多这种工具类,你可以这么随便去用。但是对于我们目前这个写的这个skyla这个代码来讲,毕竟我们这个对象都是这个skyla对象啊,说他这个对象拷贝吧,它这个没有现成的啊,需要你自己去写。能明白吧,啊,所以这个接下来的话,我们就自己写一个这个对象拷贝的一个工具类。能明白吧,啊,把这个对象拷贝工具类给他写好,写好以后我就什么可以直接拿过来去使用了,我就一步就搞定了,省得你这个还得啰里吧嗦的啊,写这么多步。
10:01
明白吧,啊行来,这是我们维度关联的一个要做的事情啊,先把它列出来,列出来以后,下面我们就一步一步的去完成啊,那我们首先要完成的就是第一步,那第一步的话呢,我们需要有一个,呃,需要去封装一个工具类了啊,接下来我们把这个工具类给它这个封装一下,好吧,好听一下。
我来说两句