00:02
好,那接下来呢,我们看一下关于top n,它里边这个S在写的时候有哪些个优化,对吧?嗯,第一个使用最优算法,使用最优算法啊。嗯,那这里面呢,有这几种啊啊。Update。Fast。They all retra。还有A。Fast对吧,啊OK,呃,那这边要注意一下,就是说在这个地方。其实社区社区版当中还没有啊,阿里云实时计算的,他们自己开发的这个当中还有更更快的一个算法,对吧,那有的人说,那既然这一块我看的好像是应该是。这个。对吧,啊update fastend fast啊追加的,但肯定不用这个rere。
01:01
对吧,啊,他的一个策略都不一样,那是不是我们配置一个参数就够了,并不是的啊,不是的,他是看我们自己写的一个circle。啊,你看update fast,这是最快的,对吧?它是看我们的circle来决定的。啊,看我们的circle来决定的,那第一个,嗯,要有这个主见,主见信息,比方说group group就是我们的主件信息。对吧,他不是说你设置一个参数和前面一样,我直接指定为它就好了,并不是的。对吧,而是在某些条件下会满足这个内容,就比方说Spark Spark里边呃沙对吧,呃有这个什么。普通的so沙uffle,还有bypass so沙Le啊,那我们肯定想用这个bypass,因为它效率更高一点,但是你想用这个,这能用吗?不行,它得有条件对吧?啊,他得有条件,他自己去根据你自己的任务来决定他到底要哪用哪一个,那这里边。
02:05
最优算法也一样啊,如果说我们想要用这个最优的啊,那首先第一个要有主见,也就是说比方说group字段对吧,作为主见啊,那这个一般都有这个大还好啊,第二个就是排序。排序字段对吧,因为它是一个rank嘛,Rank排序啊,排序字段的更新是单调的,单调方向与方向与排序方向相反。那这个是什么意思呢?首先第一个什么叫排序,字段的更新是单调的。啊,比方说我们的count。对吧,Count的新它就是一个单调的单调递增,因为count的新你计算随着计算随着数据的增多,它这个count新这个值不可能减少,对吧,我先是一再是2345,哎这个叫单调的,那如果说咱们是some呢。
03:00
如果咱们是some呢?如果some一个正数对吧,那单调递增,如果说我们some的是一个负数,单调递减对吧?好,这个就是表示我们排序字段的更新是单调的啊,指的是这个意思,二个还得满足什么呢?单调方向与排序方向相反,就是说你抗对吧,不是单调递增吗?你叫倒叙。就是说从大到小排对吧,假如说咱们上一个正数也是从大到小吧。上一个正数就是这个单调是单调递增的,从小到大,那排序就要从大到小,假如说我们sum是一个负数,对吧,它是从大到小,那排序呢,从小到大。啊,就这个意思,它可以应用到我们的一个U的一个算法,就是这俩条件对吧,然后还有另外的end must fast。追加不更新对吧,然后re track撤回嘛,把之前那个数据撤回啊,就类似于这样子的,好,那这是我们说的叫使用最优算法,就是根据你搜狗当中,你自己注意一下啊,那第二个点在于什么呢?无排名优化解决数据膨胀问题,什么意思来看啊呃,比方说我们要做一个排名number或者rank这样的事情,对吧?好,那正常的排名呢,我们查出来,然后四掉星,也就是说最后呢,我们输出结果可能是1234第二名对吧,一直五啊,一直到十吧,第几名,哎,这个呢是呃,80个啊,79个对吧?啊,76个啊对吧,就是数字从大到小排的。
04:44
啊,从大到小排的好,那无排名优化讲的是什么事呢?讲的是当我们输出结果的时候,这个字段rank这个字段输出。你不要前十名吗?你过滤出来,但是个字段怎样。就算不要,就是写不要写新对吧,其他东西都写上RA不要啊,它可以解决一定的问题啊,就是说效率能高一点啊,为什么效率能高一点呢?是这样子的,我们来看啊,比方说我们有这个质量数据。
05:14
我们有十十个一到十对吧。好呃,然后接下来呢,由于前面我们可能用了那个local global,或者说用了那个mini batch一个VP,那有没有可能这个求的是count的值啊,这个是二一直到第十名对吧,第十名接下来来的都是第十名的数据,十名一下子变成什么一名。对吧,他变成了第一名,然后第一名就是第二名,第三名是不是所有人退一步,第九名变成什么第十,如果说我们加了这个rank,加了这个rank不光我要把这个内容放到这个位置,而且所有的里边还有一个值要改吧。对吧,这个rank值要改啊,Rank值要改好,那如果不加rank呢。
06:03
不加认可,其他的值其实不变,我只需要输出的时候先输出它,然后其他的还是按之前的一模一样,对吧?啊,就减少这个点啊,防止这些数据产生了变化对吧?那如果说我只改了一条数据啊,那这条数据发生变化,其他的其实不变对吧?假如说我们加了rank,加了NK。对吧,加了这个值,那所有的数据都会发生变化,发生一个改变,那这个呢,就要将这些更新全部都写到结果表里了,效率相对来说就低了,对吧?啊就这意思,所使用的时候呢,我们查询的时候。被外层查询的时候,我们不要这个number。写出去对吧,写到最外层那个动态表里边啊,不要写新对吧,尽量不要写新,你要三个字段就写三个字段,Number字段不要不写。对吧,这个点啊好,这是一个,然后接下来呢,增加这个T的一个大小,那这个毋庸置疑,肯定肯定是优化。
07:02
肯定是优化了对吧?啊,这是我们所说的一个点啊,增加它的一个大小好。这是怎么去算这个开始的大小的啊,这边呢,开着size注这个变度对吧?度注意他们你出多少条,然后呢,分key number分区的一个键有多少个分,你套盘嘛,能做的是一个分组套盘对吧?也就是说总共有多少条数据啊,总共有多少条数据啊,命中率,那我们维持命中率呢?呃,你可以去算一下啊,可以算一下如果一那就内存全部都够了,那其实这几个值相乘啊。这几个值一相乘,其实就是什么。内存大小吧,那前面的内存大小除以你应该要的内存大小命中率嘛,对吧,是这个意思啊好,那也就是说他们三个人相乘。你开多大内存就好了对吧?好,这是我们所看到,那就调整它的一个参数啊,调整一个参数就好了啊,那接下来第四个叫分区part派当中要有这个时间内的字段啊,这个是防止在求top的结果当中,由于这个状态由于GTL过期了导致的问题,但是如果求排名的时候,嗯,最好这个状态不要设置它的一个过期啊,当然如果说你带上了这个时间字段,假如说你按天排名对吧,我本身也带上天,然后呢,你按天进行过期,那就没有问题了,对吧?就不会出现这种问题错乱对吧?这个要注意一下啊,排列败当中最好带上一个,就是说你按照分钟排名,你带上分钟啊,你按照这个小时排名带上小时,你按照什么排名带上什么就好了,对吧?这个点还好啊,那最后一个是优化后的一个S科案例啊,其实说说白了是把前面东西我们都应用到这个S里边了。
08:51
啊,都应用到这个色里边了而已啊好,那这个东西呢,我们来看一下啊呃,首先。这边。
09:00
帕人半凹半排序,我们来看一下,要有时间字段。对吧,第一个时间字段好,那接下来看啊,All the by pay all the amount对吧。这个东西。我们是一个什么来看,它是紫砂器里面来的那一边,我们做了一个这个内容,Some total amount felt做了一个过滤,对吧,然后呢,Will total费大于等于零,我只要大于等于零的,但实际上它也没有这个小于零的,就直接显示的告诉我们系统,我这个pay all the amount,它一定是单调递增的,同时。反向DA对吧,满足我们最优算法的一个条件啊,满足我们最优算法的一个条件对吧?好,那它会启用最优算法啊,另外呢,就是这个不输出用number字段啊,同时分区带了这个时间啊,带了时间state date对吧,带了时间,也就是说把前面这个用一下,就是说这个地方呢,体现了一个写搜狗对吧,这是淘宝N的一个优化啊,大家了解一下就行了。
我来说两句