数据工程师和数据科学家:有什么区别?

数据科学家和数据工程师的职业经常被混淆。 每个公司都有自己处理数据的具体情况、不同的分析目的以及由哪个专家处理哪部分工作的不同想法,因此每个公司都有自己的要求。 

让我们弄清楚这些专家之间有什么区别,他们解决什么业务问题,他们拥有什么技能以及他们赚多少钱。 由于材料很大,所以我们将其分为两份出版物。

在第一篇文章中,系主任埃琳娜·格拉西莫娃(Elena Gerasimova)“数据科学与分析”在《网络学》中,讲述了数据科学家和数据工程师之间的区别以及他们使用的工具。

工程师和科学家的角色有何不同

数据工程师是一方面开发、测试和维护数据基础设施的专家:数据库、存储和海量处理系统。 另一方面,它负责清理和“梳理”数据以供分析师和数据科学家使用,即创建数据处理管道。

数据科学家使用机器学习算法和神经网络创建和训练预测(和其他)模型,帮助企业发现隐藏的模式、预测发展并优化关键业务流程。

数据科学家和数据工程师之间的主要区别在于他们通常有不同的目标。 两者都致力于确保数据可访问且高质量。 但是,数据科学家在数据生态系统(例如,基于 Hadoop)中找到问题的答案并测试假设,而数据工程师则创建一个管道,用于为数据科学家在同一个 Spark 集群中编写的机器学习算法提供服务。生态系统。 

数据工程师通过作为团队的一员工作为企业带来价值。 它的任务是充当不同参与者之间的重要纽带:从开发人员到报告的业务消费者,并提高从营销和产品到 BI 的分析师的生产力。 

相反,数据科学家积极参与公司的战略,提取见解、制定决策、实施自动化算法、建模并从数据中产生价值。
数据工程师和数据科学家:有什么区别?

数据处理遵循 GIGO(垃圾输入 - 垃圾输出)原则:如果分析师和数据科学家处理未经准备的且可能不正确的数据,那么即使使用最复杂的分析算法,结果也将是不正确的。 

数据工程师通过构建处理、清理和转换数据的管道并允许数据科学家处理高质量数据来解决这个问题。 

市场上有许多用于处理数据的工具,涵盖各个阶段:从数据的出现到输出,再到董事会的仪表板。 重要的是,使用它们的决定是由工程师做出的——不是因为它很时尚,而是因为他会真正帮助这个过程中其他参与者的工作。 

传统上:如果一家公司需要在 BI 和 ETL 之间建立连接 - 加载数据和更新报告,这是数据工程师必须处理的典型遗留基础(如果团队中还有架构师,那就太好了)。

数据工程师的职责

  • 数据处理基础设施的开发、建设和维护。
  • 处理错误并创建可靠的数据处理管道。
  • 将来自各种动态源的非结构化数据转化为分析师工作所需的形式。
  • 提供提高数据一致性和质量的建议。
  • 提供和维护数据科学家和数据分析师使用的数据架构。
  • 在由数十或数百台服务器组成的分布式集群中一致且高效地处理和存储数据。
  • 评估工具的技术权衡,以创建简单但强大的、能够抵御干扰的架构。
  • 控制和支持数据流和相关系统(设置监控和警报)。

数据工程师轨迹中还有另一个专业——机器学习工程师。 简而言之,这些工程师专注于将机器学习模型引入工业实施和使用。 通常,从数据科学家那里收到的模型是研究的一部分,可能无法在战斗条件下工作。

数据科学家的职责

  • 从数据中提取特征以应用机器学习算法。
  • 使用各种机器学习工具来预测和分类数据模式。
  • 通过微调和优化算法来提高机器学习算法的性能和准确性。
  • 根据公司战略形成需要测试的“强有力”假设。

数据工程师和数据科学家都对数据文化的发展做出了切实的贡献,公司可以通过这种文化产生额外的利润或降低成本。

工程师和科学家使用什么语言和工具?

如今,对数据科学家的期望已经改变。 此前,工程师收集大型SQL查询,手动编写MapReduce并使用Informatica ETL、Pentaho ETL、Talend等工具处理数据。 

2020 年,专家必须了解 Python 和现代计算工具(例如 Airflow)、了解使用云平台的原理(使用它们来节省硬件,同时遵守安全原则)。

SAP、Oracle、MySQL、Redis 是大公司数据工程师的传统工具。 它们很好,但许可证的成本非常高,因此学习如何使用它们仅在工业项目中有意义。 同时,还有 Postgres 形式的免费替代品 - 它是免费的,并且不仅适合培训。 

数据工程师和数据科学家:有什么区别?
从历史上看,经常会发现对 Java 和 Scala 的需求,尽管随着技术和方法的发展,这些语言逐渐淡出背景。

然而,硬核大数据:Hadoop、Spark 等不再是数据工程师的必备条件,而是一种解决传统 ETL 无法解决的问题的工具。 

趋势是无需了解编写语言的工具即可使用服务(例如,无需了解 Java 的 Hadoop),以及提供现成的服务来处理流数据(视频上的语音识别或图像识别) )。

SAS 和 SPSS 的工业解决方案很受欢迎,而 Tableau、Rapidminer、Stata 和 Julia 也被数据科学家广泛用于本地任务。

数据工程师和数据科学家:有什么区别?
仅在几年前,分析师和数据科学家才出现了自行构建管道的能力:例如,已经可以使用相对简单的脚本将数据发送到基于 PostgreSQL 的存储。 

通常,管道和集成数据结构的使用仍然是数据工程师的责任。 但如今,由于工具不断简化,在相关领域拥有广泛能力的 T 型专家的趋势比以往任何时候都更加强劲。

为什么数据工程师和数据科学家要一起工作

通过与工程师密切合作,数据科学家可以专注于研究方面,创建可用于生产的机器学习算法。
工程师需要关注可扩展性、数据重用,并确保每个项目中的数据输入和输出管道符合全局架构。

这种职责分离确保了从事不同机器学习项目的团队之间的一致性。 

协作有助于高效地创造新产品。 通过为每个人创建服务(全局存储或仪表板集成)和实现每个特定需求或项目(高度专业化的管道、连接外部资源)之间的平衡来实现速度和质量。 

与数据科学家和分析师密切合作可以帮助工程师培养分析和研究技能,从而编写更好的代码。 仓库和数据湖用户之间的知识共享得到改善,使项目更加敏捷并提供更可持续的长期结果。

在旨在发展数据处理文化并基于数据构建业务流程的公司中,数据科学家和数据工程师相互补充并创建完整的数据分析系统。 

在下一篇文章中,我们将讨论数据工程师和数据科学家应该接受什么样的教育,他们需要发展哪些技能以及市场如何运作。

来自 Netology 编辑

如果您正在寻找数据工程师或数据科学家的职业,我们邀请您学习我们的课程计划:

来源: habr.com

添加评论