题目
1.自我介绍
2.挑一段你觉得收获最大的实习经历聊聊吧。比如当时做的业务是什么,技术用在了什么场景,最后有没有一些具体的指标来衡量效果?
3.我们来聊聊数仓吧,为什么要对数据仓库进行分层设计?
4.Hive里的视图(View)用过吗?它主要是解决什么问题的?
5.Hive的分区和分桶,能讲讲它俩的区别和各自的应用场景吗?
6.能详细说说Spark的shuffe过程吗?
7.在之前的工作中,有没有碰到过什么让你印象深刻的性能优化案例?
8.大数据处理中常说的数据倾斜,一般是什么原因造成的?你都知道有哪些解决方法?
9.编程语言这块,你比较熟悉哪些?
10.MySQL索引的底层原理是什么?能展开讲讲吗?
11.数据库和数据仓库,它俩的核心区别是什么?分别适合用在什么样的业务场景里? 12.算法题:写一个二分查找。
参考答案
3. 为什么要对数据仓库进行分层设计?
考察知识点
- 数仓分层的动机与收益:解耦、复用、口径统一、血缘审计、权限隔离、性能、成本与可演进性。
- 常见分层体系:ODS/DWD/DIM/DWS/ADS,以及实时层的对应。
参考回答
- 解耦与复用:把抽取/清洗、明细与公共汇总、主题服务分离,避免每个需求都“从原始数据重新加工”。
- 口径统一:统一在 DWD/DWS 层沉淀公共口径与指标资产,避免“同名不同义”。
- 血缘与审计:层与层之间边界明确,配合元数据/血缘工具,可追溯与可回滚。
- 性能与成本:在 DWS 做公共预聚合减少重复扫描;冷热分层、分区裁剪、列式存储降低成本。
- 权限与稳定性:ODS/DWD 限制直接访问;ADS 面向应用暴露稳定的接口/视图,降低上游变更对下游的扰动。
- 演进:当业务变化时,只需局部替换某一层的实现,不破坏全局。
补充回答
- 典型命名规范:
ods.app_event_d_i
、dwd.app_event_log_di
、dws.user_daily_active_d
、ads.growth_funnel_d
。 - 反模式:为了“看起来专业”而过度分层,导致时延/成本上升;评估增益/边际成本。
- 得分点提示:答出**“解耦+口径+复用+血缘+性能+成本+演进”**七大收益并举例。
This post is for subscribers on the 网站会员 and 成为小万的高级会员 tiers only
Subscribe NowAlready have an account? Sign In