大数据工程师的“卿卿日常”

Source

大数据工程师在日常生活中做什么?

长按关注《Java学研大本营》,加入读者群,分享更多精彩

扫码关注《Java学研大本营》,加入读者群,分享更多精彩

什么是数据工程?

数据工程是当今世界最关键和最基础的技能之一。这是一个从多个来源收集数据并创建可以向数据科学、数据分析或业务团队公开的数据湖的持续过程。数据工程的目的是为不同类型的用户开发具有现代数据架构的端到端和集中式数据解决方案。

什么是数据工程师?

数据工程师负责从多个来源收集数据,将其转换为可用格式,并将其存储在公共数据湖中。业务利益相关者从数据湖访问数据并从中获得业务洞察力。下游应用程序也可以将此数据用于机器学习用例。

简而言之,数据工程师实施复杂、大规模的大数据项目,重点是收集、管理、分析和可视化大型数据集。

您可以使用下图可视化数据工程师的职责:-

数据工程的生命周期

典型的数据工程生命周期如下图所示=>

数据摄取 → 数据转换 → 数据持久化 → 性能优化

数据摄取:从多个来源获取数据,然后将其摄取到数据湖中的暂存层中。该层通常具有原始数据。

数据转换:将数据从一种格式转换为另一种格式或从多种格式转换为各种消费组件应可接受的单一通用格式。

数据持久化:将转换后的数据存储到数据湖的最后一层。该层暴露给其他数据团队。我们还必须注意这一层的安全方面,因为这一层中可能存在机密数据。因此,我们必须定义适当的安全标准并为消费者提供有限的访问权限。

性能优化:这是最困难和最具挑战性的部分,因为我们需要设计一个高度可扩展和高效的系统。还有其他因素,例如查询性能和构建实时仪表板,这些都取决于您如何分区和存储数据。性能优化不完全是一个单独的模块,而是所有组件都需要的并行连续过程。数据工程师需要以最优化的方式构建摄取、转换和持久化模块。他们需要在构建整个生命周期时考虑各种性能因素。

数据工程师是做什么的?

现在最大的问题来了。数据工程师到底是做什么的?因此,根据我的经验,我在这里总结了数据工程师的角色和职责 ->

  • 为处理 PB 级数据而构建的高度可扩展、分布式、容错的 数据收集和分析系统设计和实施关键组件

  • 构建、部署和管理能够充分处理快速增长的数据需求的大数据解决方案

  • 构建可扩展且可靠的 ETL 或 ELT 管道和流程,以从大量不同的数据源中提取数据

  • 通过开发管道移动架构和实施,从研究到部署

  • 维护和优化数据分析基础架构的性能,以确保准确、可靠和及时地提供决策制定的关键见解

  • 简化数据访问和安全性,使数据科学家和分析师能够在需要时轻松访问数据

  • 通过指导数据使用、处理以及他们如何最好地利用您正在构建的平台来支持其他团队

  • 以敏捷的方式工作

一位数据工程师的经验

谈到我的经历,典型的一天从每日站会 (scrum) 开始,我们在会上讨论 3 件事——昨天做了什么,今天要做什么以及明天的计划是什么。在这个 scrum 中,我们还讨论了我们在完成任务时面临的任何挑战。

根据敏捷标准,产品负责人创建了一个产品待办列表,我们在其中定义了内置数据管道框架(产品)所需的所有必需功能。然后,这分为多个史诗和故事,我们计划几乎每个月发布一次。

正如我之前提到的,一个管道可以分解成多个微服务,例如——数据收集或摄取、数据转换或扩充、数据持久化,然后是最后一部分性能优化。每当 Scrum 周期开始时,每个数据工程师都会被分配独立的故事,他/她需要在整个生命周期中处理这些故事——构建、编码、测试和部署,直到周期结束。我曾经在一个周期中为某些功能开发一个模块,然后在下一个周期中我切换到具有新功能的不同模块。通过这种方式,我了解了整个产品和核心功能,并且对任何特定模块都没有依赖任何人。对于版本控制,我们使用了GIT bitbucket存储库。每天,我过去常常检查最新的代码,处理它,并在一天结束时签到。这确保了 bitbucket 存储库始终是最新的,并且如果有人在度假,另一个人可以从第一个人离开的地方接手。

单元测试和集成 测试也很重要,我过去常常与其他团队合作,帮助他们端到端地测试各种模块。

最后,当管道上线时,我们需要在数据的正确性和性能方面支持管道。通常,支持工程师会在那里监控管道并在出现任何工作失败或性能问题时提出任何缺陷。我们遇到的问题主要与性能有关,因为我们每天获取的数据种类繁多,数量庞大。这完全是一个关于如何优化数据管道性能的大话题,我将在下一篇文章中介绍。

数据工程师的所需技能

  1. 了解用于组织数据的不同架构,例如作为大数据框架的Hadoop 。HDFS是分布式存储文件系统。YARN作为资源管理器等。

  2. 了解数据处理技术,如 Map Reduce、Apache Spark和传统 SQL 或任何其他 ETL 框架,如Informatica或Talend框架。

  3. 了解不同的数据收集模式,如实时、批量或小批量数据和基于服务的模式。我们越早收集数据,就越有可能获得新客户并节省更多资金。

  4. 了解Oracle、My SQL 等SQL数据库和 Hadoop 特定的分布式数据库,例如Hive。

  5. 不了解SQL数据库和体系结构。了解基于行的数据库和列式数据库之间的区别。示例可以是Hbase、Cassandra、Redshift (AWS)、DynamoDB (AWS) 等。

  6. 精通以下任何一种编程语言——Java、Scala或Python

  7. 了解任何作业调度框架,如Oozie或 Apache Airflow,以及用于批处理作业的Contol-M 。

  8. 应该熟悉GIT版本控制,因为维护代码版本以跟踪更改很重要。

  9. 学习Linux非常重要,至少是基础知识。大多数大数据工具或 NoSQL 数据库都在 Linux 上运行。应熟悉操作系统基础知识、Shell 脚本和cron 作业。

  10. 了解其中一种云 平台——AWS、Azure 或 GCP 也很重要。如今,许多组织正在将他们的数据转移到云平台。

好吧,现在您知道成为一名大数据工程师是什么感觉,以及如何构建您的技能组合以实现这一目标。在下一篇文章中,我将分享成为数据工程师的完整路线图。

推荐书单

《项目驱动零起点学Java》

《项目驱动零起点学Java》共分 13 章,围绕 6 个项目和 258 个代码示例,分别介绍了走进Java 的世界、变量与数据类型、运算符、流程控制、方法、数组、面向对象、异常、常用类、集合、I/O流、多线程、网络编程相关内容。《项目驱动零起点学Java》总结了马士兵老师从事Java培训十余年来经受了市场检验的教研成果,通过6 个项目以及每章的示例和习题,可以帮助读者快速掌握Java 编程的语法以及算法实现。扫描每章提供的二维码可观看相应章节内容的视频讲解。

《项目驱动零起点学Java》贯穿6个完整项目,经过作者多年教学经验提炼而得,项目从小到大、从短到长,可以让读者在练习项目的过程中,快速掌握一系列知识点。

马士兵,马士兵教育创始人,毕业于清华大学,著名IT讲师,所讲课程广受欢迎,学生遍布全球大厂,擅长用简单的语言讲授复杂的问题,擅长项目驱动知识的综合学习。马士兵教育获得在线教育“名课堂”奖、“最受欢迎机构”奖。

赵珊珊,从事多年一线开发,曾为国税、地税税务系统工作。拥有7年一线教学经验,多年线上、线下教育的积累沉淀,培养学员数万名,讲解细致,脉络清晰。

链接: https://item.jd.com/13607758.html

精彩回顾

部署Spring Boot应用程序

Java Spring Boot 3.0.0 RC1 震撼登场!

长按关注《Java学研大本营》

长按二维码,加入Java读者群

扫码关注《Java学研大本营》,加入读者群,分享更多精彩