Data Engineer SQL + Python 面试准备指南:Meta、Google、Amazon、TikTok 常见考法
Data Engineer面试SQL面试Python面试ETL数据管道北美数据工程

Data Engineer SQL + Python 面试准备指南:Meta、Google、Amazon、TikTok 常见考法

面向北美华人候选人的 Data Engineer 面试准备指南:系统讲解 SQL、Python、日志处理、数据管道、ETL、窗口函数、JOIN、数据建模和 pipeline design 的准备方法。

Sam · · 13 分钟阅读

Data Engineer 面试和 SDE 面试最大的区别是:它不是只看算法,而是同时考 SQL、Python、数据建模、ETL、pipeline design、数据质量和业务理解。Meta、Google、Amazon、TikTok、Snowflake、Stripe、DoorDash 这些公司的 DE 面试,常常会在 45-60 分钟里连续考多道 SQL 和 Python 小题,节奏非常紧。

很多北美华人候选人技术基础不差,但准备 DE 面试时容易走偏:只刷 LeetCode,SQL 只会基础 JOIN,Python 只会写算法题,不熟悉日志、表结构、数据质量和 pipeline 场景。结果面试中题目不难,却因为速度、边界和表达不稳而失分。

这篇文章会从 SQL、Python 和 pipeline 三条线拆解 Data Engineer 面试该怎么准备。

DE 面试的常见结构

不同公司流程不同,但技术筛选常见组合是:

  • 20-30 分钟 SQL,2-4 道题
  • 20-30 分钟 Python,2-4 道题
  • 简短项目 / pipeline 追问
  • onsite 中加入 data modeling、ETL design、system design、behavioral

有些公司节奏非常快,平均 5-8 分钟就要完成一道题。你没有太多时间慢慢试错,所以必须提前形成题型反射。

SQL:窗口函数是分水岭

Data Engineer SQL 面试通常不会只考 GROUP BY。你至少要熟练掌握:

  • JOIN:inner、left、self join、anti join
  • aggregation:COUNT DISTINCT、分组统计、条件聚合
  • window function:ROW_NUMBERRANKDENSE_RANKLAGLEAD
  • CTE:把复杂逻辑拆成可读步骤
  • date handling:按天、周、月聚合,rolling window
  • retention / funnel / cohort
  • missing data 和 duplicate data
  • query optimization:partition、index、pre-aggregation

如果面试官问“找 top 3 books with highest lifetime value with more than 10 copies”,它不只是排序题。你要先搞清楚 lifetime value 的定义、copy count 从哪张表来、是否需要过滤已下架或未归还记录,然后再写查询。

SQL 答题节奏

一个稳定流程是:

  1. 先复述业务问题。
  2. 确认表结构和 grain。
  3. 说明需要哪些 JOIN 和过滤。
  4. 用 CTE 分步骤写。
  5. 最后检查 duplicate、NULL、日期边界。

不要一上来写嵌套很深的 SQL。DE 面试官通常更喜欢可读、可 debug 的查询。

Python:更像数据处理,不是算法竞赛

DE Python 面试常见题包括:

  • 解析 log entries,判断事件是否合法
  • 根据嵌套数组或字典聚合数据
  • 计算用户分数、排名、状态
  • 处理 closed / open locations 这类层级数据
  • CSV / JSON parsing
  • streaming aggregation
  • deduplication 和 validation

这类题通常不需要复杂算法,但需要你写得快、清楚、边界稳。

常用数据结构:

  • dict:按 user_id、book_id、office_id 聚合
  • set:去重、状态是否合法
  • defaultdict:分组统计
  • Counter:频次
  • deque:滑动窗口
  • list of tuples:排序和时间序列

Log validation 怎么准备

日志题很常见。比如给一串事件,判断登录、登出、借书、还书、进入、离开是否合理。核心是维护状态集合。

答题时要先定义状态:

  • 当前哪些用户 active
  • 哪些资源已被占用
  • 哪些事件顺序非法
  • 重复事件如何处理
  • 缺失事件是否直接 false

不要把所有 if 写得很散。可以写成:

for event in logs:
  parse event
  validate transition
  update state
return final_state_is_valid

这类题的 edge cases 比算法更重要。

SQL + Python 的组合考法

很多 DE 面试会先用 SQL 查表,再用 Python 做后处理,或者反过来让你解释一个 pipeline 应该在哪一层处理。

你需要能回答:

  • 哪些逻辑应该放 SQL,哪些放 Python?
  • 如果数据量很大,Python 单机是否撑得住?
  • 是否可以预聚合 summary table?
  • 如果要每天跑,如何做 incremental processing?
  • 如果数据有 late arrival,怎么处理?

一个简单原则:

  • 大规模过滤、JOIN、聚合优先放在 warehouse / Spark
  • 复杂业务规则、API 调用、文件处理可以放 Python
  • 需要复用的核心指标最好沉淀成 model 或 summary table

Data Modeling:先搞清楚 grain

DE 面试里最容易被忽略的是 grain。表的每一行到底代表什么?

例如订单表可以是一行一个 order,也可以是一行一个 order item。事件表可以是一行一个 user event,也可以是一行一个 session summary。grain 不清楚,SQL 很容易重复计数。

回答 data modeling 时,先说:

  • fact table 是什么
  • dimension table 是什么
  • primary key / foreign key 是什么
  • 一行数据的粒度是什么
  • 时间字段有几个:event_time、ingestion_time、processing_time
  • 是否支持 slowly changing dimension

如果你能主动指出 grain 和 duplicate risk,面试官通常会觉得你是真做过数据工程。

Pipeline Design:不要只说 Airflow + Spark

Data Engineer system design 不是背工具名。你要讲数据如何从 source 到 sink:

  1. Source:DB、Kafka、API、log、file
  2. Ingestion:batch、stream、CDC
  3. Storage:raw、staging、curated、warehouse
  4. Transform:SQL、Spark、dbt、Flink
  5. Quality:schema check、null check、dedup、freshness
  6. Orchestration:Airflow、Dagster、cron
  7. Monitoring:SLA、row count、latency、error rate
  8. Consumers:dashboard、ML feature、downstream service

面试官经常会追问:如果数据迟到怎么办?如果某天 row count 突然少 80% 怎么办?如果上游 schema 变了怎么办?如果 backfill 需要重跑半年数据怎么办?

这些问题比“用什么工具”更重要。

北美华人候选人的常见失分点

第一,SQL 写得对但讲不清业务含义。
DE 面试不是 SQL 考试。你要解释指标定义、表关系和边界。

第二,Python 写成 LeetCode 风格。
变量名短、逻辑挤在一起、没有状态解释。DE Python 更看重可读性。

第三,不问 grain。
很多 SQL 错误来自重复计数。面试前必须养成问 grain 的习惯。

第四,不会讲数据质量。
真实 DE 工作里,数据质量和监控很重要。面试中主动提到 freshness、completeness、dedup、schema drift,会加分。

两周准备计划

第 1-4 天:SQL 高频题

每天练 5 道 SQL:window function、self join、retention、funnel、top-k、anti join、rolling metrics。每道题都用 CTE 写清楚。

第 5-7 天:Python 数据处理

练 log validation、nested aggregation、CSV / JSON parsing、sliding window、dedup、state machine。每道题都加 edge cases。

第 8-10 天:数据建模和 pipeline

练订单、支付、用户行为、推荐系统、内容互动、实验分析。每题都说清楚 fact / dimension、grain、quality checks。

第 11-14 天:完整 mock

做一轮 60 分钟 DE technical screen:3 道 SQL + 3 道 Python。再做一轮 pipeline design mock。

相关阅读

需要 DE 面试专项辅导?

Data Engineer 面试最难的是 SQL、Python、pipeline 和业务解释同时在线。Interview Coach Pro 可以帮你做 SQL/Python technical screen mock、数据建模、ETL design 和项目 deep dive。

👉 查看 Data Engineer 面试辅导服务
👉 预约一次面试准备咨询

S

关于作者

Sam 是 Interview Coach Pro 的技术面试教练,长期辅导在美国求职的中文候选人准备 SDE、System Design、Behavioral、Data Engineer 和 ML Engineer 面试。

本文基于匿名面试复盘、公开岗位要求和一对一辅导中的高频问题整理,发布前会检查内容结构、术语准确性和可操作性。你也可以查看我们的 辅导团队辅导方法

相关面试辅导

如果你正在准备类似面试,可以直接从下面的专项辅导开始。

准备好拿下下一次面试了吗?

获取针对你的目标岗位和公司的个性化辅导方案。

联系我们