Coursera 笔记

Module 01 · What is Data Engineering?什么是数据工程?

Viewpoints: Evolution of Data Engineering数据工程的演变:近二十年来的变化

Coursera ↗

在本视频中,我们将听取几位数据专业人士讨论数据工程在过去几十年中是如何演变的。


一、数据环境的巨大变革

与二十年前相比,数据工程的生态空间或环境已全然不同,几乎面目全非。

过去二十年变化 二十年前的状况 今天的状况
数据量 无法想象我们现在处理的巨大数据量。 数量巨大,处理的数据量是以前无法想象的。
数据种类 许多数据和数据格式可能尚未存在。 处理多样化的数据和数据格式。
数据库 尚未讨论 NoSQL 数据库的概念。 使用各种 NoSQL 数据库。
大数据 闻所未闻。 对于许多企业和组织来说,已经相当稳定。

二、期望的提高与自动化

  • 期望的增长: 数据工程的期望值大大提高了。
  • 周转时间缩短: 如今,数据工程师接到任务后,周转时间要短得多。以前可能需要几天才能拿出解决方案,但现在期望在数小时内就能给出解决方案。
  • 自动化必要性: 如今,没有自动化工具,就无法运行完整的数据工程服务。需要大量的自动化工具来确保向组织交付数据工程服务。

三、技术演进与云计算的影响

一位拥有近 25 年经验的专业人士分享了技术和数据系统的显著演变:

云计算带来的转变

  • 基础设施即服务: 借助云计算,数据基础设施现在可以作为服务提供。
  • 减少从零开始的工作: 如今,数据工程师需要从头开始做的工作少得多。
  • 聚焦价值: 他们可以将更多时间花在更有意义的事情上,减少设置和管理系统的时间。

数据存储的扩展

  • 早期焦点: 早期的数据工程主要涉及使用关系数据库和数据仓库。
  • 现在: 现在有了大量的 NoSQL 数据库和其他类型的数据存储库。

大数据系统的普及

  • 大数据: 另一个主要的演变是围绕大数据。
  • 当前要求: 如今,数据工程师需要知道如何使用几种不同的大数据系统和管道。

工具多样性的要求

  • 尽管仍然存在专业化,但现在数据工程师需要了解更广泛的工具和数据系统,以及如何有效地使用它们来解决不同类型的数据问题。

四、数据处理方法的转变

一位专业人士指出,在过去二十年,我们处理数据的方式发生了显著变化:

  • 过去的方式: 过去是严格的层级式方法。有顶层人员(如架构师、企业架构师、数据架构师)决定组织内数据的存储方式。通常只有两三个支持的平台,并且我们坚持使用这些平台,一切都定义得很好。
  • 现在的转变: 这是一个从层级式到开发者主导的非常渐进的过渡。
    • 需求来源改变: 现在,数据存储方式的决定更多地来自开发人员。开发人员希望以特定的方式存储数据,他们有特定的要求。
    • 角色变化: 我们的角色有所变化。不再是确保我们精通之前定义的两个或三个平台,而是必须接受来自开发人员的各种要求和需求,并与他们合作,确保他们所做的选择适用于数据操作、数据的长期使用以及以安全可靠的方式存储数据。
    • 持续对话与探索: 事情的发生更像是一种对话。对于数据工程师来说,这更像是一次学习探险,需要走出去,弄清楚满足开发人员这些新需求的最佳方式是什么,以及如何做到这一点,同时仍然拥有组织真正需要的可靠、高可用、安全的数据平台。

五、数据源多样性的爆发

一位拥有 15 年数据库管理员经验的专业人士指出:

  • 热门度增加: 15 年前数据工程不是一个热门话题,但现在这是一个非常热门的需求。
  • 原因: 这基本上是不同类型数据源的演变。
    • 新数据源: 例如,现在我们拥有物联网 (IoT) 相关数据,所有这些传感器相关的信息被馈送到各种数据源中。
    • API 馈送: 还有来自 Twitter 或天气 API 等的 API 馈送。
    • 互联互通: 一切都相互连接。
传统存储 (约 40-50 年) 新兴存储类型 (以满足多样化需求)
关系数据库 (Relational Databases) 列式存储 (Column Stores) / 宽列存储(如 Cassandra 或 HBase)
键值对数据库 (Key-Value Pair Databases)
Hadoop (用于大数据)
文档存储(如 MongoDB 或 Couchbase)
  • 数据工程师要求: 随着数据源的演变和数据的多样化,作为一名数据工程师,您需要熟悉所有这些类型的数据源。

六、新技能与关注点的涌现

一位在数据工程领域工作了两年的专业人士分享了她的观察:

  • 传统焦点: 传统上,数据工程非常侧重于数据库管理、ETL 管道和数据可视化。
  • 近期需求: 近年来,我看到对数据工程的需求越来越多,要求他们了解分布式计算和 DevOps,以及实现机器学习模型等。