刚过去的2024年总共面试143场,主要都是社招。明显感觉到,简历是真的多,筛都筛选不完,不禁想到当年的“人人都是产品经理”口号。门槛不高,谁都可以做。
还有不少后端、前端、产品也在问,数仓该怎么学习,学习内容,以及学到什么程度可以要30K.....
那我就从面试官角度来尝试回答,有关数仓面试的3部分:
-
技术基础:针对简历“掌握技能”的模块,由浅入深的考察常规用法、技术原理、底层实现等;
-
SQL笔试:Leetcode的变种1道10分钟左右,会叠加百亿量级要如何改写,或者问优化思路。
-
项目经验:负责or参与?穿插业务理解、建模和治理等。
要回答好这3个部分,这些“护城河”的知识必不可少。
我们从这4方面展开,尽量把这些知识融会贯通,变成自己的东西。
一、业务理解
搞清楚业务目标,不要虚的那种(E.g. 让天下没有难做的生意),而是量化目标完成的指标(E.g. 第二季GMV上涨2%),那说明下季度的核心发力点是营收。
只需要抓住3个核心指标,毕竟老板只关注不超过3个指标,你带着3个指标,去探索业务:
-
产品下载体验一遍;
-
研究产品文档、调研报告等,为什么要上新特性的考虑;
-
关注BI报告和看板,可以问老板爱提什么问题。
如果上面3点你觉得太耗时,可以从小处入手:
-
理解指标口径定义;
-
产品的用数习惯(常看的维度、筛选的周期);
-
BI对趋势判断和异常分析;
-
多指标联动判断;
这些个方法都是从数据反推业务,也是一种方法。
二、数据建模
这个是思想层面的方法论,比较高大上的内容。它属于很难通过看书来学会,先快速通读一遍《维度建模权威指南》:后台回复:666,直接领取,了解下面名词的概念就行。
-
Kimball思想
-
星型模型和雪花模型
-
分层定位和作用
-
事实和维度
-
缓慢变化维
-
命名和开发规范
重点结合自己正在做的业务,反向去理解别人为什么这样设计表,肯定有理由的,如果没有理由,那就去问设计者,如果设计者离职了,那就问组里最资深的人。
数据建模多问多理解就行别人的设计,毕竟思考过程才是最重要的,否则结果只有一些数据表给到你,没有太多意义。你们要是想看我如何设计的,我可以考虑写一次彻底总结:从0-1的设计“网约车平台”的数据建模。想看的评论区留言:想看,超过10个留言,我下期就出。
三、SQL
SQL已经呈现一统江山的趋势,HiveSQL\SparkSQL\FlinkSQL\PrestoSQL\ClickhouseSQL......等,基本上核心大数据组件都是SQL,如果你时间有限,建议学SparkSQL。
-
SQL熟练程度:基本给一个Leetcode中等题目,你可以想到具体的实现方法,然后花个10分钟写出来就差不多熟练了。
引用“ByteByteGo”
-
然后深入一点是调优参数,如果你使用Spark,那么它的底层原理要了解,至于源码,个人觉得你读不懂没关系,有更好,没有就看别人读源码的结论也行,一些公众号有讲案例有话和源码调惨,可以关注一些。
四、语言基础
Java 或 Scala 或 Python都行,会一种就OK。毕竟工作中95%的业务开发SQL就可以搞定,剩下的5%你大胆承认不会。
不过我强烈建议你会一种,最好是Java,毕竟Spark和Flink都有底层API可以支持。实在不会不想学,或者数据分析师想转数仓,也没关系,很多人只会SQL也可以把数仓建设的很好,把1-3掌握就好。
五、总结
以上就是从面试官角度,如何扎实的学好数据仓库的知识内容。
另外,我不喜欢给别人路线图,按部就班学习,那是培训班的做法。每个人情况不一样,你不必走别人走过的路,我更建议你像堆乐高一样,掌握每一个小知识块,随意组装和搭配。集中精力学习这几项,不要所有框架都学习,然后都半桶水晃荡,都经不起面试官拷问,也没有培养潜力,那就容易凉凉。
本篇结束!
你可能花了5分钟阅读,但我却花了2天时间准备,可以点点关注给我一个
标签:数仓,护城河,可以,建模,指标,源码,人人,SQL From: https://blog.csdn.net/lssilu/article/details/145035798