数据仓库开发工程师面经


1. 过程拆解

面试还是有一些难度 的,主要三个部分:

  • 底层原理,源码理解。
  • 项目相关,难点,仓库建模
  • 现场秀sql

1.1 底层原理,源码理解

这一块主要就依据你简历技能那一栏,写的你擅长的技术。

所以我觉得,写在那一栏的,一定是你用的很熟悉的,要么就是自己的亮点,能拿来说事的。不要自己知道一点点,或者只是听说过,就往上写,这基本是在给自己挖坑。

回答问题的技巧就是:不要硬照硬背,要灵活的结合实际经验来讲。

比如,要你讲spark内存模型,你就把网上的都照着一背遍,这没有亮点呀? 对不对,完全可以结合一个实例来说:从一个sql任务理解spark内存模型 即把内存模型讲了,又讲了你是怎么通过理解这个内存模型并指导实际工作做了优化~

我刚面完之后,有同事也要面,所以我就把面试题记录了一下。

题比较多,这里给列几个问题,感受一下,基本也都是比较常见的问题,就看怎么回答出自己的精彩了:

spark和hive:

1.2 项目相关,难点,仓库建模

关于项目这块,真的就很难说,因为不同的公司,项目也不一样,面对的问题也总不相同。 总体的原则就是一定要突出自己的亮点,先介绍项目大框架,再详细深入自己负责的模块。

关于仓库建模部分,不能只照搬照背理论,一定要结合实际案例说话。

项目

有关这里的一些点,后续,我也准备逐个总结成文章,一方面为大家后面要面试的同学提供思路,另一方面也能提高自己

1.3 现场秀sql

现场秀sql是真的考察动手能力。

你要知道在那么紧张的情况下,要写满足各种需求的sql,并且写完后,还要讲出为什么这么写? 还有没有更优化的办法? 原理是什么等等,也不是件容易的事啊,如果平时sql功底不扎实,这个是很难搞定的。

花样写sql

  • 一般情况下,写出一个,然后,他就会问还有没有更优化的方式?
  • 窗口函数,groupingsets cube这些 都会用到。有好多是计算滑动的那种
  • 这个sql 在hive中起几个job,为什么是这么几个job?

这个写sql的功夫真是只能平时多积累了,最不济,面试前,就像刷leetcode一样,刷一些sql题,也会有有很大作用。

不过sql题 与leetcode相比,简直不要简单太多

经典题目:

1. 写SQL(连表,然后group by) 公司部门表 b 有两个字段 人名name、部门department ;部门每月的成本。
2. 现在有大学考试成绩如下表A: id,subject,score 找出每一科都是这一科前30%的学生的id
3.给了两个表,有用户id和日期以及level属性,如何在不用join的前提下计算第二天相对第一天level上升的用户数
4.连续几天活跃的用户

综上:

回答问题的总体原则就是,先大体讲一下技术框架和技术点(这个主要是突出自己知识的广度),然后,再找几个细节和亮点,着重讲一下自己做了哪些事情,自己的有哪些好的想法,怎么去推动实施,效果怎么样(这个主要是突出自己的深入的地方)


文章作者: Leon
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Leon !
评论
 上一篇
从0到1数据指标体系搭建实践 从0到1数据指标体系搭建实践
前言我们所需要的并不是数据,而是数据背后映射的洞察。 在业务发展过程中,会产生大量的数据,单看数据是没有价值的,只有和业务相结合转化为信息,再经过处理才能体现其价值。 对于业务数据而言,通常分为两项:其一是维度,其二是度量,或者说是指标,这
2021-07-07
下一篇 
Hive函数之lateral view 和 explode的区别和使用 Hive函数之lateral view 和 explode的区别和使用
explode将一行数据转换成列数据,可以用于array和map类型的数据。就是将hive一行中复杂的array或者map结构拆分成多行。 用于array的语法如下: select explode(arraycol) as newcol
2021-06-01
  目录