跳至主要内容

数据工程师是做什么的?

想知道数据工程师是做什么的吗?我们将拆解不同的数据工程师角色与职业路径,并带您了解一个典型的数据工程项目。
Joleen Bothma
Joleen Bothma

创建您的免费账户

实践并学习路径你的进步。

使用 Google 继续继续即表示您接受我们的 使用条款,我们的 隐私政策 ,并且您的数据存储在美国。

您可能听说过数据工程正在成为新的数据科学,而数据工程领域的高速增长也印证了这一点。企业如今意识到,聘请数据工程师来设计、构建并维护所需的架构,才能让数据科学与数据分析真正发挥作用。关于数据工程师与数据科学家的差异,我们在另一篇文章中有更详细的介绍。

不过,您也许还在想,数据工程师具体都做些什么?本文将拆解数据工程师的不同角色与职责,以及他们可能走过的职业路径。最后,我们还将带您一窥组织中常见的数据工程项目。如果您在寻找如何成为数据工程师的资讯,另有专文可供参考。若您正试图为该岗位招聘人才,也可以阅读如何撰写数据工程师职位描述。

数据工程岗位类型

数据工程涵盖广泛的技能、工具与系统。数据工程岗位大致可分为四类,每一类都需要掌握相应的一组技能与工具,才能高效开展工作。

  • 通才型。参与数据采集、存储、分析与流转的各个环节,需要了解并能运用多种工具与技能。
  • 数据存储方向的专家。负责搭建与管理关系型与非关系型数据库(如 SQL、NoSQL、PostgreSQL)、数据仓库(如Redshift、Panoply),以及大数据系统(如 Hadoop、Spark)。
  • 编程与数据管道方向的专家。通过脚本与数据管道来创建与管理数据流动。需要熟悉若干编程语言,如 Python、Java、C++。
  • 分析方向的专家。与组织内的数据科学家及其他分析人员密切合作。需要熟悉分析工具(如 Power BI、Tableau)、机器学习库(如 TensorFlow、PyTorch),以及支持分析项目的其他工具(如ETL 工具与大数据系统)。

数据工程师是做什么的?职业发展路径

数据工程师的职业路径会因公司规模与数据团队成熟度而有所不同,但大多数数据工程师通常会遵循以下路径:

  • 初级数据工程师
  • 中级数据工程师
  • 高级数据工程师
  • 高级管理岗位

初级数据工程师

在职业生涯的起步阶段,初级数据工程师通常承担维护与支持现有系统的小型任务,可能包括测试系统、查找并修复缺陷,或为既有系统添加功能。在这一早期阶段,初级工程师一般不会独立负责项目,而是以支持角色协助资深同事。

作为初级数据工程师的头几年,最重要的是学习并获得将来工作所需工具的实操经验。同时,他们也会了解不同团队与部门如何协作,来解决不断出现的问题与需求。

中级数据工程师

大约 1 至 3 年后,数据工程师可能晋升为中级。此时,他们会更多接触项目管理方面的工作,并需要与其他团队和部门有更紧密的协作。

他们通常会负责设计与构建支持数据科学家和其他分析团队成员的系统。在这一阶段仍可能在高级数据工程师的部分指导下开展工作。为了高效完成任务,他们必须具备良好的沟通能力,并能与其他团队顺畅合作。

数据工程师可能会在这一层级停留约 3 至 5 年。在此期间,他们会进一步打磨编程技能,并应熟悉组织内使用的所有工具与系统。他们能够识别并修复出现的缺陷或问题,并能在团队内外高效协作。

高级数据工程师

当数据工程师晋升至高级层级后,会承担更多管理职责。他们可能需要带领一名或多名数据工程师,进行指导并分配阶段性项目。

在这个阶段,数据工程师已精通岗位所需的技术能力,能够较为从容地构建系统与解决问题。然而,他们也会更深入地参与业务层面,需要从战略角度思考数据项目的方向,以及系统的长期效能与优化。

这要求数据工程师在思维方式上发生转变,可能具有挑战性。许多数据工程师未必对战略与业务职责怀有热情,因此他们可能选择不再进一步走管理路线。

高级管理岗位

当数据工程师拥有约六年或以上经验后,如有意愿,可转向更高层级的管理岗位,例如:

  • 数据工程经理
  • 数据工程总监
  • 首席数据官

除了在较低层级阶段所获得的技术技能需要非常精通之外,这些岗位还要求具备扎实的数据基础设施与数据架构能力,并能管理与扩展分析团队。同时,他们需要制定高性能系统的开发流程,规划新项目范围,并为新老系统定义与管理 SLA。

数据工程师是做什么的?一个典型的数据工程项目

接下来,让我们通过一个示例来看看数据工程师的角色与职责。假设您在一家通过移动应用向客户提供外卖服务的大型公司工作。该 App 充当餐厅与配送员之间的中介。客户在 App 上下单,餐厅收到通知;食物准备好后,系统分配配送员,将食物送达客户。

可以想见,这样一款 App 每天会产生大量数据:从餐厅、配送员与客户的数据,到 App 上每次交互的日志。此外,还包括客服来电中关于投诉、表扬或纠纷的数据,以及 App 出错时的日志等。

如果公司中的数据科学家或数据分析师被要求识别订单趋势,以便据此构建机器学习模型,那么他们会请您按天汇总订单数据并完成提取与准备工作。同时,他们还需要能够区分首次下单客户与回头客户的数据。

明确问题

为解决这一问题,数据工程师首先需要按以下步骤澄清需求:

  1. 确定粒度,按订单、按天、按周、按月、按年。基于上述请求,订单数据需按天聚合,并按客户类型(首次或回头)进行区分。
  2. 确定是否需要对数据应用筛选条件,例如按国家或手机型号。
  3. 确定数据的时间范围。例如,是全时段还是仅限过去一年?
  4. 确定该数据的数据源和/或相关表。这些数据存放在中央数据仓库中,数据工程师需要访问订单表与客户表。若需额外筛选条件,可能还需访问更多表。

数据提取

在更清晰地理解问题后,数据工程师可按以下步骤开展数据提取与探索:

  1. 确定订单表与客户表之间应采用的关联方式,以及这些表之间的关系(例如用哪些键来连接)。这需要对SQL与数据建模有扎实理解。
  2. 基于每位客户的下单次数创建“客户类型”的类别特征。该特征需包含“首次客户”和“回头客户”两类。
  3. 评估数据质量。识别是否存在需要纠正的缺失或异常数据。

当数据工程师准备好数据科学家或数据分析师所需的数据后,需要创建一个可供查询以提取数据的 API 端点。根据数据量与复杂度不同,整个项目可能耗时数天到数月不等。

在此过程中,数据工程师可能需要根据数据存放位置以及是否需要额外处理而与多种系统协同工作。

在该问题中可能接触到的系统示例包括:用于数据存储的 SQL Server、Hadoop 或 Redshift;用于查询数据的 SQL;以及用于编写数据处理脚本的 Python。

结语

如您所见,典型的数据工程项目包含若干对数据工程至关重要的核心技能,例如构建数据管道。要加速学习并为数据工程岗位做好准备,不妨在 DataCamp 上尝试Python 数据工程技能路径。若想率先体验云数据仓库的实操,可试试我们的探索伦敦交通网络项目。该项目提供在浏览器中直接使用 Amazon Redshift、Google BigQuery 与 Snowflake 的绝佳机会。最后,若想证明您的数据工程能力,可参加我们的数据工程师认证。

希望本文能帮助您更好地了解数据工程师的角色及其日常工作内容。如果您正考虑开启数据工程职业生涯,相信现在对可能的职业路径也会更为熟悉。

主题