数仓开发面试经验
前言
虽然现处于疫情期间,可能很多童鞋现在正在找工作,或是想要入行,或是待业ing……
细心的童鞋如果你观察一下各大招聘网站,你会发现机会也开始复苏,也开始多起来的趋势。
面试准备
先说说目前市场情况:由于疫情,目前的市场确实不如以前,现在大多数公司一般招两种人,一种是技术很厉害的,一种是工资低的;
技术一般还想要高工资比较难了,技术过硬要高工资也是相对容易的。有很多面到最后,谈了工资没有下文的。一般hr让你回去等消息,有可能是等不到,所以还得接着面试,不要在挂在一棵树上;
所以大家还是要好好准备,提高技术,整理总结,找到满意的岗位。
面试经历
大家都知道大数据分为:平台、数仓、数分和挖掘。投简历要看清到底是哪个岗位,特别是大厂的岗位;
因为我之前搞数仓,但是想搞平台开发就投了一个大厂,结果被虐的很惨。
面试主要聊源码,hadoop和spark源码(因为我项目中没用flink,所以没问flink)。
大概四十分钟,问的很细很底层,还有jvm相关的,中间夹杂算法;
其余的面的大多是数仓开发,模型与架构,离线与实时,也都还好一些。
如果面平台开发,首先要通读过源码,特别是spark和flink的,仅仅会用是不行的,因为一般大厂都会进行源码调优和二次开发;
如果面数仓开发,一般会问一些spark、hive调优,数仓建模和分层架构,数据质量和数据治理等问题,还有就是项目中出现的问题,怎么解决的;
这个大家在准备面试时,建议每个项目都提前准备好几个问题,方便回答,hold住面试官;
在面试过程中,也请教了一些大佬和群友,建议就是简历要突出精和专,而不是广。大厂不需要广而不精的人。你写的越广,面试官会问的越多,你就越容易暴露自己的弱环。
还有就是搞数仓的兄弟姐妹们,平时除了写sql,可以多看看源码,对面试有帮助。
面试题目
1.什么是数据仓库?如何构建数据仓库?(如果这个问题回答的好,后面很多问题都不需要再问)
2.如何建设数据中台?可简单说下理解与思路
3.数据仓库、数据中台、数据湖的理解
4.传统数仓的程度(建模工具、ETL工具、BI报表工具、调度系统)
5.传统数仓和大数据数仓的异同?有哪些大的变化?
6.印象最深刻的项目?为什么?亮点与优势?
7.数仓最重要的是什么?
8.实时数仓做过吗?采用什么架构?lambda有哪些优缺点?
9.如何看待kappa架构?iota架构呢?
10.责任心?沟通能力?团队协作?数据思维?
11.用户画像(静态、动态标签,统计、规则、预测标签,衰退系数、标签权重)
12.推荐系统(协同过滤,基于用户、商品,SVD,各种距离算法等)
13.数仓基础理念理解
(主题域 血缘关系 拉链表 代理键 维度退化 缓慢变化维SCD 事实表类型 增量dwd处理 星型/雪花/星座模型 事实 维度 粒度 原子/派生指标 OLAP)
14.数仓如何确定主题域?CDM?
15.数仓如何分层的?及每一层的作用?思考:为什么要这么分层?
16.数仓有哪几种建模思想?维度建模、范式建模、datavault?.. 有什么优劣,如何选择?
17.SCD的常用处理方式?优劣?与SCD2与拉链表有什么异同?
18.元数据的理解?元数据管理系统?
19.如何控制 数据质量?
20.如何做 数据治理?数据资产管理呢?
21.Hive优化?SQL优化,参数优化
(mapjoin、列裁剪、分区、分桶、Map数、Reduce数、常用参数等)
22.数据倾斜
23.小文件问题
24.order by、sort by、distribute by、cluster by
25.udf、udtf?处理的问题?
26.shuffer优化
27.MySQL如何改写row_number
28.连续n天登录用户
29.用户留存、用户活跃、沉默用户、回流用户
30.lag/lead()over()函数、ntile() 等分析函数
31.rollup、cube、grouping setsgrouping_id
32.partition和分桶 order by和sort by
对于以上可自己找答案,答案可参考:
https://mp.weixin.qq.com/s/iZs7zEb-yoiSnlG2q74Fvg
页:
[1]