00:00
好,那我们接下来看一下这个分组啊,分组函数,呃,这个是勾。啊,公派那这个里边呢,会通常跟聚合函数在一块啊,之前我们看到的这个sum啊,Com啊等等的,就按照组来求这个求和对吧?啊这个比较简单啊呃,然后重要的就是这个heavy。Heavy是不是在组函数里面用的,要跟着这个勾BY一起用的啊,跟着勾BY1起用,然后呢,它更重要的是对于分组后,然后进行过滤。因为他这个执行顺序导致的问题,对吧?呃,V里边我们能写那个。送什么值,然后大于什么一个结果吗?就是类似于我要求,呃,每个部门他的一个平均那个工资大于1000的部门。我能在外里面写了,你要想用will的话,你只能用子函询这种方式做了,就是因为它will在BY之前对吧,Heavyway就可以啊,因为heavy位的执行顺序在什么。
01:04
之后啊,主要是这个原因导致的,那在这个呃,Have当中也一样,也一样啊,它的语法也一样的,那我们随便写两个吧,呃,一个select com或者是这。行,我们求一下每个部门的不同部门的人数,装烟币,然后group。哪个字段这里面有一个第一批number啊,部门的一个编号第1p number。这个执行一个搜狗就比较慢,对吧。那咱们可以加一个happy,然后说部门人数超过三个人的。对吧,假如说取个别名叫CT啊,CT大于三对吧?啊就这意思啊,就是heavy呢,可以就是V不可以,这就是一个总函数,所以可以看一下啊,这个东西一样啊,跟之前的那个,呃,咱们买色的语法呢,它都一样的啊,它都一样的好接下来呢,是这个教。
02:05
焦虑这一块呢,要注意。只支持等值连接,不支持这个非等值连接。那什么叫等值连接?什么叫非等值连接呢?在买当中,我可以做这个事。我为假如说交应啊,后面我A表跟B表交应吗。A表跟B表呢,都有那个成绩这一列,我是不是可以写。A点长近大于B点乘计的是不是可以写,但是这个地方我们来看一下,好,我们来看一下,首先呢,我们来看一下等值连接,就是普通的交零二后面相等的对吧,那select。Select d应该是e.de PT。Number啊,因为两个里边都有DEP number EP表和那个DEP表都有DEP的number啊,我们就拿那个作为教字段的,这字段的啊,查下这个number,然后1.1name啊,员工姓名查这两个from。
03:15
给他取名叫一表,然后教一上,因为这个语法呢,跟那个马都一样,教一上哪张表第。啊教一下DPT,然后呢叫D表。然后啊,对吧,啊是教育条件,然后是一点。Dpd number等于D点嘛,D pd number OK,那这个东西能教育上啊,任务能执行,这个是普通的一个教育,而且呢,你不用写什么英乐教育,这个就是我们所说的什么。内连接啊,我们这就是内连接,也就是说还有其他的吗?因为一直到连接内连接左链接右连接跟全麦连接,或者叫买卖连接对吧?啊买卖链接买烧烤有买卖连接的预防。
04:01
要怎么做,要自己写是不是啊,自己用O拼起来吧,啊要拼起来,那等会我们看一下这个,那这个是我们说的一个等值连接,它出来结果没问题,那它不支持非等值连接,什么意思呢?假如说我要做这个事。不。不等于。我错了,然后接下来还有什么不等于的,大于小于,是不是都是非等于非等值连接啊,也就是说在have当中呢,它只支持等值连接。啊,这这个要注意一下啊,这个是跟的一个区别,因为相同的我们讲的比较快,因为大家都知道这个不同的,你需要去记一下的啊,这标红了,它不支持这种非等值连接,你想做一个AA表的一个什么东西大于表这种行。啊,这个不行,好,接下来是在连接当中,因为涉及到多张表了,所以呢,我们要取别名,取别名的时候有好处,第一个可解号查询,这个对吧,少写一些。字母就相当于对吧,啊,因为在正常生长环境当中啊,那个表明啊正常。
05:06
都好长好长的啊,中间呢有很多。本质上对,就是麦教育。对,是因为它用的是MR嘛,用的MR,但是它不支持那个非等值连接啊,非等值连接,然后接下来本质没问题啊,刚才同学我没看明字,那个肯定还是走咱妈妈刚才我们做的教育对吧,那教育教育等等这些东西大家都学过啊好,那接下来这个表的别名第一个解放单运第二个。这个东西。之前有没有提过在们生课当中。可以提高差异经营效率。说过是吧,啊,为什么。可以直接定位到那张表吧,啊,直接定位到表,首先第一个如果说两张表都有的,刚才我是不是有个dpd number,这两张表都有啊,你不写的不行,对吧,这个语法就过不了。
06:01
好,这个呢,我不写是不是也可以,因为因为只有我这个VIP表有了,但是效率会低一点,低在哪了,因为他不知道哪张表,假如说你有十几张表在一块交,他是不是在所有表过里面啊,他不知道哪张表啊,所有表会遍,但是你前面写的别名。是不是就直接定位的那张表去找那个列啊,所以稍微呢能提高一点效率,但其实这个效率啊,跟我们mmr整个的机器来说也不算什么的,但是MY搜当中还是有明显的,对吧?啊一盘搜索本身执行程序引擎执行的是非常快的啊,非常快的,但是这个呢,稍微能提高一点效率。稍微能提高一点效率啊,这是表的频率,然后接下来我们所说的一个内连接。就直接用教主连接买当中用的是什么来教啊,他也一样,然后同样的还有。右连接啊,这个东西呢,我们都拿过来执行一下,执行一下。跑一下,呃,我记得是这个P表,应该是没有这个。
07:04
没有没有那个那么。啊,就是右边应该没有那么,因为它里面这个部门应该都十二十三十,就那张表里面都有,我记得这个数据应该是。没有那的吧,啊没有那么,然后我们看一下这个右吧,右边应该是有的,我记得这个数据啊。应该是有一个。这个就是走MR任务比较麻烦的一个点,每次一跑啊跑好长时间,它不像MY1执行直接出结果很快对吧。这个有一个吧,啊,也就是说40号部门没有这个员工啊,可能新建的部门,那这是右边链接,还有这个当中呢,他有买卖。他有买卖,它不像那个myle啊,Oracle也有这个,就用的是。
08:00
负二交啊,全麦连接这个是过的啊,全麦连接这个语法是没问题的走。对吧,啊,全麦连接这个我们可以查一下,同样的这个40这条数据会出来吗。会了啊,一定会,如果说左边是不是应该,如果说我们左边有一个部门,假如说有一个员工是属于50号部门,但是部门表里边这个50号部门没有,是不是应该两个都会出来啊,两个都会出来这意思。啊,这个40也在啊,这个是买卖连接,它不用我们向麦色当中自己去干什么事。去拼接啊,不用做这个事啊,不用自己去拼接啊,去去去用or啊or a点那个什么dp number等于is now or b点什么那个DB加,对吧,你之前在MY当中是不是这样做的。就是一点DP点等于。地点,然后或者。对吧?啊,或者用那个或者去连接起来啊,也就是说所有的数据我们都保留啊,是这个意思啊好这个呢,是我们所说的那个卷啊连接这块,然后接下来这个是四种啊,内左外右外和满连接啊,哪外连接,那接下来还有一个多表交应。
09:15
多表连接它也是支持的啊,这个就跟那一样,我是A校应什么B,然后on一个什么东西对吧,然后再跟着校应C,然后啊什么东西这个也可以啊,这个也可以啊,那这个我们来跑一跑吧,就这边呢,有个location那个表,也是大家之前的那个LLC那张表啊,把这个数据用来讲成AC。然后呢,放到这个CD出来。V一个LC.kd。插入的点。保存退出这个数据呢,还是你们卖斯克那个数据啊,完全一样的好,然后呢,接语这边玩下这个先关掉。关掉,然后呢建表语句。
10:02
C啊,这面语句给它拿过来,这是LC这个表啊,这张表样表,然后呢,我们把这个数据同样的也干什么,导一下local local。In pass对吧,这个东西给拿过来啊呃,配。O Mo,然后里面有一个LC.c我们刚才导的吧,啊into table。是这个location。好,然后我们查一下select。新from这个location走。没有问题吧,啊,那接下来就是一个连接的问题啊,一个连接问题就这。Select number d LC LC内。然后呢,是教教。啊,交易交易啊,就这个东西啊,就是我们跑一把,我们跑一个这个地方呢,它有时候粘到这里边来,就会多东西,有时候粘的时候注意一下啊,就有时候改了之后,它又会多一个,就很奇怪。
11:03
给拿过来走一下啊,这个也是OK的,也是OK的。也就是支持多张表规划一起交易秒查询条件的时候,但是其实在生产环境当中,我们发现交易这个效率高啊,教你的效率不高啊,也就说MY克里边播,那既然大家都知道这个教育效率不高,那为什么MY当中我们还要抽取很多的一个维度表?把它拆的这么细啊。查询的时候方便一点。嗯。对吧,那我们都知道,因为交易不高。效率不高,那为什么我们还要把它拆成什么?第1P表,然后还有一个location位置表,部门位置表,原因是在于哪?你看如果你不做维度抽取的话,你存的数据,你想一下数据量,你本来。
12:06
一号员工属于什么一号部门,你在这个员工表里边存一个一就行了,对吧,但是如果说你没有这个部门表达,你要把这个部门的什么编号,什么地址,什么东西都存在一块吧,是不是数据冗余?对吧,啊,说句容易,而MYSO这个东西呢,它不一样,MY个东西我们希望它干什么?存少一点数据吧,因为它数据量一大,效率就太低了啊,太低了啊,而且呢,我们把维度拆开。是不是更灵活一点?假如说我拆了一个部门表,还有其他的拆了一个部门位置表,是不是可以给其他的一个表来用了,我其他的假如说也依赖于这张表呢?也可以吧,啊,就是更灵活,你拆的越细更灵活一点,但是相反的在汉当中这样。因为我们有的是什么?存储资源对吧,我们存储大数据,有的是存储资源,我们的计算资源呢,虽然也是分布式的,但是更稀缺的是什么计算资源,那你教育和降低效率,所以在在汉当中见表尽量的,我们见的叫宽表。
13:14
就类似于刚才我们把两个维度全部放到一张表里面,冗余就冗余,无所谓,那我减降低了什么?整个这个交易之间的一个过程当中一个时间。啊,就做这个事儿啊,做这个事这个要注意一下,就是在MY当中建表跟他建表是不一样的啊两种后面呢,我们有一个专门的项目啊会去。对这个书仓整个的一个搭建过程分层啊,去详细的去讲解啊,里面我们还要详细的跟大家说这个关于MY搜索建表组建,然后have建表组建,我不知道大家现在有没有听过那个什么三番式。范式见面之前干过开发的,有听过吗?做过后台的啊,到时候呢,我们会去讲啊会去讲。这块下稍微要注意一下,因为稍微跟大家去讲一下,大家也能理解,因为它两种不一样嘛,买so针对的我希望干嘛。
14:06
数据量小一点吧,啊数据量小一点,但是呢,我have当中,也就是我基于按这来存的,我有的是磁盘。但是我计算资源相对来说更珍惜一点,因为本身MR就慢了,然后你在很多的表在校你到一块,那你整个任务就特别慢,对吧?啊,所以呢,它这个建表的一个思路是有所差别的啊,有所差别的,这是这个点啊,就是多表连接也是支持的。接下来还有一个一看极。笛卡尔级啊,笛卡尔级,那这个笛卡尔级很简单啊,就是你没写连接条件。或者连接条件失效了。或者本身就是跟所有行互相连接的。啊,这种情况那更多的出现在哪。省略连接条件啊,这是第二节,那我们把这个跑一下来看一下这个东西我们要查什么。
15:01
员工编号和。部门名称,按道理来说,我们是不是有一个。教育条件,一个员工是不是对应一个部门啊,对吧,我们来看一下这个内容,看下这个内容来看一下首先看看能不能跑,如果能跑起来,他的数据应该是什么样的。这个数据量就大了吧,因为做迪卡二级是两个表示嘛,相乘是吧,啊做笛卡尔级相乘后面呢,我们可以有一个属性,把这个迪号级给它关了。就是因为这种操作呢,对于这个have来说太危险了,你看这个数据集变成了56行。16乘以四还记得吗?是16乘以四吧,是14乘以四啊,14乘以四应该是当时我们看到一个是14对吧,然后乘以四的没问题吧,啊是这个卡二级后面呢,我们有一个属性可以把迪卡二级给关了,因为这种操作比较危险啊,可以关一个迪二级,一旦你这个搜索里边写的迪卡级解前面不是有什么编译器解析器这些东西吗?就在那块就过不了语法,直接给你报错。
16:13
说你有第二级过不了啊,你正常公司当中呢,都是关的,如果你特定要用的时候,我们可以在写这个搜之前,在之前去设置一下吧,全局的是关的,我们会单独的去设置某一个属性的值嘛,对吧?啊是这意思,这个是第二级一般的去尽量的少用啊还有一个。连接VS不支持货。就是在这个二后面,不知道不是说在V后面啊,后面刚才我们测了吧。Salary大于1000的,或者部门是30号是不是可以啊,但是在交易这个语法里边啊,你不能写啊,能不能写,那我们把这个来粘过来运行一下C。
17:01
直接报错了,他说什么?他说哦,Not不的不被支持的,在什么教你看什么,关于这个一个条件当中啊,就不不被支持的,你就不要写or啊,And可以,And可以,你写两个交易条件可以,但是这个地方呢,就不支持or啊,这个要注意一下,就是这个是跟我们那个呃麦有点不同的地方对吧?啊有点不同的地方,这个要注意一下啊,如果说真的我就叫这个东西怎么办?对吧,你你说你不能用,但是我有这种需求啊。那我们要想一下这个东西应该怎么做呢?他现在不是把这条路堵死了。我总要想个办法把这个问题解决吧。可以怎么做这个东西,那你看一下这个内容啊,呃,我们要查的是这个什么name啊,前面查的东西你不管,反正过滤结果是DB number等于DB number还有等于,哎,这个是这这个有问题吧。
18:06
D。假如说这样,我现在就要两个条件。是的关系。怎么写?这样看啊,假如说两个条件是这样的,你有两个交易字段嘛,你有两个交易字段是这样的啊来A表呢有一个A有个B字段,B表呢有一个A有个B,我本来想的是两个同时用or的关系来连接吧。啊,用O的关系来连接,但现在呢,不行,那可以怎么做,我直接这样行不行,我直接把四个字段。先查询出来,放在这儿。然后我用非要行不行。能听懂。先开始我们这样,假如说或者这样吧,我们先过滤出来相等的。A的,然后B呢,放在V里边过滤行不行。
19:01
能不能听懂这个意思,就我们把它分开吧,用磁杀菌的一个方式来做这个事。是用查询的方式来做这个事,能听懂。为什么感觉没听懂呢,这样。呃,一个A表对吧,有AB一个B表有个AB先我两个不能同时用,那我先这样行,呃,交引条件呢,写A等于A,就是a.a等于b.a。对吧,然后把B呢,两个B都保留了,就是一个a.B跟b.B我都放在磁砖里面,这可以了,第二次我给用一个磁包裹一下。然后为什么。这两个字段。相同。对吧,啊,相同的时候就这意思,两个呢同时连接上啊这样去做。这是我们所说的一个教育,绝大部分语法都是一样的吧,只不过说我们要掌握一下什么。
20:01
中间不同的啊,不同的这个地方是一个关键点啊,非等值连接,因为MYSO当中,其实这种非等值连接还是用的比较多的。还是用的比较多的,就类似于你们之前应该你们的那个,呃,胡老师就是晚上的辅导老师给你们50个思课题是吗?50个搜个题里边求那个。
我来说两句