ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

数据工程师角色的定义,恕我直言。

2022-09-04 10:34:23  阅读:200  来源: 互联网

标签:定义 角色 工程师 平台 他们 开发人员 数据 恕我直言


数据工程师角色的定义,恕我直言。

首先,我知道对于在数据工程领域工作的人来说,标题听起来过于雄心勃勃。对我来说,似乎每家公司对数据工程师的角色都有不同的理解。一些人将其视为 DBA/BI 开发人员的新术语,另一些人将其视为试图为其他部门修复不良数据质量的数据管道工。这可能都是真的,但我不喜欢这种想法。这就是为什么我想在本文中解释我对此的看法。

也许你同意或不同意我的观点。反正。这篇文章就像每一篇好文章一样,都是从过去的故事开始的。所以靠近篝火。

时间之前的土地

我记得有一段时间,每个能够使用 hadoop 和 spark 的人都被认为是“数据科学家”。向我的前同事问好,他们在阅读本文时会傻笑。作为一个喜欢编码的人,我从来没有觉得自己像个数据科学家。我尝试学习统计数据并玩弄机器学习模型,但我总是更喜欢开发 API、数据管道和设置基础设施。

不久之后,每个人都被任命为数据科学家,但每个人对它的理解不同,技能和任务也不同,这个时候终于到来了。孩子有了名字。数据工程师诞生了​​。

Finally, it has a name.

最后,喜欢编写代码和构建软件和基础设施的那群人现在有了自己的术语,他们能够认同。至少我们是这么认为的。

从现在开始,数据工程师负责从各种来源获取数据、开发 Web 应用程序/服务、构建和维护基础架构以及管理数据湖中的数据模型。啊,我忘了提到那些(传统)数据仓库中不可用的新数据现在也应该可用于报告。因此,我们需要能够在当前 BI 工具旁边进行可视化的工具,因为数据现在存储在 NoSQL 数据库或像 hadoop 之类的存储系统中,没有 BI 工具可以连接(我知道你可以将它沉入那里,但是为什么当你可以使用新的闪亮可视化工具吗?)。因此,让我们将其添加到所谓的“数据工程师”的职责中。我想你知道我在说什么。

科技丛林

劳累过度的招聘人员的时代开始了(现在已经结束了吗?我不知道)。鉴于目前在数据工程领域使用的技术数量,谁能责怪他们。通过一些职位发布,我认为他们正在寻找一个完整的开发团队。

Gotta catch ’em all.

与数据科学家一样,我们已经达到了可以归因于数据工程师的各种任务和技能如此广泛的程度,以至于单个角色不可能填补它们。结果:对于数据工程师实际上是什么,没有单一的定义。现在没关系。和以前一样,这是一个学习过程。这个职业非常年轻,而且发展迅速。如此正常,随着时间的推移,新的知识也会流入和流出,新的评估也会发生。尽管有这些知识,我还是想尝试通过数据工程师的角色来定义我所理解的。并且可能可以从中派生出具有专业化的其他角色。

数据工程师角色的定义

什么是数据工程师?在我看来,这是软件工程师的专业。我认为包括这两个角色的技能是:

  • 软件工程原理和技术(如干净的代码、设计模式、重构和配对/集成编程)
  • 在云环境中工作(使用基础设施即代码,知道如何维护和扩展这些云服务)
  • 将软件投入生产(如何使用 ci-pipelines、版本控制系统、自动化测试等)
  • 为外部系统/客户端构建接口(从流/队列中获取数据,开发 REST API/GraphQL/库)

然而,此外,对于数据工程师来说,他(通常)比软件工程师更有经验的更具体的事情。

  • 使用不同类型的建模技术(星形/雪花模式、非规范化数据建模、3NF 等)设计数据模型
  • 了解几种数据格式的优缺点(如 parquet、avro、delta、csv、json、protobuf 等)
  • 良好的存储技术知识(如对象存储、基于行/列的数据库、文档存储、键/值存储等)
  • 了解数据处理技术的优缺点(如全批处理、基于时间的分区、分布式和实时处理等)

当然,其中一个或另一个出于不同的原因摇头。一个仍然缺少一些东西,另一个已经太多了。然而,在我看来,这是每个作为数据工程师工作的人都应该映射的最低公分母。不一定在所有方面都一样好,但在日常工作中的所有领域至少接触点。

我在这里故意省略了技术,因为一方面这些技术来来去去比你想象的要快,另一方面每个人都更喜欢各自领域的其他技术,这绝对是好事!重要的是我们拥有相同概念的知识和经验。

现在你可能想知道所有其他的东西呢?

专业

我知道我在这里如履薄冰,但我会尝试在专业领域定义其他“东西”,每一个都是数据工程师的扩展。

Should be there just one role to rule them all?

首先,我要提一下我的老板(Peter Majko),他介绍了我们部门(数据工程)的数据开发人员和数据平台工程师的专业化。从那以后,我认为这项工作有了很大的改进,这就是为什么我也相信这种专业化存在并且对公司也有好处。它帮助我们了解我们需要在哪里扩展,并将人们置于他们觉得最舒服的角色中。

数据开发人员(或分析工程师)

这个角色可能是大多数公司认为的“经典”数据工程师。他们负责开发数据转换和建立数据管道。他们与业务和其他利益相关者(例如数据分析师)紧密合作。这使他们大部分时间成为数据模型的架构师。了解他们所在的业务领域,并知道如何使用现代数据处理工具是必须的。特别是,他们通过使用编程语言及其通用框架/库实现转换的能力,将自己与传统的 BI 开发人员区分开来。他们在云环境中很自在,并且不怕为他们的代码编写测试。构建和运营基础设施不是他们的主要关注点,但这也可以由经验丰富的数据开发人员完成。通常他们使用他们工作的平台中可用的工具。

数据平台工程师

顾名思义,这个角色是关于数据平台的开发。当使用术语数据平台时,很多人会想到 S3 上的数据库或数据湖。但平台首先是一个系统,它使其他人能够实施他们的项目。这就是数据平台工程师的终极目标。这包括开发使平台用户能够更轻松地与数据交互并为所有人安全地集成新数据的产品。他一般地解决问题并开发成为平台一部分的服务。例如,开发捕获数据沿袭的工具或将新技术集成到现有平台可能是数据平台工程师的任务。重要的是,平台用户的要求在这里具有最高优先级。这使得该角色对于与平台交互的所有团队的成功至关重要。

数据运维工程师

现在我要试试我自己的专长。数据运维工程师。显然,几年来一直试图建立这个角色并取得了一定的成功。但是,在我对 DataOps 一词的理解之外的其他方面也是如此。对我来说,这个角色代表了负责扩展和操作数据基础设施的专家(类似于数据的 SRE?)。在已经有数据平台工程师的公司中,这个角色可以看作是对数据操作的专业化。这个角色(通常)比普通数据工程师更有经验的一些领域是在云中实施具有访问权限的数据治理,确保数据的技术安全(加密)、数据基础设施的可用性和可观察性是主要关注点这个角色的。当然,他是处理基础设施即代码的专家。他支持任何团队处理它,并且在数据安全方面是骨干。

结论

您一生都在学习,在我们的数据工程领域也是如此。它发展迅速,今天被认为是唯一真理的东西明天就已经被遗忘了。这项工作适应了新的环境,我们也应该这样做以继续享受它的乐趣。

保留更长时间的是作为我们工作基础的概念和原则,它们比职称或技术具有更长的持久性。

而且由于数据工程师是软件工程师的专长,因此成为优秀软件工程师的原则和实践当然也是其中的一部分。此外,我还提到了与数据工程师相关的其他概念。是否每个人都这么看是有争议的,但这是我的看法。

此外,我认为谈论数据工程师可能的专业化也很有意义。当组织发展并且任务变得更广泛和更通用时,这些可以提供帮助。

我对你的意见很感兴趣。只需评论您的想法或在linkedin 上给我发送 DM。我希望你读我的文章玩得开心。玩得开心绝对是工作中最重要的事情。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明

本文链接:https://www.qanswer.top/12018/14230410

标签:定义,角色,工程师,平台,他们,开发人员,数据,恕我直言
来源: https://www.cnblogs.com/amboke/p/16654389.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有