00:00
好,接下来呢,我们继续看这个第15章总结的内容,那第15.1呢,就是整个用户行为数章的业务方面的内容的一个总结啊,希望大家呢,要把这些东西掌握到啊,然后有精力的或者有时间的同学,你再把前边这些能敲第二遍,再敲第二遍啊,如果你现在没有时间,那没关系,在最后一天的时候,我可以一天的时间啊,把前面东西再给我敲一下啊,快速的捋一遍这个思路那就OK了,比如说这个代码,如果你不敲到第二遍,这个感觉是肯定是差点意思的啊,我希望大家呢,这个要有这种感觉啊,OK,那那看一下这个15.2,那这里面呢,就是总结维度,之前我们学的have当中有哪些技术方面的点。啊,你说日后你在写简历的时候,一方面是业务方面,你会哪些,另一方面就是技术啊,分成两块啊,那刚才我们上面这块呢,就是属于业务范畴的,你分析过哪些指标,做哪些事,平时干什么活了,那下面这块呢,就是你在这个学习过程当中用到了什么框架,你对这个框架的理解是什么样的这么两个维度,那好,那我们来看一下第一个。
01:14
汉语当中有这么多面试题?那大家想想,闭上眼睛或者看上我这个空白桌面,能想起来还有有啥事儿?啊,这跟我们复习之前的卡法啊,主宾格是一样的。到未来的时候,你说你毕业之前,你一定要在两个小时之内,把你所有学过的框架以及项目当中的业点全部在你的脑海中展现出来,那就够了。你那你就是这个无敌状态,如果达不到这种状态,那就差点意思。啊,如果你真的是,你就通过我的模拟面试,你说两个小时你能把我想要的东西都给我说出来,我帮你找个,如果你找不到,我可以送上你啊2K是吧,不到没有任何问题,行,那么下面我们就复习一下这个have啊,从还有这个学习这个从上到下这个顺序,那have第一道题就是have的组成。
02:16
转架构,那上边这块是客户端,左侧是原数据默认存储站德尔数据库,后来把它存储在MYL数据库,为什么?支持多个各端同时访问,好那这块是四个器,哪个器,编译器,优化器,执行器,还有一个解析器,是这样吗?好,那下面在运算的底层是。Number下面存储是好,这是第一道题,还有个组成,那这里面其实还会有一个进步的一个,呃,身份就是这个逻辑执行计划呀,物理执行计划呀,啊这些东西啊,个别的会有问,但是问的不多啊,有经验同学可以看一下,那么下面第二道问题。
03:10
第二大问题是什么呢?Have与买SQL数据库的一个。低价。啊,他们之间什么区别和联系,还有。买,还有有比较havell和h base的啊,还有havell跟mango DB啊,其他一些数据库的都有啊,但是呢类似那还和MY色Le它们类似的地方就是hi和circle啊,你是查询语句上略微相同,那剩下的基本什么都不同,比如说存储。它存储是大量的数据,它相对的数据量像啊像还长。谁的速度快这快对吧,那相对来说慢一些,因为底层是M2啊,那这么几个角度就差不多了啊,一说速度上啊,一个什么量级上啊,相同的是。
04:07
四口啊,或者黑口啊,那第三道问题也说明说这样问的就是内部表和外部表的区别。那什么区别?在删除数据的时候,内部表是把原始数据也删除掉,外部表只是删除原数据,并没有删除原始数据,OK啊,但是这个啊,真的是最高频的,应该说所只要问汉当中是最高频的,那再问你在整个咱们这个书仓当中,或者说你做过的数仓。用没用过,卖不了的那表儿。用过你们用的都是,那没人问用没用过,内部人。什么时候用?嗯,没用过是吧,啊,我告诉你啊,我要提醒你啊,内部表是属于在创建临时表的时候。
05:04
你说你分一个指标需要一些临时表,那这个表就是内容表,只有你一个人使用。你说在真正的企业开发中就是这样的,只有你自己建的临时表,它是内部表啊,记住这一点啊,记住一点,面部完直接问啊,这因为这一道题就有可能决这量了啊,但是绝大多数都是外部表啊,因为都是多人去共用啊,这是一个核点,那再往下。会问到啊四个啊。哪色拜呢?阿拜萨拜啊,D区拜class拜对吧?那么阿拜属于分区内排序诶二派全区排序是吧?二派乘以排序派分区内排序第七六派分区class s和字段相同的时候啊,它俩的一个啊相和啊好,那这是设派,那它还会问用没用过系统函数,用过哪些。
06:10
来了,首先class collect对吧,还有date smart,还有date at,还有萨,还有last day,还有get、杰森,还有mini和must是吧?OK啊,还有last day是吧?啊,这么多nice day,还有个next day啊,是这么多。所以说这那什么跟这些咔咔咔连冲炮似的啊,在五秒之内打出有几个。啊,一定要快,要快OK,但是同质要清楚啊,好,这是系统函数,那他还会问用没用过窗口函数。路啊,开窗over over over里面有开对吧啊有part和order啊,而且里面还有向上几行,向下几行是吧?啊还有第几行啊类似的这些参数啊,那还有这什么排序对吧啊,有rock还有啊Dis rock还有是吧啊这么几个OK,好,那这是这些,那他还会问。
07:30
用没用过udf udf用过,用它干什么了?Udf解析空值的,UDTF解析事件值的啊,而且系统有能解决这身解析的,为什么来用呢?方便定位错误OK,那还有udf步骤,大家说过继继承udf重写里面的evaluate方法,Uddf继承个udpf重写三个方法,初始化close和process。初始化里面做了哪件事?定义输出参数的名称和类型啊,Process里面。
08:18
是获取数据,然后它是以本身就是一个接数组啊,然后循环便利这个接身数组啊,取出一个一个数组当中的值,一个数组当中的值,取出两个字段,分别是事件名称和事件内容,通过方法的写出去,OK,这是这一块有点同学讲过,那还有一道题就是have的优化。啊,优画那么硬画有17个是吧?啊,吓到了啊,没必要说么多啊,那至少你要快速的说出七到八个啊,七到八个。比如说第一个map draw啊,Map draw默认是打开的吧,啊,但是你这个记得啊,要打开第一个,然后分区分头对吧?啊,自动优化手段,然后还有啊,像合理设置mapb个数,合理设置reduce个数,还有优化小文件combine还LL input form大啊减少这个web代词的个数啊还有这里面其实还有一个就是mor mor咱们应该是没讲吧啊,我给大家讲一下啊。
09:32
沉默是产生了一个事。就过了一半。这个呢是在输出,我们讲文件什么情况呢?你再跑一个类似于map工类任务,什么叫map工类任务阶对没有本也就阶段的任务,那这种情况下,这个功能默认是开启的,什么功能呢?一旦产生大量的小文件,它会自动将N多个小文件进行word合并。
10:01
那word合并,合并到了多大呢?256兆,那多大的文件认为是一个小文件呢?这个值你可以设置啊,如果说这个文件小于它,那我就把它进行word word到二百五六兆啊,那这个呢,是只要你跑外公来,让你能自动将它进行这些文件进行合并。啊,是没过程,那还有如果你跑的是迈克reduce任务,那这个值它就默认不是开启的,是false,你需要把它打开啊打开,而且一旦产生小文件进行摸底。啊,这也是美团嗯,他们内部大量使用的啊,包括之前在凤凰网啊的老师他们也是啊大量使用,这是他们给加过来的啊,也是在真正开发中用的非常非常广泛的产数的一个配置啊这些才是一些干货啊好,那这个就是啊墨这个功能默那这里面还涉及到行列过滤对吧?啊先过滤再造应啊类似这种处理哈,这行列过滤,那你看这就细胞个了没了啊你看我刚才说的外B专音行列过滤分级分走合理设置外B个数合理设置里就是个数啊小文件combine还有一个呢。
11:20
然后呢,合理设置这些参数,其实还有还有什么JM处理小文件对吧?啊还有什么这个非严格模式是吧?啊还有什么动态视频等等一堆,但是你需要联名号似的记录七个八个。啊,你要说就一两个那不行。那很好,那就是这么多内容,你看这就是技术,你需要掌握内容。那剩下的还有这块的业务,你需要把上面这些搞定。比如说一个文档我们学了将近三天啊,那就这些算了,太典型,绝对也算啊,这绝对算啊,T引擎提高应该速度对吧?那么大家问题,我什么时候用这个tag引擎算一些指标,什么时候用MR去算一些指标,或者什么时候用我们日后学的Spark。
12:09
那Spark和T它是基于内存运算的,那MR是于磁盘的,对吧?那么这里面就有个问题了,是不是我见到指标就用不是,那什么情况下用统计对数据量统计指标,在周国周指标,月指标,年指标特别大的情况下,用的就是mmr啊,那这种特别时间少啊,要求时间快,数据量比较小,那就用pad基于内存那一块啊,这个要区分开啊。
我来说两句