数据工程非单一角色。Bronze/Silver层需软件工程基础,Gold层重业务分析。领导者应针对各层级需求招聘,而非寻找“万金油”式人才,以避免项目失败并构建弹性数据平台。
译自:Platform vs. Analytics Engineer: Why Your Team Needs Both
作者:Ashok Singamaneni, Gaurav Nanda
领导者常常假设一名数据工程师可以胜任所有工作——从原始数据摄取到精美仪表板。正是这种假设,导致许多数据计划在启动之前就已失败。
数据工程并非单一角色,而是跨勋章架构(Bronze、Silver 和 Gold)的一系列不同职责。将其视为一项单一工作通常会导致管道中断、团队沮丧和项目停滞。
Ashok 在数据领域摸爬滚打多年,领导了云迁移项目,并亲身目睹了数据工程技能方面的差距。他看到,渴望拥有云经验的领导者会招聘具有特定工具(如 BigQuery、Snowflake、Databricks 或 Airflow)经验的人才,结果却发现这些新员工在构建可靠平台所需的基础软件工程方面力不从心。
另一方面,Gaurav 领导了平台工程团队,负责从零开始构建大规模数据平台。他的团队主要由平台工程师组成,擅长构建健壮的数据摄取管道,但在数据建模和业务逻辑方面遇到了瓶颈,这揭示了问题的另一面。
总而言之,我们从不同角度获得的经验揭示了一个关键分歧:构建可靠数据基础设施(Bronze 和 Silver 层)所需的技能与交付业务洞察(Gold 层)所需的技能截然不同。
Bronze 和 Silver 层的软件工程基础
Bronze 层是数据以最原始形式落地的位置:杂乱的 JSON 转储、Kafka 流或特定领域的馈送,例如医疗保健 HL7 消息。Silver 层通过去重、模式强制和血缘追踪,将这种混乱转化为可信、受控的数据。
这些层需要生产级软件系统的严谨性:
- 可靠的数据移动: 理解变更数据捕获 (CDC)、稳定的摄取管道以及消息系统的正确配置。
- 健壮的测试: 为转换编写单元测试,为端到端流程编写集成测试,而不仅仅是简单的验证脚本。
- 自动化: 管理基础设施即代码 (IaC) 并通过 CI/CD 管道部署,以避免隐藏的手动配置。
- 可观测性: 实施深度日志记录和血缘追踪,从而能够快速检测、诊断和从故障中恢复。
从 Ashok 领导迁移的经验中,出现了一个常见模式。许多数据工程师在 PySpark 和 SQL 方面精通 Python,但他们缺乏编写单元测试、设计复杂框架或处理基础设施自动化的技能。 当项目开始时,这些工程师通常会花费数月从零开始学习 IAM、IaC 和 CI/CD,导致代价高昂的错误和大量的技术债务。这并不意味着他们是糟糕的工程师;这意味着他们不适合构建基础的 Bronze 和 Silver 层,因为这些层需要工程纪律。
反之,Gaurav 的经验展示了问题的另一面。他的平台工程师团队出色地构建了一个平台,使用 CDC 和 Kafka 将数据可靠地导入到 Bronze 层。但从那里开始的旅程却很艰难。他们面临着 dbt 和 SQL Mesh 等工具的挑战,并努力应对星型模式和血缘保留等数据建模概念。 进展有限,直到他们引入了专门的数据工程师和分析师来帮助他们驾驭业务逻辑和分析领域。
这种对比强化了我们的观点:Bronze 和 Silver 层需要具备扎实软件工程基础的工程师,而 Gold 层则需要一套截然不同的技能。
这是平台工程师(或专门从事数据的软件工程师)的领域。他们的世界是分布式系统、可靠性和自动化。他们确保数据“工厂”每次都能准时运行。
Gold 层以业务为本的特性
当数据到达 Gold 层时,与混乱的斗争基本结束了。现在,它关乎讲述一个故事。Gold 层是将经过清理和治理的数据转化为业务可用的洞察的地方。在这里,模型捕捉收入、客户流失、产品使用情况和营销关键绩效指标,从而推动实际决策。
这里的技能有所不同:
- 成功不是通过健壮的 CI/CD 管道来衡量,而是通过回答业务问题的速度和准确性来衡量。
- SQL 流畅性、BI 工具专业知识和商业敏锐度占据中心地位。
- 要在这一层取得优异成绩,需要设计与业务看待世界方式相匹配的模型和指标的能力。
- 仅由优秀的软件工程师组成的团队常常在这里遇到困难,因为 Gold 层除了技术技能外,还需要领域知识和分析直觉。
当工程师更像具有工程纪律的分析师,而不是试图涉足分析的工程师时,Gold 层就会蓬勃发展。这个角色通常被称为分析工程师。他们是数据分析师和软件工程师的混合体,使用 dbt 等工具将业务逻辑转化为可靠、文档完备的数据模型。
为什么领导者必须停止招聘一刀切的数据工程师
这就是领导力发挥作用的地方。太多公司将数据工程视为单一角色,期望一个人能处理原始事件流、构建可靠管道并设计业务仪表板。这种期望注定会让团队失败。
一个更好的方法是根据技能概况来思考。发现这些差异最简单的方法是在招聘过程中,通过你提出的问题类型。
Bronze/Silver 层(平台工程师)的面试问题可能包括:
- 你将如何设计一个幂等数据摄取管道?
- 你将如何测试一个复杂的从多个来源提取数据的转换?
- 请讲述一次你不得不调试 Kafka 或 Spark 等分布式数据系统的经历。问题是什么,你是如何解决的?
Gold 层(分析工程师)的面试问题可能包括:
- 产品团队希望更改“每日活跃用户”的定义。请向我介绍你将使用的技术步骤和沟通计划。
- 这里有一个混乱的数据集和一个业务问题。你将如何在 SQL 中建模以可靠地回答这个问题?
- 你如何平衡对“完美”数据模型的需求与业务当下对“足够好”答案的需求?
最佳的团队结构反映了这种划分。一个由平台工程师组成的中央数据平台团队,拥有 Bronze 和 Silver 层作为可靠的服务。分析工程师要么在该团队中,要么嵌入到产品或营销等业务部门中,在那里他们与利益相关者密切合作以构建 Gold 层。关键是这些角色、职责和职业发展路径是不同的,领导者必须这样对待它们。
构建互补数据团队以实现持久价值
数据工程并非单一角色。Bronze 和 Silver 层需要软件工程的严谨性,而 Gold 层则依赖于业务背景和分析专业知识。通常,领导者会招聘一个人来包揽所有工作,结果却导致差距、延迟和技术债务。
领导者越早停止寻找“独角兽”并开始构建互补团队,他们的数据平台就能越早可靠地扩展并交付持久的业务价值。为不同层级而非“独角兽”招聘人才的领导者,才能构建有弹性平台和有能力的团队。这种选择是数据混乱与数据成为真正竞争优势之间的区别。