订阅更新

数仓建模 面试题116 道

分层、维度建模、事实表、拉链表、宽表、数仓项目

  1. 006 数仓分层怎么设计?
  2. 012 拉链表怎么设计?
  3. 027 数仓事实表的粒度怎么设计?
  4. 030 数仓维度表怎么设计?
  5. 033 数仓增量同步怎么设计?
  6. 038 数仓中的迟到数据怎么处理?
  7. 046 累计快照事实表怎么设计?
  8. 051 数仓退化维度什么时候用?
  9. 056 周期快照事实表怎么设计?
  10. 061 事务事实表怎么设计?
  11. 066 数仓一致性维度怎么设计?
  12. 071 数仓星型模型和雪花模型怎么选?
  13. 072 数仓多值维度和桥接表怎么设计?
  14. 079 数仓角色扮演维度怎么设计?
  15. 080 数仓杂项维度什么时候用?
  16. 081 无事实事实表怎么设计?
  17. 082 数仓微型维度怎么设计?
  18. 090 离线数仓和实时数仓如何保证数据一致?
  19. 117 数仓代理键和自然键怎么选?
  20. 118 缓慢变化维 SCD1、SCD2、SCD3 有什么区别?
  21. 119 数仓的数据域和主题域怎么划分?
  22. 145 数仓宽表和维度模型怎么选?
  23. 155 数仓中可加、半可加和不可加指标怎么理解?
  24. 156 数仓总线矩阵怎么设计?
  25. 165 Data Vault 的 Hub、Link 和 Satellite 怎么设计?
  26. 175 数仓原子指标、派生指标和复合指标怎么设计?
  27. 186 主数据、参考数据和维度数据有什么区别?
  28. 203 事实表中的 NULL 外键怎么处理?
  29. 213 Data Mesh 和集中式数仓怎么选?
  30. 223 跨时区数仓怎么划分业务日期?夏令时怎么处理?
  31. 224 多张事实表怎么关联?Drill Across 如何避免指标放大?
  32. 226 双时态数仓怎么建模?如何还原当时看到的数据?
  33. 230 数仓容灾怎么设计?RPO 和 RTO 如何落地?
  34. 243 库存数仓怎么建模?流水和快照为什么经常对不上?
  35. 244 多租户数仓怎么设计主键?为什么加了 tenant_id 仍会串数据?
  36. 253 订单和退款怎么建模?跨月退款应算在哪一天?
  37. 264 多币种数仓怎么建模?汇率变化会不会改掉历史金额?
  38. 273 组织架构调整后,历史业绩归谁?数仓层级关系怎么建模?
  39. 274 箱、件、千克能直接求和吗?多计量单位的数仓怎么设计?
  40. 279 源表删了记录,数仓为什么还在?删除事件怎么传到下游?
  41. 284 预算按月、实际按天,数仓里怎么对比才不会把预算算重?
  42. 285 订单拆单、合单后怎么建模?父子订单的金额和单量怎么统计?
  43. 293 订单当前状态和状态变更流水,数仓为什么要分开建模?
  44. 294 订阅业务怎么建模?扣款、续费、取消和会员到期是一回事吗?
  45. 313 源系统主键会复用,数仓怎么建模?删掉再建还是同一个对象吗?
  46. 314 多个源系统字段冲突,数仓该信谁?只用 COALESCE 够吗?
  47. 320 数仓多张表怎么一致发布?所有任务成功就代表报表一致吗?
  48. 323 积分数仓怎么建模?发放、消耗、过期和撤销能只存余额吗?
  49. 324 AB 实验数据怎么建模?分到实验组就算真正曝光了吗?
  50. 329 数仓表多久没人用可以下线?没有查询日志就能直接删吗?
  51. 335 优惠券数仓怎么建模?发券、领券、用券能只看一张状态表吗?
  52. 336 订单准时履约率怎么建模?一个包裹签收就算整单完成吗?
  53. 343 月末在职人数能代替月平均人数吗?人员快照怎么建模?
  54. 344 接口返回累计消耗,数仓能直接求和吗?差分为什么会出现负数?
  55. A3 为什么数据字典能让你的数仓工作轻松很多?
  56. 02-01 数仓分层架构
  57. 02-02 星型模型 vs 雪花模型
  58. 02-03 缓慢变化维(SCD)
  59. 02-04 事实表三种类型
  60. 02-05 宽表设计
  61. 02-06 指标口径管理
  62. 02-07 数据膨胀与JOIN陷阱
  63. 02-08 数仓命名规范
  64. 02-09 OneID与用户ID打通
  65. 02-10 数据模型评审
  66. 02-11 Kimball vs Inmon
  67. 02-12 数仓建模实战总结
  68. 02-13 分区策略深度指南
  69. 02-14 数据生命周期管理
  70. 02-15 幂等设计
  71. 02-16 中间表治理
  72. 02-17 数据倾斜
  73. 02-18 数据质量监控
  74. 02-19 数据血缘
  75. 02-20 面试项目表达技巧
  76. 16-07 MapJoin广播了50万行的维度表,作业反而更慢了——Broadcast Join的正确姿势
  77. 18-01 请介绍一下你做过的数仓项目——开场 2 分钟决定了面试官对你的第一印象
  78. 18-02 你们数仓分几层?每层放什么?——不要再背 ODS/DWD/DWS/ADS 四个词了
  79. 18-03 你们调度怎么做的?——回答『用 DataWorks』就结束那就太吃亏了
  80. 18-04 现场写一个『连续登录 3 天的用户』SQL——窗口函数面试的头牌题
  81. 18-05 一个 SQL 跑了 3 小时——你会从哪里开始排查?
  82. 18-06 数据倾斜怎么解决?——加盐、AQE、两阶段聚合的场景差别
  83. 18-07 维度表设计——什么字段该冗余、什么该 JOIN 进来?
  84. 18-08 宽表设计——什么时候该建宽表?什么时候该拆?
  85. 18-09 拉链表怎么实战?——保留完整历史还不爆炸存储的魔法
  86. 18-10 分区字段选错了会怎样?——一次错误改写要动几百 TB
  87. 18-11 新表上线发现数据错了——你怎么一步步查出来的?
  88. 18-12 T+1 任务突然变成 T+2——你怎么查的?
  89. 18-13 上游 Schema 变了没通知你——怎么防御这种『看不见的故障』?
  90. 18-14 一个 1200 行的 SQL 怎么 code review?——从代码层面看架构能力
  91. 18-15 同一个指标,三个部门三个数——你怎么处理?
  92. 18-16 元数据管理怎么做?血缘到底有什么用?
  93. 18-17 Hive 迁 Spark SQL 怎么做?——百台集群、千个作业、零故障的迁移方案
  94. 18-18 实时数仓要不要建?——别急着上 Flink,先问这三个问题
  95. 18-19 请用 STAR 讲一个你做过最复杂的项目——别把 STAR 讲成流水账
  96. 18-20 最后 5 分钟『你有什么想问我的吗』——反问环节才是真正的 1 vs
  97. 20-01 面试官说「介绍一下你的数仓项目」——怎么用3分钟讲清楚?
  98. 20-02 离线数仓分了ODS/DWD/DWS/ADS四层,面试官问每层到底干什么——你能说清楚吗?
  99. 20-03 实时数仓也要分层吗?跟离线分层完全不一样——实时分层怎么做?
  100. 20-04 Lambda还是Kappa?两套链路维护成本太高了——架构选型怎么决策?
  101. 20-05 离线T+1跑了一年,老板突然要实时大屏——怎么加实时链路不翻车?
  102. 20-06 实时和离线的数据对不上,业务方炸了——口径一致性怎么保证?
  103. 20-07 维度表离线和实时都要用,维护两份又怕不一致——维度服务怎么设计?
  104. 20-08 每天TB级数据灌进来,Binlog+日志+埋点全要——数据接入层怎么设计?
  105. 20-09 DWD层清洗了什么?面试官说你只会去重和过滤——清洗规则怎么管理?
  106. 20-10 DWS汇总层20+张表,有些根本没人用——怎么避免过度建设?
  107. 20-11 拉链表跑了半年越来越慢,从20分钟涨到2小时——SCD Type2怎么优化?
  108. 20-12 业务方说'这个数跟我算的不一样'——指标管理体系怎么建?
  109. 20-13 离线作业300+,凌晨3点告警把我叫醒——任务调度怎么治理?
  110. 20-14 数据质量出了事故,下游报表全错了——质量监控体系怎么建?
  111. 20-15 Flink作业挂了重启后数据重复了——Exactly-Once到底怎么保证?
  112. 20-16 实时大屏要秒级刷新,但Flink窗口是1分钟——怎么做到'看起来实时'?
  113. 20-17 出海业务覆盖10+国家,数据跨多个时区——时区问题怎么处理?
  114. 20-18 埋点事件1000+,数据质量一塌糊涂——埋点治理怎么从混乱到标准化?
  115. 20-19 面试官问'为什么选Doris不选ClickHouse'——技术选型怎么讲才有说服力?
  116. 20-20 面试最后一个问题:'你这个项目最大的难点和亮点是什么?'