数仓面试的常见问题

1.1 数仓分层及每层的职责
  • 近源层(ods)

    存放原始数据,直接加载原始日志、数据,数据保存原貌不做处理

  • 仓库整合层

    • 明细数据层(dwd)

      结构与粒度原始表保持一致,对ODS层数据进行清洗(去除空值、脏数据、超过极限范围的数据)

    • 服务数据层(dws)

      以DWD为基础,进行轻度汇总

  • 应用层(ads)

以DWD为基础,进行轻度汇总

1.2 分层的意义

空间换时间:通过建设多层次的数据模型供用户使用,避免用户直接使用操作型数据,可以更高效的访问数据

把复杂问题简单化:一个复杂的任务分解成多个步骤来完成,每一层只处理单一的步骤,比较简单和容易理解。而且便于维护数据的准确性,当数据出现问题之后,可以不用修复所有的数据,只需要从有问题的步骤开始修复

便于处理业务的变化:随着业务的变化,只需要调整底层的数据,对应用层对业务的调整零感知

1.3 如何理解数仓

面向主题 – 集成数据 – 随时间变化 – 信息相对稳定 --> 用于管理决策过程支持

是具有什么样特点什么样目地的数据集合

1.4 数据集市和数仓的区别

数仓更多的市针对一个公司,数据集市针对的是一个部门,数据技术的数据针对范围更小。

1.5 数据仓库和数据库的区别

数据库是软件,数据仓库是数据管理的概念。数据库更多的为了交互关系数据,数据仓库更多是为了利用数据进行分析决策。一般数仓数据比数据库数据保留时间更长。

1.6 数仓中每层表的建模

ODS: 特点是保持原始数据的原貌,不作修改!

原始数据怎么建模,ODS就怎么建模!举例: 用户行为数据特征是一条记录就是一行!

ODS层表(line string) 业务数据,参考Sqoop导入的数据类型进行建模。

DWD层:特点从ODS层,将数据进行ETL(清洗),轻度聚合,再展开明细!

  • 在展开明细时,对部分维度表进行降维操作

例如:将商品一二三级分类表,sku商品表,spu商品表,商品品牌表合并汇总为一张维度表!

  • 对事实表,参考星型模型的建模策略,按照选择业务过程→声明粒度→确认维度→确认事实思路进行建模

选择业务过程: 选择感兴趣的事实表
声明粒度: 选择最细的粒度!可以由最细的粒度通过聚合的方式得到粗粒度!
确认维度: 根据3w原则确认维度,挑选自己感兴趣的维度
确认事实: 挑选感兴趣的度量字段,一般是从事实表中选取!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值