题目

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_idwd.app_event_log_didws.user_daily_active_dads.growth_funnel_d
  • 反模式:为了“看起来专业”而过度分层,导致时延/成本上升;评估增益/边际成本
  • 得分点提示:答出**“解耦+口径+复用+血缘+性能+成本+演进”**七大收益并举例。

This post is for subscribers on the 网站会员 and 成为小万的高级会员 tiers only

Subscribe Now

Already have an account?