00:00
好,那我们思考应该用什么呢?啊,又不说啊,不说的话没办法。嗯。驱虫按照时间。嗯,按照什么时间。按照按照什么时间啊,你得告诉我按什么时间啊。啊。于总说了。啊按天分区,那那按什么去重呢。
01:00
我按天分区,我按什么去重呢。一般我们想到的都是按天分区对吧?啊,你没必要说分区。搞得。特别小。啊,你说按窗口分区,你的分区太多了,因为在钥里边一个分区是一个目录稳对吧?啊,你不能太多啊,那按天分区呢比较合理,而且未来呢,我们更多的需求,按天做一些需求,对吧,按天分居合理啊,那按什么驱虫啊。雷总说按照时间,时间没了,按什么时间啊?按啥时间去重呢?辛总,你说一下你是怎么理解的?你怎么,你有什么看法?秦总在吗?
02:06
而且还逐渐。什么玩意啊,主键呢,主键是索引,哎,Primary key是索引,我刚才说了索引你现在不用考虑啊。而且我问你按什么,你给我按主键,那不答了,没答吗?对吧。啊,就跟我说我我说我问你我按什么去虫,你说按奥特曼字段。我现在问的就是outb字段,我要用什么?能明白这个问题吗?就是我们驱虫的字段是凹啊,并不是主见啊。主见是索引,Primary索引啊。All by才是我们的驱虫字段,我现在问的就是out by,我后面写哪些字段,或者写哪个字段?你这给我搞一个主见,我直接干懵了啊。
03:04
你觉得应该按什么去重啊?那你想会重复什么样的数据吗?我刚才举例子的时候,他会怎么样去重复数据吗?对吧,我们要选一个字段能把诶你挂掉以后重新消费又写进来数据两个呢,一模一样的数据,对吧,我怎么通过哪个条件能找到这个一模一样的数据呢?嗯。明总说word and时间,那还是那个问题吗?时间是啥呀?你这个时间太宽泛了,对吧?雷总说TS按TS吗?
04:08
按事件时间。我聚合类。我都聚合了。我哪来的试验时间啊?对吧,我是十秒,比如说这边呢,有个苹果。它呢零到十对吧,它有五条数据,有一个呢是一有一个呢,三有个五啊有一个。八和九。那十年时间我用哪一个呀。只有五个,我用哪一个呀。我聚合嘞,我聚合写出去嘞。对吧。应该用什么?来,樊总在吗?你说一下你的看法。你觉得应该怎么做?啊,那按天分区给你定好了,好吧,这个我们定下来了,因为一般来说呢,在生产环境当中,更多的我们都会选用这个按天分区啊,樊总那边拿手机应该不太方便啊,算了,樊总呢,你就就不用了,你那边拿手机啊,可能你要回答问题很不方便啊。
05:17
嗯,咱们换一个人啊,换一个人。嗯。好看。找谁啊?啊。嗯,咱们换一个人来说一说啊。刁总,你在吗?标准扣个一。啊。
06:04
标准人呢?不在你看不在直播间对吧。那不可能说看到你名字扣个一早就看到了呀。对吧。应该是不在直播间啊,你看你这就就听课,这听什么呀。啊。好,那我也不问了啊,这个再抽下去,我估计会有更多人给我惊喜,好吧,啊,会有更多的人给我惊喜啊,就是每天定时的四个签到啊,可能呢,就定个闹钟对吧,然后呢,是闹钟响了,赶紧来签个到。只要其他时间就不在对吧,你看肯定不在啊,算了我也不问了啊。要不然全是惊喜啊,全是惊喜好吧。这个地方呢,首先我们是按天分区没有问题对吧,那我们想我们重复数据是什么。
07:00
我们重复的数据呢,是不是我当时说了,你把这个窗口数据,因为它一个窗口写一次嘛,这个窗口如果没有计算完,它是不会写出去的。对吧,好,那一个窗口写出去一次,那这个窗口里边呢,可能有很多个不同的单词。对吧,比如说现在呢,我第一个窗口零到十这个窗口对吧,有一个苹果,哎,我写出去了一次苹果。八对吧,好,那还有一个这个手机啊,比如说我手机,然后呢十个。五对吧,第一个窗口好,那我呢,发现了一个什么问题啊,发现到哎。在这个写出去以后,任务挂掉了,我又重新消费,重新消费呢,我又把这个数据再消费了一次,他是不是又算出来一个零到十苹果八,零到十手机五这样的数据啊。对吧,所以在一天范围内,我们按什么去弄就好了,按这个吧。
08:04
是不是按照窗口时间。加。我们的。关键词啊。对吧,我们是不是应该按照窗口时间加关键词。作为。我们的去虫字段能理解吗?我只要有窗口时间加上我们这个word关键词是不是就好了。重复数据不就这样子的吗?你一个窗口重复啊,你不可能单条数据重复啊。你你单条数据怎么可能重复啊,雷总,你是不是想的单条数据重复啊?我们开窗计算嘞。我们开窗计算了,你一个窗口做完了才会写出去一次,你想是不是?对吧。有没有毛病?没问题了啊,就是当我们一个窗口计算完了,它才会写出去一次,所以你已重复,那就整个窗口重复了,那我只要根据窗口时间加我的word是不是就好了。
09:05
对吧,是这样子的。啊,所以呢,咱们的建表语句,哎,带着大家看一下,这边呢,有我们的建表语句对吧?好,那首先窗口时间,注意这是窗口时间为了去重的对吧?Source这个东西啊,我告诉你是为了未来扩展需求用的啊,你不用考虑它啊,这个呢,到时候我给他写死就是来源对吧?它呢来自于search。啊,直接写死就好了,他是来自搜索,因为除了搜索,我们可能还有其他的关键词的来源。咱们可能还有其他的关键词的来源,对吧,好,Keyword,那就是我们的单词对吧,Keyword。这是我们的word count新对吧,这个姿态好,呃,给一个TS,这个TS呢作为版本。啊,这个TS作为一个版本啊,最终呢,我们搞一个版本的字段OK吧,啊,因为你未来呢,假如重复了你这个版本不一样,我用最大的一个版本对吧,但这个呢,我用系统时间就好了。
10:05
对吧,这个用系统时间就好了,好来看啊replace model ts这个是不是版本。Replace里边写的版本对吧?取版本大的,如果两条数据一样取版本大的,然后呢,By a two yyyy mm DD这个呢,年月日按天分区,对吧?接下来我们的什么呢?Order by。奥特曼。窗口时间keyword这个东西我说了,你先不用管。啊,那其实我们这个地方呢,不写这个S也可以啊,不写S也可以,因为我们。需求没有没有写完啊,那除了这个搜索有关键词,其实还有的还有的地方也有关键词,那我们就要做一个区分,这个地方写死是色对吧,所以呢,我们得把这个加上啊,不要跟其他的。来源关键词来源搞混了对吧,所以把它加上啊,这是额外的一个字段,OK吧,所以核心点是在于窗口时间加我们的单词做去重。
11:07
OK吧,好在这儿,好,那么我们来看啊,我们最后查询呢,这个我说写死TS呢,用当前的系统时间啊,这两个字段,我们查的这两个字段是不是有已经有了,对吧,这两个字段已经有了,那我们看谁ST。ST e dt。对吧,那窗口的开始时间跟结束时间,而且我们最好用年月日十分秒这样方式表示吧,更好看一点,因为未来你这玩意儿要展示啊。你还要过滤展示,你搞一个时间戳搁这儿不太合适吧,对吧,我们呢,用十分秒啊,就是年月日十分秒的方式来做这个展示,OK吧,好,那么接下来呢,我们就找这个函数啊,找这个函数,因为现在我们只有这两个字段,那怎么搞啊,肯定不行。对吧,肯定不行,那我们要加字段啊,加什么呢?第一个ST。E dt。
12:00
Sauce。T。对吧,我们要加到这些个字段,呃,S呢,直接写死。叫设置就行了,但是你写第一个也可以啊,TS呢,用系统时间啊,我就找一个函数啊,用这个系统时间在这边系统函数啊,Unit time就是它。对吧,它呢,可以get current unit time time step,获取当前的系统空间对吧,但是呢,它是in second是秒对吧?所以呢,如果说你当然用秒也可以啊,因为它就是一个版本的作用对吧?啊,就是一个版本的作用,你用秒也行啊,你要是不想用秒,你乘以个1000对吧?啊,那这两个字段呢,你直接给定。那关键在于这个你不能随便写了。窗口时间对吧,那窗口时间怎么来呢?在这儿来看啊,在我们聚合这。这个地方。这是Tom。
13:00
他们爱。看见没?这是滚动窗口的,看时间,这是滚动窗口的结束时间,但是。返回的这个时间戳。返回的是一个时间戳,但是我们需要什么,我们需要一个年月十分秒吧,所以再来找函数啊,又得找函数,这个函数用的谁呢?用的是这个啊。我直接跟你说了,叫他。Data啊,它呢是转换一个时间戳到一个value of string对吧,到一个string类型的value值啊,那你要格式什么自己传,这个可没有中二啊。这个没有默认值,年月日十分秒,对吧,你得自己传,所以呢,这个东西我们应该怎么写,把它拿过来。往那一放对吧。往那一放。好,这个three。是歪歪歪歪。杠MM-DD。H。
14:00
年月十分秒对吧,同理下面也一样。那接下来这个时间戳呢,是不是开窗的时间啊,来把这个拿过来啊,一个叫他。Start。还有一个他们and对吧,这个呢是一个end。N,然后这里边写法跟它一样。跟你窗口一模一样。跟你的窗口一模一样就好了,对吧?好呃,这个呢就搞定了,来把这个拿过来啊。分组开装聚合到这一步就结束啊,Table因为点。Circle query。家得到一个table。叫CTRLR杠替换掉。对吧,啊呃,那这个呢,三度开张聚合就已经搞定了,最后呢,将动态表转化为硫。对吧,转化为零,我们就不需要再创建这个什么临时的视图了啊,那就可以直接转了,对吧?好,这是分组开窗聚合啊。
15:08
呃,接下来呢,我们要将动态表转化为流,这一步呢,我们比较简单,好,那table因为点好,那我问大家应该用哪个流了。撤回流追加流用什么?我们应该用什么?是用撤回流还是用追加流?大家觉得这个地方撤回流还是追加流?啊,用测回流。为什么?因为我们里边有聚合是吗?
16:04
啊,因为咱们里边有聚合是不是。呃,其实你要知道用能用撤能用这个追加流的撤回流,他肯定也没有问题。就是你本来这个东西呢,可以用。追加流对吧,你用特回流他也不会报错对吧,你用特回流会更保险一点,但是呢,我们其实问题就是说这个东西能不能用追加流呢。能不能用追加流这个地方,其实我告诉你可以啊,可以对吧,虽然虽然这个地方我们有聚合操作啊,那我们在这个里边有聚合操作,感觉好像应该撤回对吧,先是一个一,再是个二。啊,对吧,一撤回再写个二,再把二撤回写个三,对吧,但其实不是的,因为我们通常开窗。还有开窗对吧,这个窗口未来只写一次。啊,这个窗口未来只写一次对吧,所以呢,它没有撤回啊,就追加流就行了,然后呢,表呢是到table,第二个呢,这个字段我们就不写肉了,因为肉的话,我们最后还要把它写到greenhouse,如果你写肉不好加工,我们用个招聘对吧?好,那我们这个时候呢,就搞个招聘,招聘呢,其实就这几个字段,S CT south wordd CT,还有TS,对吧,但是呢,这两个字段名可能不太一样,待会我们改一下呗,对吧,这个还好,呃,在这边呢,有一个Java病啊,Keyword病对吧,这个我们拿过来啊。
17:29
病包里边儿,终于,终于迎来了第二个。那接下来后面还有很多哈,从这个需求开始,那未来呢,我们的招聘就多起来了啊好,来看一下stt south keywordord对吧?所以呢,呃,未来这个东西转化为Java的一个对象,是通过字段名跟列名去匹配的,所以这个地方呢,得改取一个别名叫keyword。好,这个呢,取一个别名叫keyword,不叫CT。
18:04
不要叫CT对吧,它未来呢,是根据这个名字去映射到的,跟顺序没关系啊,比如说我给他看一下啊,我把这个东西看成X。放在这儿可以吧,你看我要证明一个什么点呢?就是说我现在查询的语句是south stddt这个顺序对吧,而在招聘里边是STDTS,名字是有对应的,但是呢,顺序对应不上,这个是可以关联上的,它是通过名字去关联的,所以这个地方呢,我们一定要把名字跟招聘里边写成一样的才可以,要不然的话有的字段就映射不上,好吧,好,那这边呢,我们就是key word。并点。Class ctrl加。得到这个流对吧,我们呢,先做一个什么呢?打印啊,因为今天我们说了肯定是写不了到house的啊,然后呢,启动这个任务啊。
19:08
把这个拿过来好,这个呢,就。搞定了对吧,搞定了,接下来呢,我们就可以做这个测试啊,来把这个好,那这个数据呢,它是从这个。配置log读取的数据对吧,所以呢,这个东西就好写了,咱们呢。想一想,谁往这里边去写数据的,那是不是贝斯APP啊?对吧,基础的这个log吧,刚分流的这个程序是不是对吧,把它。拿过来。拿回来了以后呢,补充一点东西对吧,好这边呢是。Flick。APP到哪呢?未来肯定是到c house,那现在呢,我们只是做一个打印对吧,这click house呢,是咱们的DWS层啊好,那这个fli ABB就是咱们当前他自己对吧,最后到克雷house,那就是克雷浩,这个没什么说的对吧,雷浩呢,他得依赖于这个谁啊。
20:10
ZK啊,因为我们是不是有那种。那个叫什么?呃,副本表对吧,它要依赖于这个ZK,还有这个切片表对吧,都依赖于ZK,所以呢,你注意一下这个ZK,你到时候得洗一下,但是没关系,你这里边肯定用的卡,用的卡夫卡,你肯定要洗这个ZK。对吧,所以咱们要开这个东西呢,看啊呃,Lg.SH肯定最后开对吧,现在呢,咱们要开F1。Z,给卡夫卡是开的对吧,直接给卡夫卡没问题,克林号呢,现在不用管。客流号现在不用管,因为我们是打印对吧,所以呢,我们要开就开一个F1就好了,对吧,然后把base log跟他自己打开,打开之后呢,造数据OK吧,好,那这边呢,我们就开一个F1啊。哎,这边还卡死了,你看啊。
21:00
F一点啊。好采集对吧。嗯,卖这个东西其实无所谓的,对吧,就开着就开着吧,啊application这个是我们的。啊。看org from.no.application啊,这个是类名,Li启动agent启动的一个类名啊好。那这两个application就是我们采集的数据对吧,那接下来呢,把这个打开啊,首先base log它呢是运行过的,没有问题对吧,打开啊。打开好以后,接下来呢看它它呢还没测过对吧?啊,搞不好呢,这个思考还写的有问题啊,但没关系,等会调呗。还真有问题啊,别言出法随呀。括号。括号COLUMN93啊,我看一下啊这个。
22:03
Create table。Create table paylo page。呃。这个括号。这。CS。没问题啊,我来看一下啊。他说我们括号后面47行空格。47行空格,你说这是吗?这空格。这可以不要啊,这是括号啊。这个括号对吧。他说左半边括号,我们找左半边括号啊。呃,这个括号有结尾吧,这个啊,然后这个是跟这个结尾,然后这个是to time step跟它结尾,难道这非得加一个as。我反正我以前写这都会加一个as啊,都会加一个as,但这次没加我看啊,我再检查一下逗号。
23:07
我以前写的时候都会加as。RT,没问题吧?想再运行一下,他报的是那个括号啊,报的那个括号,但没关系,我们看一下啊。还真的啊,必须得加这个as啊,就是建表语句里边,如果你这样写啊,必须得得写as啊,必须得写as,这个要注意一下啊,就是不能当做这个查询语句,查询语句呢,你可以空格隔开就行了,对吧,当然查询语句里边你加一个as是不是也没问题啊。对吧,取别名嘛,对吧,好间表语句里边,它不相当于取别名啊,它是给一个函数取这个值对吧,其实就少了这个as啊同类S,因为刚才看这个括号好像没啥问题对吧,他应该就说这个括号后面有问题,括号后面有问题,他没有取到具体的范围,那这个就没好了吧,好那贝log打开了,这个打开了,然后我造数据啊,看一个数据啊。
24:04
嗯,LG点。走,你。啊,我们开了一个十秒窗口对吧?啊,但是呢,如果没有结果出来,我们再造一次,隔十秒之后再造一次啊如果有结果出来就好了,诶这有了对吧?好,那这边呢是base log,它呢就很快打印对吧?这边呢也已经有数据了啊是4月29号,因为咱们的数据呢是4月29号对吧?然后呢,诶两个窗口对吧,这是30~40,然后你看啊,它没有对应错吧,Source对应search,然后呢,ST是不是根据名字来对应的。看见没keyword对吧?有这个小米图书电视诶PS5PS five对吧,盒子啊,小米盒子啊,然后呢,看有123对吧,都有啊那这是我们的数据,包括这个什么苹果手机也能看得到对吧?手啊也是一个单独的词,因为我们用的是max对吧。好,那这个呢,咱们就。搞定了对吧,啊就搞定了,而且呢,我们是不是看到这个是按照名字去对应的,而不是看位置吧,如果看位置的话,那这个应该对应的是它。
25:11
对吧,往后移一格啊,它跟位置没关系啊,它是通过名字一定要注意一下啊行这边呢就测试。完成啊就搞定了啊,整个的需求就搞定了啊,就差最后一步往那个课就写了啊,今天肯定写不了了啊。
我来说两句