0%

数据仓库面试题

本文主要包括:

  • 数据仓库面试题总结

1. 全量表(df),增量表(di),追加表(da),拉链表(dz)的区别及使用场景?

2. 星型模型和雪花模型?

3. 缓慢变化维如何处理,几种方式?

  1. 直接覆盖历史数据
  2. 采用拉链表,把记录的过程都记录下来
  3. 增加预留资源,每次变化,把新变化的数据放到备用字段
  4. 字段透传,把变化的纬度透传到上层的事实表,这样就不用关联了

4. 说说你从0-1搭建数仓都做了什么?你觉得最有挑战的是什么?

5. 流批一体有什么好处?为什么要搞流批一体?
传统数仓Lambda架构,数据分析需求基于流、批两套计算引擎产出,这种分离的架构不仅会带来两套开发成本,也导致数据逻辑和口径难以对齐
为什么阿里云要做流批一体?
流批一体首先是架构上的流批一体,不仅仅是计算引擎流批一体,存储引擎也需要流批一体,计算引擎可以使用flink,存储引擎,现在常用的可以使用Hudi,Iceberg

6. left semi join和left jion区别?

  • left semi join左半连接,是 in(keySet) 的关系,遇到右表重复记录,左表会跳过;
    当右表不存在的时候,左表数据不会显示; 相当于SQL的in语句,注意,结果中是没有B表的字段的
    LEFT SEMI JOIN 是 IN/EXISTS 子查询的一种更高效的实现。
  • left join:当右表不存在的时候,则会显示NULL

数仓面试题可以参考
2020大厂面试题-数仓篇

参考
(终极版)2021大数据面试真题(务必进来看一下)