查看文章
 
阿里巴巴面试总结
2010-06-05 22:28

2010-6-5,北京,长安街某酒店。

       笔试,ETL职位,虽然不是本行,但是大部分题目也还行,oracle占多数。主要是UNIXlinuxAWKvi基础命令,怎么拷贝三行粘贴三行,修改执行权限,删除文件。还有数据仓库的一些概念题,几类模型,cube等。主要的几类ETL工具。以及plsqlsql。比如怎么得到一个字符串中某个字符的个数,在plsql中怎么得到当前用户。多选题结束后,是Sql题,5小问,从简到难,一个事淘宝会员member表,一个事销售流水表,得出平均销售额,排名等问题。有一道是分析此sql的实行计划。最后两大自由发挥,一个是说一下ETL的特点,另外一个是描述一个参与过的数据仓库项目。总体做下来感觉还可以,毕竟平常接触的也是UNIXoracle。但是,在UNIXoracle基础知识方面还是感觉自己还有一定差距。有待加强。

       一面,也是最让我有感触的一环,面试官相当和善,让我先做了一番自我介绍,再谈了了一下现在做的项目云云,大体聊了一下之后,面试官从桌上拿来一张纸,有两行(还是离不开淘宝):

       淘宝注册会员表MemberMember_ID, ID_NBR(身份证号)(此表数据量几百万)

       北京市提供的市民信息表InfoID_NBR,AREA_ID(朝阳,海淀。。。。按北京现有居民4000万左右) 有可能身份证号会对不上。

       要求得到有效淘宝会员在北京各个区所占比例情况,并排序。

       最开始,写了一个是先查出各个区的总人数然后再计算的:

       With s as select …from Info …group by ….

       Select * from Member, Info,s where …..

       面试官:此语句虽能查出结果,但是会扫描两次Info表,有没有可能不扫描两次得到?过程中面试官提到了外连接,根据提示,改为外连接, sum(decode(ID_NBR,0,1)) ,自认为可以了,但是,从面试管脸上看出,不是很满意。才疏学浅,只能再次请教。面试官:可以直接进行count(ID_NBR)即可得到总值,因为count不会计算null,我恍然大悟,平时只记得oracle这个特性,计算总值count(某个字段),因为会丢失null值,但是这里巧妙地用了这个特性,语句就可以更为简单了。

       接下来一个问题是作业调度问题,以及如何在没有软件的基础上做一些简单的负载均衡。根据自己的项目经验,做了一些解答。中途还谈了hash join NL等表连接问题,还是拿那两个表做比方,一个400W的表和一个8000W的表,如何连接效率上会高一些?最初,我说做NL会好一些,因为数据量用小表做为驱动表做全表的话效率比较高。但是:面试官提示,两个表的连接字段都是身份证号,最终的答案是,hash join+分区效率会更好一些。我觉得不一定hash会更好一些,跟具体的环境也有一定关系。

       最后一个问题,是纯数据仓库的,有500个客服,要服务500W的客户,今年的客户已经发展到1000W,如何在不增加客服的情况下,降低客户流失率。要求使用数据挖掘的方法去实现这样一个需求。在面试官的“大力”提示下,这个问题算结束了(可能不便说出具体的方法,但是方法应该很多)在这里要感谢那位戴眼镜的面试官,谢谢您的耐心!

       最后又问了我看什么书,经常上什么网站。我说tom的书,但还没看完,网站嘛,最早是CNOUG,说道这个,面试官插了一句:你知道这个网站的创始人是谁吗?就是淘宝的。我说是吗?这么强悍!(其实我知道。。。哈哈),面试官插话完。还有asktom,**pub等等。

       二面,其实都差不多,介绍做的项目,不过这此主要还是谈工作方向问题,主要是说具体职位还是杭州的职位云云。另外就是和一面一样,问了同样的问题:HASH JOIN,NEST LOOP过程,具体应用环境,因为一面和面试官详细“讨论”过这个问题,这里回答的就比较顺手了,此面总体感觉不错。没有一面那么复杂,此外此面印象也不是很深刻。

       再说最后一面复试,比较难受,面试官是一个很严肃的人,搞得我都有点紧张。还是老样子,自我介绍加项目介绍,我就把我做的项目大致说了一遍,貌似不是很满意,项目相比淘宝还是闲的有些简单。中间也问了同样的问题,hash join, nestloop(淘宝的面试官也太钟爱这个问题了吧),一顿描述之后(前面已经说两遍了。。。),然后也问我看过什么书,怎么学习oracle的,平时上什么网站。说完这些,觉得自己轻松了许多,感觉这些面试官都喜欢问同样的一些问题嘛。但是这可是复试,应该没那么简单就完了。果不其然,空气突然凝重了起来,说时迟那时快,面试官突然抛出了一个似曾相识的问题:你告诉我,北京总共有多少个烟井盖?。。。。。?烟井盖,也不就是井盖吗?好像在哪见过这道题,但是苦思冥想就是想不起来,好像是哪个大公司的面试题。那是也顾不上那么多了,思考了片刻,我说到:首先应该知道北京总共有多少马路,然后估算井盖之间的距离,然后。。。。我突然觉得这样回答好像有问题,但是实在想不出别的想法了,也曾经想到说去找城管啊这样的“解决方案”,但觉得这个回答也不是太尊重这位严肃的面试官,谁有好的解答还请不吝赐教.在面试官哪不是很满意的表情中,复试结束了。到此,全部的面试结束了。带着最后这个问题,走了出来。。。

       以上就是此次面试的全部情况,虽然不是很理想,但是收获颇丰!笔试中明白了知识点的欠缺,sql功底不足,数据挖掘相关知识太少,一面让我知道了小知识也能有大用场asktom上不就经常有这样的案例。书啃得还是太少。继续努力!


类别:Bi||添加到搜藏 |分享到i贴吧|浏览(154)|评论 (0)
 
最近读者:
 
网友评论:
发表评论:
姓 名:
网址或邮箱: (选填)
内 容:
     

   
帮助中心 | 空间客服 | 投诉中心 | 空间协议
©2012 Baidu