23.09.04一面
自接到面试起狂背八股文,面试时面试官直接冲项目/(ㄒoㄒ)/~~。
视频面试开始,看到面试官,嗯,是强者的样子,紧张又加了一分。
1.首先做个自我介绍吧
——(我早有准备,短小精悍,行如流水~)
2.介绍一下你的项目吧
——(我早有准备,短小精悍,行如流水~)
3.项目在哪里做的,你负责什么
——学校老师带做的(bilibili sgg电商),数仓部署搭建(依葫芦画瓢)
4.我看到你项目中用了Flume Interceptor解决了数据漂移问题,说一下怎么做的和漂移问题怎么产生的
——(背过,但是没有理解透,导致我都不知道我在说啥,毫无逻辑......就怎么解决的说的好点....)数据漂移是因为数据在处理过程中,数据的产生时间和处理时间不一致,而导致的数据最终的路径和预期不一样。
5.根据数仓模型分别采用全量同步和增量同步策略,你是怎么做的
——我答了大表 变化小用增量云云....
6.说一下Flume的事务
——我答了source到channel是事务性的云云,面试官说这个是应用,他想知道是怎么实现的,我说我不太了解。
7.说一下星型模型和雪花模型
——星型模型是反规范化的,雪花模型是规范化的,是对维度表进行范式拆分,拆了又拆,像雪花一样(答得太差了,脑里只有离线数仓时候sgg笔记上的那些)
8.如果Flume漂移时间推迟了两个小时,你也会等吗
——(不知道在问啥,我太菜了)
9.说一下你们这个数仓建模怎么做的
——(时间不足,没有准备)这不是我负责的部分
10.你说说你们这个项目数仓分层怎么做的
——答了分五层,每层是干什么的(这里得回答也是只停留在概念,没有结合自己得理解)
11.数据倾斜问题你是怎么解决的
——答了数据倾斜产生的原因,group by造成的就用map-side,skew-groupby,join造成的就用map-join,skew-join,sql查询优化(然后在详说这些的原理的时候,忘记了.....答得并不好,但是,我答的中声有力,就算我知道我错了,我也边说边点头....)
12.我们做SQL题吧
——都是和视频有关的分析......第一道磕磕绊绊做出来不知道对错,第二道花了十几分钟写出来结果发现理解错了,删掉说我不会.....
13.有什么想问的吗
——我想走大数据开发这条路,请问你能给我一些建议吗
他大概说了SQL练起来,对spark,flink这些组件底层这些要熟悉
总结:太紧张了,回答的时候居然有脑子空白嗡嗡的感觉,有很多概念的东西没有理解,说的并不好,SQL题需要多练练.....
第一次面试居然是大厂,见识了大厂姿态,以后面些其他厂应该都不会紧张了哈哈哈哈
附:面试官在问的时候一直有问实时啥的....
2023.09.06二面
当天早上接到电话,下午面,还是直接冲项目
1.你现在是在广东是吗,我们这份实习是在北京的,实习要求三个月以上.....
——(我都行,我都接受,我都可以)
2.说一下hive on spark,hive on mr,hive on tez的区别
——hive on spark就是使用hive的语言进行查询处理数据,底层是用的spark计算引擎,hive on mr就是用的mr计算引擎
3.你将数仓分为五层,讲讲每一层它的作用
——(由于数仓理论只是局限于sgg的离线数仓那门课讲的那些,所以答得都很概念,什么原始数据层,用来备份数据,明细数据层存事实表.....而且脑卡忘了ods层,后来看了面试官疑惑的眼神,我匆忙改正了)
4.你使用了DolphinScheduler,它的作用是什么,怎么实现的
——它是用来调度整个系统的,实现定时调度和告警的,我在搭建数仓打通数据链路的时候会编写脚本以实现调度,后面在dolphinScheduler上上传脚本,调整执行顺序,若是报错则会通过发电子邮件的形式告警....(后面面试官还问了一个问题我忘了,不会但硬着头皮答了由于电脑配置不好,所以会控制flume启动关闭......)
5.你知道sql中的....Join吗
——不知道(md我只会用join on呜呜呜,完全忘记join还有什么类型)
6.你知道hql中with as,case when,collect_list,collect_set吗
——(with as忘了,我只答了后面三个,而且用词不是很好,case when是条件选择,collect_list是将数据做成一个数组,允许重复,collect_set是做成一个集合,不可以重复)
7.这个es它有什么作用
——这个项目用es实现了全文检索,解决了大数据量下,检索慢的问题
8.这个项目它的数据链路是怎么样子的
——行为数据文件->flume->kafka->flume->HDFS
——业务数据在MySQL->datax->HDFS->MySQL->可视化
(这里大意了,没有搞明白行为数据最后流向,而且没有说到es,真是漏洞百出)
9.这个es你们是怎么装载数据的
——(我真是太后悔了,当时只想着整个高大尚的东西进去,只是学习了它的使用,却没有把数据装载进去,他问的时候,我不知道呜呜呜)
10.11.你们在设计表,指标体系的时候是怎么设计的
——(我真是个大傻逼,人家岗位职责上写着负责数仓建模指标建设日常数据分析,结果我却说这块不是我负责的,我是大傻逼)
然后面试官闲聊着就给我科普了数据工程师,数据开发,数据科学家
数据工程大概就是搭建数仓云云
数据开发大概就是数仓建模,数据分析,报表开发云云
数据科学家大概就是搞算法
总结:深刻的体会到,某大佬说的,学一个项目,你起码得理解用到了什么技术,为什么要用,代码你也得理解跟着打一遍,我就是cv了一堆建表sql装载sql,没有理解透,在数仓建模那里也没有做专门的研究,直接寄。因为我mysql师跟着黑马学的,只学了基础篇,导致各种join都不知道,泪目,后续看了sgg的mysql,哭了。我真是啥也不是.....