00:00
呃,那接下来呢,到核心业务逻辑,我们自定义函数已经搞定对吧,这边已经写完了,它就很简单,就这么点东西对吧,那这个时候呢,我们看一下叫keyword state APP啊拿过来。还是到我们的EWS层往那一放。Award state APP是一样的,我们要分析一下这个数据。首先一步。获取执行环境。是使用adl方式读取卡夫卡数据。对吧,啊,还是一样的啊,创建这个列表那一张表啊,然后接下来呢,注意。我们在这个地方啊,先要干什么事呢?过滤,因为有的我们读的肯定是配置log,毋庸置疑了,页面日志对吧,但是配置log当中一定都是这个。
01:09
我们要的这种数据吗?来,我给大家看一下啊。CD到log里边一定都是这个搜索日志数据吧,对吧,然后呢,他要。啊30万,我我把这个数据呢,取多一点app.log啊,然后呢,我把这个数据拿出来,因为我这个量我还没装那个插件啊。没装,连这个插件忘了装了,忘了装的话,我就自己去拿一下这个数据。三行数据在这对吧,好到这儿啊,我我给他摘出来。啊在这,呃,那这里边儿我们得找到我们目标数据啊,呃,之前呢,我们看到倒数第几行有一个电视,对吧?来。他有一个。
02:00
电视在哪儿?我怎么没看到了,我之前看的时候还看到了对吧。这个是小米。没用啊,那我们看一下,如果你们看到了,也可以在这挑出来这个行号啊。就是这条数据是哪一行的。刚才网上随便啊,在这在这这行对吧?好,那这个第18行,18行数据就是我们要的这个目标数据对吧?它其实就是一个搜索,那我们看一下它,它有什么特点对吧?首先那我们可以根据这个来过滤啊,来看啊。这一跳,页面得是色纸。搜索嘛。对吧,上一跳是我们可以用last配ID来做一个过滤设置好,但是还有一个问题啊,还有个什么问题呢?嗯,那比方说我们来看一下啊,这个这个事情。这个尾写大家都知道应该要加什么过滤条件了。
03:04
比方说我们访问一下这个京东。啊,现在呢,这是不是搜索框,我可以在这里面输一些东西,按这个搜索对吧,它会出来一些东西,但是我什么都不输,我什么都不输,我直接摁搜索,它会不会出来东西,看见没。对吧,当然它里边隐含的这个什么奥克斯空调啊,那我们这样啊,我干掉我重新点击这个搜索。这个不太好对吧,他怎么又是这个奥克斯空调,感觉好像我们搜的是奥克斯空调,其实我我什么都没搜,看见没。对吧,他自己。推出来的啊,自己推出来的,就是我点击了一下搜索,诶这个页面就对了,对吧,全部商品分类啊,就类似于这样子的。啊,也就是说,尽管他上一跳可能是这个什么叫search页面,但是有可能这。是空的,是个荡。
04:00
所以我们要根据两个条件来做过滤,第一个上一跳页面是search。对吧,是一个查找页面,搜索页面,第二个是当前的这个item,搜索的这个关键词啊它。不等于那。对不对。是不是,那我们看一下啊,这个地方我们看有没有,但是我们自己造的数据应该没有这种数据啊。这边搜索的是PS5对吧,搜索的PS5。一个电视。这个搜索的IPS5不就回来了是吧?这个搜索的是小米啊,但实际上你要知道在京东或者淘宝都有这种功能,就是说你可以输任何关键词,直接按搜索,直接按搜索对吧,他也能够进行要页面的跳转,那这个时候关键词就是那那的话,我们有必要去切吗?没必要对吧。啊,没必要去写好,那这个时候呢,我们就知道了,第二第三步呢是过滤数据,过滤条件呢是上一跳。
05:08
这样一调,页面为四。AND2个条件吧。and搜索词意。Not,那对吧,要注意一下过滤,过滤好以后我们就可以做什么呢?做贴词对吧?好这词呢,要用到自定义的UDTF函数,所以呢,这边注册函数O。TF啊UDTF好,那注册好以后呢,使用这个udf函数进行分词处理。对吧,我们写细一点,其实这里面有的步骤呢,可以放在一块来做,是呢,我们还是分开来写啊,好单词切好以后就简单了呀,可以做分组开窗。
06:06
对吧,分组开窗集合啊,那这个搞定那都已经产生结果了。动态表转化为流。第七步,将数据写入打印吧,我们写一下打印,并写入click house。好,第二个等中啊,这是我们思路的一个整理,好思路的一个整理。好,那这边呢,第一个我们非常简单对吧,那我们去拿一个啊来在这边product它呢,就跟我们一样,连我们留的环境。
07:02
诶不是product啊,错了,应该是这个province啊,总把这个拿错了啊,行,Province当中把它拿过来。把它拿过来对吧,Table in也有了,那接下来呢,还是一样的,拿着table in点啊这里边呢,写这表语句,那我们还到这来写。对吧,还当然来写关键问题啊,这个数据是配置logo,配置logo呢,数据长这个样子来很奇怪了,完了是杰森,靠,杰森,那怎么搞嘞。对吧。挺明显的是杰森。杰森。然后这边我们去。搜索一个杰森在线体系。那格式长这个破样子对吧,这中间有display display我们不用管啊,因为配置当中有的有display,有的没有对吧,那一定有的是common配置和TS。
08:08
这三个字段。对不对,那这个东西应该怎么写了,那也就是说简单呀,你读的不是阶S数据吗?那字段名就叫common page ts呗,对吧,因为你这里边有四个字段,那我只要三个字段可以参考上上午我们所写的代码。对吧,我们的outwe当中是有很多的字段的,但是其实我只提取了那么几个。对吧,那我少提取,那这个肯定不能提取,有的没有,是个none,提取过来也没意义,对吧,而且我跟他也没关系,其实连common都可以不提取,但是TS要提取,因为我们要根据它来生成这个。时间戳。啊,生成时间戳。
09:00
提取过mark对吧,这个要提取,那其实最重要的就是他俩啊,就是他俩common。配置TS里边就是配置跟TS我们要对吧?Com都可以不要,但是呢,我们也把它拿过来,关键问题字段你清楚类型怎么写呢。问题是不是就出在这个类型上面啊?大家觉得这块用什么类型啊?这种啊。这是一个杰森格式对不对?你看配置,它也是一个杰森格式。那这个我们知道。啊,那像这种东西用什么类型啊。
10:02
是杰森的,那在我们代码里边往往都会用到什么?哎,夏总说对了,Ma。Map我们第一时间想到是map,但是还有一个问题,那link当中有没有map类型呢?我们得是不是做一个参考啊,对吧?好,那我们就看一下link当中这是函数,放在这吧,行,这个我们搞定啊,这个也放在这,我再开一个,因为这两个东西呢,我等会都还要用。我等会都要用了,所以说呢,我们先放在这一个,一个是函数是函数,这个是udf对吧,在这啊啊那到这来我们去搜一下啊,看一看就是我们想着杰森呢,用这个map最合适了,那我们再想一下他有没有map对不对,有没有map类型。搜一下好像有,诶你看搜索出来22个对吧,22个。啊,确实有这块是它定义的一个类型,对吧?哎,它的写法呢,这间括号。见过,那这个肯定是KV类型了嘛,对吧,哎,确实有用map就好了。
11:03
啊用map,所以在这边呢,我们可以写这个建表语句了,叫create table啊,然后呢叫page。这没有对吧,快,然后呢,在这里边写对。啊呃,那第一个字段,假如说我们写了开map对吧?对,Three,这是第一个字段,第二个字段呢,我们叫page。第二这个这个名字,那当然肯定要跟这个地方保持一致啊。跟他保持一致。对吧,啊,这个要叫配置啊好。它的配置也是。接下来还有第三个。S呢?当然是big in,好啊,忘了我们还要根据这个TS来生成我们的whatmark。
12:07
啊,上午我们也写了。对不对。上午我们也写了一个,来我们参考一下,上午这个呢,在这个地方就它啊。他说C,我给他拿过来吧。RT。对吧,然后呢,Whatmark,根据r ta秒钟嘛,延迟,那这个没有问题,关键在于我们上午是create time create time呢,它是这个叫什么。年月日十分秒。现在呢,我们是TS是一个big int,那我们肯定不能用它了,对吧,或者说我们想办法把TS变成一个连十分秒是不是也可以。对吧,两种两个思路,如果找到一个函数,直接可以将big in的类型,就long类型转化为type类型,OK,这个没问题。第二个思路我们如果找不到的话,我们将big int转化为连任十分秒是不是也可以?
13:09
找到一个函数能做这个事,是不是也可以?大家想一下对不对。这个没问题吧,对吧,两套思路。啊,因为我们可以用它嘛,啊,那我们就找一个函数,所以说我刚才说了这个东西还得用对吧,函数在这啊,啊,那这里边呢,我们就找啊,其实其实直接跟他说吧,就是它。这个函数干什么事的呢?看啊,它是叫from time。啊,From UN OK,那这个时候。看啊,它是转换一个数字啊,Number number对吧,数字到一个风的格式呢,也是它对吧,转换这个格式的成一个这个。
14:07
你没有十分秒啊,好,From you time,那么就用它就好了。这个呢,往这一放啊一放,然后括号。S,好,这里边有一个点要注意一下啊,什么事呢,来看啊,还有一个点这个value啊,是一个什么。啊,我们给大家看一下啊,在这边这里边有一个点要注意一下。他这个数据。的参数对吧,然后我们看格式化成里面十分秒,这个没问题,然后。这个数字is value。哎,这个地方就说了。这个数据呢,是从1970到现在的一个怎么样。啊,秒数。啊,它用的是秒啊,就是说这个数据你用的应该是一个秒,那我直接放TS能不能行啊,肯定不行,因为我们TS是毫秒,所以这个地方还有一个点要注意一下,我们要除以1000。
15:12
啊,除以1000啊,这个呢,就跟大家去说清楚就好了,对吧,要不然自己去看的话比较麻烦一点啊,它这是一个秒,所以呢,我们将这个这个函数先处理成年十分秒这种格式,然后to time step,把它变成一个time step类型。才可以,然后我的mark生成对吧,后面呢就是。加。DDL那些东西了,对吧?好把它拿回来,这比较麻烦对吧,还是一样的啊,它这个wordmark呢比较麻烦,而且还有一个就在于它这个类型很麻烦,对吧?往这一放好,然后CTRL加R,然后呢杠N,我先给它替换掉,换成空格啊,然后接下来呢,这边我们还得加东西,那就这样就结束了。对吧,得加一点东西啊,加什么呢。加呃,加的东西呢,这边我们叫MY卡夫卡YouTube店。
16:03
在卡夫卡的一个地点,主题和消费者组,那我到这边来拿一下啊。表环境这边呢没有问题,然后呢,把这个这两个拿过来啊。一个是配置没有了,So topic,还有一个是这个group白对吧,搞定了,我们看一下啊这个地方啊,我没有加那个位那些东西对吧,所以呢,我我还是一样的,在这边呢,加一个外面括号有了,然后with,然后右半面括号,然后在这后面。在这后面我们也得加上一个什么外面括号对吧?这样的写法啊,这这样的写法可以啊啊,我们当然也可以把这个东西写到那个DDL当中,这个也没问题对吧,这就建表语句就搞定对吧,挺麻烦的一件事情,对于whatmark要写对吧,我把这个。
我来说两句