跳转到主要内容
Interview Pilot Logo

Interview Pilot

AI
Interview Pilot
面试 Copilot使用方法用户评价价格
登录

面试指南

数据工程师面试指南

围绕 SQL、数据建模、ETL 管道、批处理与流处理、Spark、任务编排、数据仓库、数据质量和系统设计,准备数据工程师面试。

阅读约 35 分钟

21 道题

数据工程师

更新于 2026年5月

查看全部Data Engineer Questions

概览

数据工程师面试考查你能否构建可靠的数据系统:接入原始数据、清晰建模、高效转换、保障质量、编排管道,并让分析师、数据科学家、产品和业务团队能够使用数据。

4–6

常见面试轮数

45–75 分钟

技术面试时长

6 项以上

核心数据工程技能

5–8 周

建议准备时间

数据工程师面试官关注什么

SQL 深度:能否准确高效地完成表关联、窗口计算、去重和增量处理?

数据建模:能否为真实场景设计表、模式、粒度、分区和缓慢变化维度?

管道设计:能否构建可靠、可观测、出现故障后可恢复的批处理与流处理流程?

分布式系统判断:能否分析 Spark、分区、数据混洗、状态、延迟和吞吐量?

数据质量:能否防止错误数据悄悄进入仪表板、模型和生产功能?

平台思维:能否平衡成本、性能、数据时效性、治理、血缘和开发体验?

生产责任:能否排查故障、安全回填、管理模式变更,并沟通影响?

数据工程是数据的可靠性工程

优秀的数据工程师不只是把数据从 A 移到 B,还会让数据可信、易理解、易发现、可扩展,并在故障发生后可恢复。

数据工程师面试流程

数据工程师面试通常涉及 SQL、Python 或编程、数据建模、管道设计、系统设计、Spark 或分布式处理、故障排查及行为面试。

数据工程师面试的常见环节

1

招聘人员初筛:确认岗位匹配度、技术栈、薪酬、工作地点和行业经验。

2

招聘经理面试:讨论数据管道负责范围、建模经验、生产故障,以及与分析或产品团队的合作。

3

SQL 面试:考查表关联、窗口函数、去重、增量转换、同期群类查询和性能意识。

4

编程面试:通常以 Python 为主,考查数据结构、文件处理、API、解析或管道式转换。

5

数据建模面试:设计数仓表、事件模式、事实与维度模型,或数据湖仓布局。

6

系统设计面试:设计数据接入、ETL/ELT、流处理、任务编排、监控、数据血缘及质量保障系统。

7

行为面试:评估责任感、事故响应、相关方沟通、应对模糊问题和跨职能交付。

分析型数据工程师

平台/流处理数据工程师

主要关注点

数仓建模、dbt/SQL 转换、报告数据质量和业务指标

数据接入基础设施、流处理、分布式计算、可靠性和平台规模

常见面试内容

SQL、维度建模、相关方需求和管道编排

系统设计、Spark/Flink/Kafka、状态、分区、扩展和生产事故

优秀表现

建立可信模型,让分析师和业务团队放心使用

设计能处理大数据量、低延迟和故障的韧性系统

常见错误

建模时没有明确数据粒度、责任归属或指标定义

设计流处理架构时忽略仅一次处理、重放、状态或监控

明确自己申请的是哪类数据工程岗位

以数仓为重点的分析工程岗位,与流处理平台数据工程岗位的面试并不一样。应根据职位描述中的技术栈和职责安排准备重点。

SQL 与数据转换面试题

数据工程师 SQL 面试通常关注正确性和生产可用性:数据粒度、去重、增量逻辑、窗口函数、分区和性能。

数据建模与数仓面试题

数据建模面试考查你能否设计清晰、可扩展、兼顾成本,并适用于分析、机器学习和运营报告的数据模式。

需要掌握的数据建模概念

事实表

存储可度量业务事件或交易的表,例如订单、支付、会话或发货。

维度表

为事实提供描述性背景的表,例如客户、商品、门店、营销活动或日期。

数据粒度

每行代表的层级。构建事实、维度、指标或关联前,必须明确粒度。

缓慢变化维度

记录属性随时间变化的维度设计,例如客户细分、地址或账户负责人。

数据管道设计与任务编排

数据管道面试考查你能否设计幂等、可观测、可恢复,且符合数据时效性与成本要求的工作流程。

可靠的数据管道设计步骤

1

明确源系统、数据量、时效要求、下游使用者和可接受的故障程度。

2

选择接入方式:批量抽取、变更数据捕获(CDC)、事件流、API 拉取、文件投递或托管连接器。

3

定义落地区、原始数据存储、模式处理和重放策略。

4

按清晰的层次转换数据:原始层、清洗/暂存层、模型层和服务用数据集市。

5

确保管道具有幂等性,重跑不会造成重复或数据损坏。

6

加入数据质量检查、血缘记录、日志、提醒、监控指标和负责人信息。

7

规划历史回填、模式演进、迟到数据、重试、部分失败和成本控制。

批处理与流处理系统

批处理与流处理面试题考查你是否理解延迟、吞吐量、顺序、状态、窗口、重放,以及简单架构与实时架构之间的运维取舍。

批处理

流处理

适用场景

周期性报告、历史回填、大规模转换、成本较低的分析

实时功能、提醒、欺诈检测、实时仪表板和低延迟决策

主要取舍

延迟较高,但运维更简单,也更容易重放

延迟较低,但状态、顺序和故障处理更复杂

常见工具

Airflow、dbt、Spark 批处理、Snowflake、BigQuery、Databricks

Kafka、Flink、Spark Structured Streaming、Kinesis、Pub/Sub

故障风险

迟到数据、部分加载、运行时间过长、回填成本

重复、乱序事件、检查点、状态增长和仅一次处理语义

Spark 与分布式处理面试题

Spark 与分布式处理面试题考查你是否理解分区、数据混洗、数据倾斜、缓存、表关联、文件格式,以及作业为何失败或成本过高。

数据质量与可观测性

数据质量面试题考查你能否在错误数据破坏仪表板、模型、产品功能、财务报告或面向客户的系统前发现问题。

示例解析

生产数据事故处理清单

管理层收入仪表板缺少昨天的数据,而两小时后就要开管理层会议。

1

快速排查

检查管道状态、源数据时效、数仓表分区、失败任务,以及问题只影响收入还是所有仪表板。

2

缓解影响

如果源数据存在,重跑受影响的分区;如果没有,就在仪表板标注,并提供带有局限说明的最新可用数字。

3

及时沟通

告知相关方缺少什么、哪些决策受影响、预计解决时间,以及数字之后是否可能变化。

4

防止复发

增加数据时效提醒、上游源检查、服务级别监控和收入管道故障运行手册。

结果

通过技术恢复与清晰沟通并重,维护相关方对数据的信任。

数据工程系统设计

数据工程系统设计面试评估架构判断:数据源、接入、存储、转换、服务、质量、血缘、治理和成本。

行为面试与协作题

数据工程行为面试重点关注生产责任、事故响应、跨职能沟通、优先级,以及能否建立让其他团队信任的系统。

数据工程师备考策略

准备数据工程师面试时,应结合 SQL、数据建模、Python、管道设计、分布式系统、云数仓概念,以及生产事故经历。

六周数据工程师面试准备计划

1

第 1 周:深入练习 SQL。复习表关联、窗口函数、去重、增量模型、同期群、分区和性能排查。

2

第 2 周:数据建模。练习事实表、维度表、粒度、缓慢变化维度、事件模型、数仓数据集市和指标定义。

3

第 3 周:数据管道。练习 ETL/ELT 设计、幂等性、编排、历史回填、迟到数据、模式变更和质量检查。

4

第 4 周:分布式处理。复习 Spark、数据混洗、分区、倾斜、文件格式、流处理概念,以及成本与性能取舍。

5

第 5 周:系统设计。练习产品分析平台、CDC 接入、特征存储、流式欺诈管道和数仓架构。

6

第 6 周:模拟面试与经历准备。准备管道事故、数据质量、相关方沟通、优先级及平台改进案例。

按数据工程岗位方向重点准备

分析工程:重点准备 dbt、SQL 模型、语义层、指标定义、商业智能可靠性和相关方工作流程。

平台数据工程:重点准备接入系统、任务编排、血缘、治理、访问控制和开发体验。

流处理数据工程:重点准备 Kafka、Flink/Spark 流处理、状态、窗口、重复、顺序、重放和延迟。

机器学习数据工程:重点准备特征管道、特征存储、时间点正确性、训练数据和监控。

云数仓工程:重点准备 Snowflake、BigQuery、Databricks、分区、聚簇、成本控制和工作负载管理。

不要只谈工具

面试官关心的并不是你能否说出 Airflow、dbt、Spark 或 Kafka 的名字,而是你是否理解可靠性、数据正确性、取舍和故障模式。

关键要点

出色的数据工程师面试回答兼具准确的 SQL、清晰的数据建模、可靠的管道、分布式系统判断和生产责任感。优秀候选人能证明自己可以建立让其他团队信任的数据系统。

在面试中练习这些问题

面试时,Interview Pilot 会实时提供 Copilot 回答建议,帮助你清晰地回答这些问题。

免费试用 Interview Pilot