2天时间,聊今年最热的 Agent、上下文工程、AI 产品创新等话题。2025 年最后一场~ 了解详情
写点什么

数据科学家和数据工程师之间到底有什么差别?

  • 2019-04-26
  • 本文字数:1791 字

    阅读完需:约 6 分钟

数据科学家和数据工程师之间到底有什么差别?

我们最近在Reddit上做了 AMA。人们提出的最常见问题是数据科学家和数据工程师之间到底有什么差别。因此,有关这一问题,我们会在这篇文章中深入讨论。



有很多数据专家的岗位,听起来差不多,用的工具也差不多,很难搞清楚到底每个岗位需要做什么工作。另外,规模比较小的公司可能只能招聘有限几个的数据工程师或数据科学家。这意味着在很多情况下,特定的任务和目标可能都需要一个人完成。


这使得很难区分这两种角色。因此,我们会从不同的目标、思维方式、工具和所需的背景来讨论数据工程师和数据科学家的差异。


在讨论之前,我想简单地加一段导语。事实上,许多数据科学家和数据工程师都会执行其他技术性角色的任务。数据科学家可能需要开发ETL,数据工程师可能需要开发 API 和前端。因此,我们以下指出的区别只是为了阐明技术差别在哪里。


目标

数据工程师的目标更关注于任务和开发。数据工程师构建自动化系统和建模数据结构,帮助数据得到有效处理。这代表着数据工程师的目标是创建并开发表和数据管道,以支持用于分析的仪表盘和其他的数据用户(如数据科学家、分析师和其他工程师)。他们的工作和大多数的工程师很类似,要进行大量的设计、假设、约束和开发才能完成最终的任务。每个设计和解决方案也都会有自己的约束,即使它们都可以执行最终的任务。


相对而言,数据科学家更加以问题为中心。就这点而言,他们需要寻找降低成本、增加利润、提升用户体验或业务效率的方法。这代表着他们要先提出问题,然后自己解决问题(提出问题、做出假设、得到结论)。因此他们需要提出这样的问题:什么会影响患者再次入院?如果增加一个类似的A/B测试,客户是否愿意买单?有更快的路线来运送包裹吗?跳过剩余的过程步骤。这里的目标就是找到提出的问题的答案。它可能是最终的结论,也可能会引出更多的问题。在这个过程中,数据科学家需要分析、收集支持信息、得出问题的结论。

工具

这个部分就更加让人感到困惑了。数据科学家和数据工程师都需要依赖于 Python 和 SQL。然而,两个岗位的人使用这些技术的方式是不同的。同样,这也和思维方式的不同息息相关。Python 是非常健壮的语言,它拥有强大的类库来帮助管理操作性任务和分析性任务。


数据科学家会使用 Pandas 和 Scikit Learn 这样的语言,而数据工程师会使用 Python 来管理管道。在这里AirflowLuigi这样的类库就能派上用处。


如上所说,数据科学家的查询将重点关注于问题。但是数据工程师的查询会更关注于数据的清理和转换。


可能这两类数据专家都会使用一些其他的工具,包括TableauJupyter笔记本以及其他工具等。但他们的用法会有所不同。

背景

当讨论数据工程师和数据科学家之间的差别时,另外一个常见的问题是需要什么样的背景。


数据工程师和数据科学家都需要了解数据和编程。即使涉猎不必太广。然而,除了编程之外还有一些差别,特别是对于数据科学家来说。由于数据科学家更像是研究员,如果有基于研究的背景会是加分点。


这可以是在经济学、心理学、流行病学等领域的研究背景。数据科学家可以使用 SQL、Python,具有良好的商业意识,还能将其与自身的研究背景结合起来。这些都不能用级别来衡量。事实上,数据科学家在各个领域都有所涉及。大多数雇主更希望招聘至少硕士学历、具备某些技术或数学研究背景的数据科学家。


而数据工程师就不一定需要硕士学位。数据工程师更像是一个开发人员。比起理论知识,他们需要更多的实践经验。因此,拥有硕士学位并不能说明这一点。

举个例子

比如一家医疗保健公司的主管想知道如何减少初次就诊后 30 天内再入院的患者数量。从数据的角度来看,需要完成一系列工作。


数据科学家需要了解是什么导致了这些患者再入院。这是他们需要回答的问题。根据他们得出的结论,他们会和医院合作,制定指标和政策,帮助改善患者再入院比例。


数据工程师会创建表格,帮助支持数据科学家找到问题的答案,与此同时,他们还要创建分析表,帮助追踪过去和未来的患者再入院指标。这些指标的创建会根据数据科学家得到的答案而改变。


数据科学家和数据工程师有很多的区别。他们有不同的目标、背景,但这就是两者一起合作的价值所在。事实上,数据工程师更关注于构建健壮的系统,这也能方便数据科学家轻松地查询数据,并有效地分析数据。这样的合作就能在数据方面给公司创造价值。


我们希望这篇文章能给你提供帮助!


查看英文原文What Is The Difference Between A Data Engineer And A Data Scientist


2019-04-26 07:005772

评论

发布
暂无评论
发现更多内容

ReactNative进阶(三十一): IoC 框架 InversifyJS 解读

No Silver Bullet

​React Native 1月月更 InversifyJS

事件驱动架构在 vivo 内容平台的实践

vivo互联网技术

微服务 云原生 事件驱动架构

☕【Java深层系列】「并发编程系列」让我们一起探索一下CyclicBarrier的技术原理和源码分析

码界西柚

并发编程 AQS CyclicBarrier Java 线程 1月日更

RavenDB起步--第一个 RavenDB 程序

喵叔

TDSQL-C PostgreSQL版的高可用特性

腾讯云数据库

tdsql 国产数据库

智联生活行业加速器热门FAQ:物联网企业该如何与华为云合作?

华为云开发者联盟

物联网 华为云 智联生活 智联生活行业加速器 云市场

Python监督学习之分类算法的概述

王小王-123

Python 人工智能 机器学习 分类算法

RavenDB起步--客户端API(一)

喵叔

RavenDB起步--使用 RavenDB Studio

喵叔

TDSQL PostgreSQL执行计划详解

腾讯云数据库

tdsql 国产数据库

20000字详解大厂实时数仓建设 | 社区征文

五分钟学大数据

数据仓库 实时数仓 1月月更 新春征文

Netty核心概念之ChannelHandler&Pipeline&ChannelHandlerContext

CRMEB

企业可以定级吗?可以自己确定等保等级吗?

行云管家

网络安全 等保 等级保护 等保2.0

一、数据结构

喵叔

RavenDB起步--安装以及示例数据库

喵叔

看过来!腾讯文档上架优麒麟软件商店啦

优麒麟

Linux 开源 腾讯 操作系统 麒麟操作系统

中科柏诚:积极践行为中小企业服务宗旨,同乡村振兴有效衔接

联营汇聚

为数据库性能调优插上 AI 的翅膀 | 调优测试框架 Matrix 团队访谈

PingCAP

第四节:SpringBoot中web模版数据渲染展示

入门小站

springboot

模块1作业

卡西毛豆静爸

架构实战营

为什么ConcurrentHashMap是线程安全的?

王磊

1月月更|推荐学java——Spring事务

逆锋起笔

spring事务管理 spring ioc java 编程 Spring Java Spring事务

Redis:我是如何与客户端进行通信的

华为云开发者联盟

redis 通信 协议 指令 客户端

在线XML转JSON工具

入门小站

工具

架构训练营 毕业设计

dog_brother

「架构实战营」

鸿蒙轻内核M核源码分析:LibC实现之Musl LibC

华为云开发者联盟

鸿蒙 内存分配 LibC Musl LibC Musl

基于Flink CDC打通数据实时入湖

五分钟学大数据

flink 1月月更

华青融天加入,龙蜥社区再添科技风险监测领域新伙伴

OpenAnolis小助手

Linux 开源 合作伙伴

分享四款H5怀旧小游戏魔塔+伏魔记+三国霸业+寻仙纪

echeverra

前端 游戏

MySQL 如何解决幻读(MVCC原理分析)

Ayue、

MySQL InnoDB 1月月更

TDSQL-A技术架构演进及创新实践

腾讯云数据库

tdsql 国产数据库

数据科学家和数据工程师之间到底有什么差别?_技术管理_Ben Rogojan_InfoQ精选文章