Last chance! 50% off DataCamp Premium
Sale ends in
数据科学家和数据工程师是既有区别又相互关联的两类职业。二者都致力于管理并从数据中提炼价值,但其职责范围、技能组合与目标往往不同。
几年前,业界的主要关注点还在于从数据中获取洞见。但随着行业成熟,尤其是人工智能的进步,“输入垃圾,输出垃圾”的数据管理铁律愈发重要。
这种观念的转变将数据工程师的角色推到了台前,凸显了他们与数据科学家之间的协作共生关系。
本文将细致探讨这两类角色的差异,包括他们的职责、教育背景、使用的工具等。
想直观了解,请查看我们的信息图:数据工程 vs 数据科学。

数据工程师负责开发、构建、测试和维护架构,如数据库与大规模处理系统。相较之下,数据科学家则清洗、整理并组织(大)数据。
您或许觉得动词“massage(揉捏)”颇为新奇,但这恰好更直观地反映了数据工程师与数据科学家的差异。
总体来说,双方为将数据转化为可用格式所需投入的精力差异显著。
数据工程师面对的是包含人工、机器或仪器错误的原始数据。数据可能未经校验,含有可疑记录,格式不统一,还可能包含系统特定的编码。
数据工程师需要评估并有时亲自落实改进数据可靠性、效率与质量的方案。为此,他们需运用多种语言与工具来打通系统,或发掘从其他系统获取新数据的机会,从而让这些系统特定编码等信息转化为可供数据科学家进一步处理的数据。
与此密切相关的是,数据工程师必须确保现有架构能够满足数据科学家、业务相关方和公司的需求。
最后,数据工程团队还需为数据建模、挖掘与生产制定数据集处理流程,以便将数据交付给数据科学团队。
在我们的完整文章中,了解更多数据工程师的工作。

数据科学家通常拿到的是经过首轮清洗和处理的数据,他们可以将其输入到复杂的分析程序以及机器学习和统计方法中,为预测性与规范性建模做准备。当然,为构建模型,他们需要围绕行业与业务问题开展研究,并利用来自内部与外部的大量数据来满足业务需求。这有时也包括探索和检验数据以发现潜在模式。
当分析完成后,数据科学家需要向关键利益相关者清晰讲述结果。一旦结果获得认可,他们还需要确保将工作自动化,使洞见能够按日、月或年持续交付给业务方。
显然,双方需要通力协作来整合数据并为关键业务决策提供洞见。二者在技能上有明显重叠,但在行业中正日益分化:数据工程师主要处理数据库系统、数据 API、ETL 工具,并参与数据建模和搭建数据仓库方案;而数据科学家需要掌握统计、数学与机器学习,以构建预测模型。
数据科学家需要了解分布式计算,因为他们需要访问数据工程团队处理后的数据。同时,他们还需能向业务相关方汇报,因此讲故事与可视化能力至关重要。
至于这在数据科学工作流各步骤上的侧重点差异,可参见下图:

技能差异自然会体现在所用语言、工具与软件的不同。以下概览同时包含商业与开源选项。
尽管双方使用的工具很大程度取决于公司对角色的设定,数据工程师常用的工具包括 SAP、Oracle、Cassandra、MySQL、Redis、Riak、PostgreSQL、MongoDB、Neo4j、Hive 和 Sqoop。
数据科学家会使用诸如 SPSS、R、Python、SAS、Stata 和 Julia 等语言来构建模型。毫无疑问,这里最流行的是 Python 和 R。用 Python 与 R 做数据科学时,通常会用到如 R 语言中的 ggplot2(用于精美的数据可视化)或 Python 的数据处理库 Pandas。当然,还有许多其他实用包,如 scikit-learn、NumPy、Matplotlib、Statsmodels 等。
在业界,商业软件 SAS 和 SPSS 也表现不俗,此外,Tableau、Rapidminer、Matlab、Excel 和 Gephi 等也常见于数据科学家的工具箱。
您会再次看到,数据工程师与数据科学家的一个主要区别——对数据可视化与讲故事的重视程度——也反映在这些工具的选择上。
如您所料,Scala、Java 和 C# 是双方的共同语言与工具。

这些语言并非一定是数据科学家与工程师的“心头好”。有人会认为 Scala 在数据工程师中更受欢迎,因为它与 Spark 的集成非常适合搭建大规模 ETL 流。
Java 亦然:目前它在数据科学家中热度有所上升,但总体而言并非日常广泛使用。不过,总的来说,这些语言经常同时出现在两类岗位的招聘启事中。双方也可能共有一些工具,如 Hadoop、Storm 与 Spark。
当然,对工具、语言与软件的比较还需结合具体语境以及您对相关数据科学角色的理解;在某些特定情况下,数据科学与数据工程彼此非常接近,以至于两支团队有时会合并为一体。
至于这是否是个好主意,已经足以单独写一篇文章讨论,不在本文范围之内。
此外,数据科学家与数据工程师可能还拥有共同点:计算机科学背景。该学科对两类职业都很受欢迎。当然,您也会看到数据科学家往往学习过计量经济学、数学、统计学与运筹学。他们通常比数据工程师更具商业敏感度。数据工程师也常来自工程学科背景;很多人曾接受过计算机工程方面的教育。
不过,这并不意味着找不到在此前学习中涉猎运营与商业素养的数据工程师。

总体而言,数据科学行业由来自不同背景的专业人士构成:物理学家、生物学家或气象学家转向数据科学的情况并不罕见。也有许多人从 Web 开发、数据库管理等岗位转行进入数据科学。
在美国,数据科学家的平均年薪为$123,069,范围为 $78k 至 $194k。在其他国家也呈类似趋势,数据科学家的平均薪资至少比本国平均水平高出 30%(在印度,这一比例还要高得多!)。
在美国,数据工程师的平均年薪为 $125,686;在其他国家,平均薪资与数据科学家非常接近。
两类岗位的需求都非常旺盛。撰文时,Indeed 上美国地区列出了 10,000+ 条数据科学家职位与 5,000+ 条数据工程师职位。Spotify、Meta、Amazon、Google 与 Microsoft 等头部公司几乎一直在招聘这两类岗位。

如前所述,岗位与头衔的设立有时是为了反映变化的需求,有时则是为了与其他招聘公司区分开来。
除了对数据管理问题的关注度上升外,公司还在寻求更低成本、更灵活、更可扩展的数据存储与管理方案。他们希望将数据迁移到云上,为此需要构建“数据湖”以补充现有数据仓库,或取代 ODS(操作型数据存储)。
未来几年,数据流将需要重定向与替换,因此对数据工程师的关注与招聘信息数量多年来稳步上升。
自热潮兴起以来,数据科学家岗位一直需求旺盛,但如今公司更倾向于组建数据科学团队,而非寻找集沟通能力、创造力、聪慧、好奇心与技术专长于一身的“独角兽”数据科学家。对招聘方而言,要找到完全符合公司期待的全能型人才并不容易,需求显然超过供给。
有人会认为“数据科学家泡沫”已经破裂。或者说,若非GPT-3 与 GPT-4等 AI 突破横空出世,它可能已经破裂。
有一点在这一切中将始终不变:对热爱数据科学主题的专家的需求会一直存在。这些专家的就业前景非常乐观。例如,美国劳工统计局预测,未来十年每年将有20,800 个数据科学家岗位空缺,从 2023 年到 2033 年预计增长 36%,远高于所有职业的平均水平。对数据工程师岗位的前景同样乐观。

| 方面 | 数据科学家 | 数据工程师 | 相似点 |
|---|---|---|---|
| 主要聚焦 | 分析和解读数据以获得洞见 | 构建与维护数据基础设施 | 以数据支撑决策制定 |
| 职责 | 建模、统计分析与数据故事讲述 | 数据管道构建、ETL 流程与数据仓库 | 协作以确保数据干净、可访问且可用 |
| 核心技能 | 机器学习、统计学、可视化 | 数据架构、数据库管理与云端工具 | 精通编程并能处理大规模数据集 |
| 工具与软件 | Python、R、TensorFlow、PyTorch、Tableau、Power BI | Python、Apache Spark、Kafka、Airflow、dbt、Snowflake、Databricks | 共享使用 Spark、Hadoop 与 SQL 等工具 |
| 编程语言 | Python、R、SQL | Python、SQL、Scala、Java | Python 与 SQL 的熟练掌握对双方都很重要 |
| 数据处理 | 侧重使用 Pandas、NumPy 等工具进行数据处理与模型训练 | 使用 Apache Spark、Apache Flink 设计稳健的 ETL 管道 | 常在数据准备流程上协同合作 |
| 可视化 | 使用 Tableau、Power BI、Matplotlib 强调数据故事讲述 | 可视化可能出现在数据校验阶段,但非主要关注点 | 可能使用 Looker 等共享工具进行报表 |
| 教育背景 | 统计学、数学、计算机科学 | 计算机科学、数据工程、软件工程 | 在计算机科学等技术学科上有共同背景 |
| 薪资(美国平均) | 约 $123,000/年 | 约 $125,000/年 | 两类岗位薪资具竞争力且需求高 |
| 就业前景 | 越来越关注获取可转化为行动的洞见与人工智能 | 对稳健、可扩展的数据管理系统的需求不断增长 | 数据驱动行业持续强劲增长 |
如果您想规划迈向其中任一职业的路径,我们的指南是很好的起点:
如果您想直接开始学习,DataCamp 也能满足您的需求。若要开始学习数据工程,我们有许多理想课程,例如 DataCamp 的 Python 数据导入入门 和 R 语言数据导入(第一部分)课程。我们的数据工程师认证也是向招聘经理证明您具备入门级岗位所需技能的极佳选择。
对于想从数据科学起步的学习者,可以选择探索性数据分析、R 语言数据科学入门、机器学习工具箱以及Python 数据科学入门等课程。同样,我们的数据科学家认证口碑良好,助您叩开头部公司的大门。
数据工程师负责开发、构建、测试和维护架构,如数据库与大规模处理系统。数据工程师处理包含人工、机器或仪器错误的原始数据,其主要职责之一是清洗数据,以便数据科学家开展分析。查看我们的指南了解详情。
数据工程师专注于管理与组织数据,构建并维护数据库与数据管道;而数据科学家专注于分析与解释数据,以发现洞见与模式。
数据工程师需要具备数据库系统、数据 API、ETL 工具、数据建模以及搭建数据仓库解决方案的技能。
数据科学家需要具备统计、数学和机器学习方面的技能来构建预测模型,同时还要具备讲故事与可视化能力,以便向利益相关者有效传达洞见。
数据工程师会使用 SAP、Oracle、Cassandra、MySQL、Redis、Riak、PostgreSQL、MongoDB、neo4j、Hive 和 Sqoop 等工具。
数据科学家会使用 SPSS、R、Python、SAS、Stata 和 Julia 等语言,以及 Python 的数据处理库 Pandas、用于 R 可视化的 ggplot2,及 Scikit-Learn、NumPy、Matplotlib、Statsmodels 等工具。
数据工程师与数据科学家通常具有计算机科学背景;数据科学家也可能受过计量经济学、数学、统计学和运筹学教育,而数据工程师则可能学习过计算机工程。
两类岗位的需求都很高,其中数据科学家的职位空缺多于数据工程师。公司也越来越倾向于组建数据科学团队,而非招聘单个“独角兽”数据科学家。
通过以下课程,进一步学习数据科学与数据工程!
课程
课程
课程