Netflix · Primly 社区

Netflix data engineer 面试:pipeline 和 SQL,他们问了这些

analyst_ana (Primly starter) · 6 条回复

我今年早些时候走完了 Netflix data engineer 的 loop,面的是 senior 的 DE 岗。分享一下,因为网上关于这个 loop 的信息比他们 SWE 流程少太多。

总轮次: phone screen + 4 轮技术面 + culture contribution

核心技术方向:

SQL: 有两轮 SQL 很重,而且是真的重。Netflix 用 Presto/Trino 和 Spark SQL。我被问到的题需要 window function、lateral join、以及在聚合里处理 NULL 传播。有一题是写一个 query 找出用户在一次 session 过程中 streaming 质量变差的情况,这题同一个 query 里既要 self-join 又要 window function。我做 DE 7 年了,这轮也挺难。

pipeline 设计 / 架构: 让我设计一个 batch pipeline,每天 ingest 10TB+ 的事件数据,转成 analytics 可用的形式,并且处理 late-arriving record 和 schema evolution。他们在 late-arriving 那块问得很深:一个事件晚到 48 小时你怎么处理?你的 pipeline 会重跑吗?成本是什么?你怎么做这个决策?这非常贴近 Netflix 的真实问题场景,他们要处理全球设备上报的数据,网络状况差异很大。

数据建模: 有一轮专门聊维度建模和 slowly changing dimension。我被要求设计一个数据模型,用来跟踪用户内容偏好随时间的变化,同时要处理 plan tier、地理位置、设备类型的变化。面试官想知道每个维度我会用哪种 SCD type,以及原因。

工具熟练度: Spark、Airflow、dbt 在讨论里自然会出现。我没被要求写 Spark 代码,但会问 partition 策略、shuffle 优化、以及你怎么调一个 Spark job 的 OOM。

给准备的人一句话: SQL 比你想的更难。练一下真正兼容 Presto 的 window function。pipeline design 需要体现运营成熟度,不只是画架构图。data modeling 看起来老派,但 Netflix 的 analytics infra 很深,他们很在意。

由 AI 翻译,查看原文

6 条回复

infra_ines (Primly starter)

延迟到达记录这个问题是经典题,而且确实很难。他们有问 watermarking、event time vs processing time 吗,还是更偏运维层面(比如重跑窗口之类)?

由 AI 翻译,查看原文

de_derek (Primly starter)

他们是从运营角度来问的:什么时候触发 reprocess,怎么决定成本和准确率之间的取舍。我提到 watermarking 的时候他们也有接话,但重点在业务决策上,不在 Flink/Kafka Streams 的实现细节。

由 AI 翻译,查看原文

analyst_ana (Primly starter)

DE loop 和 DS loop 差别有多大?我现在是 data analyst,想搞清楚在 Netflix 应该主攻哪条 track。

由 AI 翻译,查看原文

de_derek (Primly starter)

侧重点差很多。DE = pipelines、架构、为 ETL 目的服务的 SQL。DS = 统计、实验设计、为分析目的服务的 SQL。SQL 技能有重叠,但深度不同。如果你是 analyst,我可能会建议优先走 DS 而不是 DE,除非你已经在写 production pipelines 了。

由 AI 翻译,查看原文

sre_sol (Primly starter)

每天 7TB 的 event ingestion 还带 late arrivals,听起来像 Kafka/Flink 的问题,但你说是 batch。他们这种量级不做 streaming pipelines 吗?

由 AI 翻译,查看原文

de_derek (Primly starter)

他们两种都做。我那次 scenario 设定是 batch,但我讲了 hybrid 的思路。我觉得 interviewer 是在特意考 batch 架构知识,因为那仍然是他们 analytics workflows 的核心。streaming 是 follow-up 才提到的。

由 AI 翻译,查看原文