订阅更新

数仓建模实战总结

数仓建模手册 第 12 题 约 2 分钟读完

本文目录
  1. 我的数仓经历:4家公司,4种阶段
  2. 做数仓最常踩的5个坑
  3. 面试讲项目的3分钟模板

高阶 | 大数据面试 · 数仓建模系列

面试真题
聊聊你做过的数仓项目吧,怎么设计的?遇到过什么挑战?

我的数仓经历:4家公司,4种阶段

阶段公司数仓状态我的角色
起步期短视频平台没有数仓,全是临时脚本从0搭建
建设期元宇宙社交App有基础分层但混乱梳理规范,建实时数仓
成熟期出海硬件品牌完整数仓,要迁移平台平台迁移+治理优化
优化期短剧出海公司有数仓但需重构SQL治理+指标规范化

做数仓最常踩的5个坑

坑一:上来就建宽表,不做分层。很多小公司第一反应是搞一张大宽表什么都有。但很快需求变了加字段要回刷全量历史,口径不一致。正确做法:再简陋也要做分层,哪怕只有ODS→DWD→ADS三层。

坑二:粒度不明确就开始写SQL。新建表的第一件事不是写SQL,而是写清楚「一行数据代表什么」。我的习惯是在建表语句的COMMENT里把粒度写死。

坑三:维度表不做主键校验。拉链表忘了加is_current = 1过滤,JOIN金额翻倍。维度表ETL必须加主键唯一校验。

坑四:指标没有统一定义就开始出报表。你算的DAU和同事的不一样——一个用user_id去重,一个用device_id去重。先定义再开发。

坑五:重复造轮子。团队3人建了3张用户画像表,字段重叠70%。新建表之前先查有没有已有表能满足需求。

面试讲项目的3分钟模板

背景:「我在某出海公司负责数仓建设。团队3人,数据来源十几个。」

挑战:「接手时数仓没有分层,200多张表命名混乱,指标口径不统一。」

方案:「我做了三件事:建立分层架构、统一命名规范和指标定义、做了一轮埋点治理把1000+事件精简到100+。」

关键设计:「DWD层做了跨时区处理,用户维度表用Type 2拉链表,DWS层建了核心宽表,广告归因用OneID打通。」

结果:「数据质量问题减少60%,报表口径投诉从每周2-3次降到基本为零,新需求上线从2周缩短到3天。」

面试加分提示
讲数仓项目时,最高级的回答不是技术方案多复杂,而是你做了哪些决策、为什么这样做。
每个设计决策都有理由,每个理由都有实战支撑——这就是9年经验的底气。
刷题进度保存在当前浏览器