数据工程师和数据科学家有什么区别?
由 Mux 赞助的 DEV 全球展示挑战赛:展示你的项目!
作者:本·罗戈扬
我们最近在Reddit上做了一次AMA(Ask Me Anything,问我任何事)活动。最常见的问题是数据科学家和数据工程师之间有什么区别。所以我们想就此主题写一篇更深入的文章。
很多数据专员职位听起来很相似,使用的工具也类似,因此很难明确每个职位的具体职责。此外,规模较小的公司在招聘数据工程师或数据科学家方面可能受到限制。这意味着很多时候,具体的工作任务和目标可能会相互交织。
这使得区分这两个角色变得更加困难。因此,我们希望通过讨论数据工程师和数据科学家在目标、思维模式、工具和背景方面的差异,来阐述这两个职位之间的区别。
在深入探讨区别之前,我们想先做一个简单的铺垫。事实上,许多数据科学家和数据工程师都会承担其他技术岗位的任务。例如,数据科学家可能需要开发ETL(集成测试语言),而数据工程师可能需要开发API和前端。因此,我们下面指出的区别仅仅是为了明确技术上的差异。
由 DataCamp 提供
目标
数据工程师的目标更侧重于任务执行和开发。他们构建自动化系统并建模数据结构,以实现高效的数据处理。这意味着数据工程师的目标是创建和开发数据表和数据管道,以支持分析仪表板和其他数据用户(例如数据科学家、分析师和其他工程师)。这与大多数工程师的工作类似。为了完成最终任务,需要进行大量的设计、假设、考虑限制并进行开发。即使最终都能完成任务,每种设计和解决方案也都有其自身的局限性。
相比之下,数据科学家往往以问题为中心。他们致力于寻找降低成本/提高利润、改善客户体验或提升业务效率的方法。这意味着他们需要提出问题,然后回答问题(提出问题、假设,然后得出结论)。例如,他们需要提出诸如“什么因素会影响患者再入院率?”、“如果向客户展示广告A 而不是广告 B,客户会消费更多吗?”、“是否有更快的包裹递送方式?”之类的问题。这里我们略过其他流程。接下来的目标是找到所提问题的答案。这可能是一个最终结论,也可能引出更多的问题。在整个过程中,数据科学家会进行分析、收集证据,并最终得出问题的结论。
工具
事情往往就此变得复杂。数据科学家和数据工程师都经常使用 Python 和 SQL。然而,这两个技术角色运用这些技能的方式却截然不同。这同样源于思维方式的差异。Python 是一种非常强大的语言,它拥有丰富的库,可以帮助管理运维任务以及分析任务。
数据科学家会使用 Pandas 和 Scikit-learn 等库,而数据工程师则会使用 Python 来管理数据管道。这时,Airflow和Luigi等库就派上了用场。
同样,数据科学家的查询通常是临时性的(例如,针对特定问题)。而数据工程师的查询则侧重于数据清理和转换。
当然,数据专家们还会用到其他一些工具,例如Tableau、Jupyter Notebook 等等。归根结底,关键在于他们如何使用这些工具。
背景
现在,关于数据工程师和数据科学家之间的区别,另一个常见的问题是需要哪些背景。
数据工程和数据科学都需要对数据和编程有一定的了解,即使范围有限。然而,两者之间也存在一些编程之外的区别,尤其对于数据科学家而言。由于数据科学家更像是研究人员,因此拥有研究背景会很有优势。
这可能涉及经济学、心理学、流行病学等领域。将研究背景与 SQL、Python 和良好的商业意识相结合,就造就了一名数据科学家。当然,这些并非一成不变的学位要求。事实上,我们遇到过拥有各种学位的数据科学家。大多数雇主更倾向于聘用至少拥有硕士学位且侧重于技术或数学方面的数据科学家。
数据工程师职位通常不要求硕士学位。数据工程更侧重于开发技能,需要丰富的实践经验而非理论知识。因此,获得硕士学位并不能带来同样的价值。
一个例子
假设一家医疗保健公司的负责人决定要找出减少患者在首次就诊后30天内再次入院人数的方法。从数据角度来看,有几件事需要做到。
数据科学家需要找出导致患者再次入院的因素。这就是他们试图解答的问题。基于得出的结论,他们将与业务部门合作,制定指标和政策,以帮助降低患者再次入院率。
数据工程师将开发表格,以帮助数据科学家解答问题;同时,他们还将开发分析表格,以帮助追踪患者过去和未来的再入院指标。这些指标的创建方式将取决于数据科学家得到的答案。
数据科学家和数据工程师之间存在诸多差异。他们的目标和背景各不相同,但这正是二者合作的价值所在。数据工程师专注于构建稳健的系统,这使得数据科学家能够轻松查询数据并高效地进行分析。他们的协作正是企业从数据中获取价值的关键所在。
希望这篇文章对您有所帮助!如有任何疑问,欢迎随时联系我们。
此外,您还可以阅读更多关于编程、数据科学和数据工程方面的知识:
Hadoop 与关系型数据库对比
;使用 BigQuery 分析 Medicare 数据;
十大商业智能 (BI) 实施技巧;
面向未来的 5 款强大的大数据工具——从 Hadoop 到 Cassandra;
使用 Python 创建 3D 打印 WiFi 接入二维码;
数据工程师面试学习指南

