DE • SQL • Data Modeling • Analytics Engineering

DE SQL / Data Modeling 面试:窗口函数、增量表和指标层怎么准备

整理 Data Engineer SQL 和数据建模面试的高频题型,覆盖窗口函数、去重、SCD、事实表/维表、增量更新、metrics layer 和数据消费方契约。

DE SQL / Data Modeling 面试:窗口函数、增量表和指标层怎么准备 备考指南与高频考点分析
DE SQL / Data Modeling 面试:窗口函数、增量表和指标层怎么准备 备考指南与高频考点分析

💡 核心要点 (Key Takeaways)

  • DE SQL 面试要同时解释业务口径、表设计和增量计算,不只是写查询。
  • Data modeling 要能讲事实表、维表、SCD、主键、分区、去重和消费方契约。
  • 指标层面试要关注口径一致、血缘、版本管理、回填和变更通知。

免费获取轮次诊断正在备战 Data Engineer (DE) 面试?免费获取轮次诊断:发你的当前轮次与倒计时,我们先定位卡点,再决定下一步。

DE SQL 和 DS SQL 的区别

DS SQL 更偏分析和业务结论,DE SQL 更看重数据链路和可维护性。面试官会追问这张表怎么生成、是否增量、主键是什么、如何去重、是否会重复计数、历史口径变化怎么处理。

必须练熟的 SQL 题型

窗口函数、去重、留存、漏斗、归因、rolling metric、sessionization、top k、递归层级和 SCD 是高频题型。每道题都要准备 event time、processing time、NULL、重复事件和 late arrival 的边界解释。

  • 窗口函数:rank、lag/lead、rolling sum、first/last value。
  • 去重:业务主键、event id、source update、latest record。
  • SCD:valid_from / valid_to、current flag、历史回放。
  • 增量:watermark、merge/upsert、partition overwrite、幂等。

数据建模回答框架

先明确业务实体和查询模式,再设计 fact / dimension / bridge 表,最后讨论分区、聚簇、主键、更新频率和质量校验。不要一上来画一堆表,要让面试官看到你从使用场景出发。

Metrics Layer 怎么讲

指标层的核心是统一口径。要讲 metric definition、owner、version、lineage、dashboard / API 消费、backfill、变更公告和权限。很多候选人只讲 dbt model,却不讲指标口径治理,这是明显短板。

💡 如果目标就是 Data Engineer (DE) 岗,按岗位整理的题型分布、轮次路线与准备清单在这里。

Data Engineer (DE) 面试辅助 →

项目深挖要突出 owner 意识

DE 项目不要只说用了 Airflow、Spark、Snowflake。更有效的是讲原链路的问题、你做的设计、失败和回填、数据质量提升、成本或延迟下降,以及下游团队如何受益。

查询性能和成本怎么讲

DE SQL 轮里「这个查询怎么变快」是高频追问,答案要分层。第一层数据访问:查询是否全表扫描?有没有按事件日期分区并命中分区过滤?过滤列有没有做 clustering?这两点通常能带来数量级的成本差异。第二层计算:能不能把全量重算改成增量 merge?窗口函数能不能先预聚合再 join?去重能不能放到 join 之前做,减少参与 shuffle 的行数?第三层工程:结果是物化成表还是每次重算?增量任务是否幂等?口径变更后回填怎么调度、怎么校验?面试官想看到的不是你能背出 clustering key 这个词,而是你能从数据量和查询模式推理成本。练习方法:挑一道你写过的题,回答三个问题——现在这个查询的成本瓶颈在哪一步、如果数据量涨 10 倍先坏在哪、第一步优化动作是什么。能把这三个答出来,SQL 回答就从「会写」变成「能在生产跑」。

题目卡住时怎么表达

SQL 轮几乎一定会有一道你一时写不出来的题。面试官这时看的不是你最终解出来没有,而是你卡住时的工作方式。稳定的做法是四步:第一步,用自己的话复述题目,和面试官确认分母、时间窗口和去重口径——很多「无解」其实是口径歧义;第二步,缩小范围,先解决一天或一个用户能成立的子情况,再扩展到全量;第三步,把推理说出口,比如「我现在在确认重复事件是源头就有还是 merge 逻辑引入的」,口述推理本身就是评分点;第四步,主动要 hint,但拿到 hint 后要解释为什么这一步有效,而不是直接写进代码。两个明显减分行为:沉默盯屏超过五分钟;面试官刚开口你就动手写。练习方法:mock 时故意挑没见过的题,复盘时只问三个问题——我卡在哪一步、最早出现的信号是什么、我有没有把推理说出口。

高频追问和应答要点:为什么不建大宽表

模型讲完之后,追问基本来自固定题库,值得提前备好答案。追问一「为什么不直接建一张大宽表」:答 trade-off——宽表用存储换查询速度,适合高频、低延迟的热查询;但如果每个分析维度组合都建宽表,存储成本和维护成本会失控,判断标准是查询频率乘以单次查询成本,不是习惯。追问二「上游数据迟到或缺失怎么办」:三层答——调度层靠依赖阻塞加 SLA 告警;查询层做 freshness 检查,明确展示数据截至哪个时间点;口径层把迟到数据回填到 correction 表或做幂等 merge,回填本身也是一个带校验的调度任务。追问三「怎么验证数据质量」:列四个检查——行数波动、主键唯一、空值率、分布漂移,并说明各查哪类错误。追问四「这个 pipeline 在延迟谱系里位于哪」:能把它放到 T+1 批处理、微批、实时流这个谱系上,并说明为什么这个业务不需要更贵的那档。练习方法:给四个追问各写一句标准答案,mock 时练到 60 秒内答完。

Editorial & Verification

📋 资料来源与审校说明

首次发布,提供面试准备方法、题型拆解和复盘建议。 2026-08-21:新增「查询性能和成本怎么讲」「题目卡住时怎么表达」「高频追问和应答要点:为什么不建大宽表」三个 section,补充可执行备考方法。

  • 公开面经信号和岗位能力模型:用于归纳题型和常见追问,不复刻候选人私人信息。
  • Interview Support Pro 模拟面试复盘:用于总结候选人在表达、项目深挖和 follow-up 中的高频卡点。
DW
Data Engineering
David Wang·前 Netflix / Databricks Staff DE

8 年+数据工程经验,曾在 Netflix 数据平台团队和 Databricks 担任 Staff DE,主导过日处理 TB 级数据的基础设施项目,擅长把抽象的 DE 面试题拆解为 pipeline 设计、容量估算、容错策略等可训练动作。

累计辅导 500+ 数据工程候选人Stanford, CS 硕士
本文由 David Wang 审校与整理

📚 推荐延伸阅读 (Related Guides)

DE 面试考什么 2026:SQL、Pipeline、Data Modeling 全轮次拆解

回答「DE 面试考什么 2026」:SQL、Pipeline Design、Data Modeling 与 DE Coding 的题型方向与核心方法,常见挂点与 7/14/30 天准备路线,适合 Data Engineer、Analytics Engineer 等数据岗位候选人。

Snowflake Data Modeling:Warehouse 和 Metrics Layer

Snowflake Data Modeling 深度准备指南,覆盖 raw/staging/mart、SCD、schema evolution、指标层、查询成本、权限和数据质量。

Netflix DE 面经 2026:Pipeline、Spark 和 Data Platform

Netflix DE 面经 2026:拆解 SQL(metric 口径、去重迟到事件)、数据工程 Coding 与 Pipeline / Data Platform SD 考点,附 take-home 交付要求和常见挂点。

💼 完整服务与价格我们提供 OA 代写($199 起)VO 辅助($299 起)VO 代面($499 起)30 分钟免费咨询:按目标岗位、公司与轮次匹配具备相关经验的导师,覆盖 Coding、System Design、ML Design 与 BQ;具体导师与背景以接单前书面确认为准。

查看服务详情 →
已复制微信号!