数据工程:从提取到存储的全过程

随着数据来源的日益增多,数据的产生量也在不断增加。因此,对这些数据的处理和存储变得越来越具有挑战性。新兴技术,如数据工程、人工智能和机器学习算法,帮助智能地处理这些数据,使它们能够满足商业需求。本文将重点介绍数据工程的步骤以及如何通过真实案例来执行这些步骤。数据工程的过程是使数据对数据驱动的工作可用和可访问,这可以通过ETL(提取、转换和加载)管道来实现。

数据提取

数据工程的第一步是从各种来源提取数据,如物联网设备、定期上传的视频批次或医疗报告等。数据可以是任何类型,但目标是可靠地获取数据并进行处理。

数据转换

提取数据后,对数据进行预处理,将其转换为所需的格式。因为来自不同来源的数据并不总是适合查询和分析。因此,修改它,使其更适合。在ETL管道的转换阶段,通常执行以下步骤:

  1. 规范化和建模
  2. 数据清理

规范化数据有助于使其对用户更易于访问。这也可以通过以下三个主要步骤实现:

  1. 删除重复数据。
  2. 处理和解决数据中的冲突。
  3. 确保数据符合指定的数据模型。

还可以添加更多步骤,但这些是数据规范化中涉及的主要步骤。然后,数据清理与数据规范化相关,但主要区别在于数据清理包括一些使数据更统一和完整的步骤,而数据规范化只关注使异构数据适应某些数据模型。以下是数据清理中涉及的一些主要步骤:

  1. 如果需要,对数据进行类型转换。
  2. 保持所有日期和时间字段的相同格式。
  3. 消除损坏或无法使用的数据。
  4. 识别缺失字段,并在可能的情况下填充适当的数据。

数据存储

完成转换后,ETL管道的下一步是加载。在这里,将转换后的数据存储在特定位置,并以指定格式存储,以便于用户更好地访问。这些修改后的数据通常存储在数据湖和数据仓库中。数据湖在提取后立即存储原始数据。它为数据处理提供了高度的灵活性,因为它不受数据仓库固定配置的限制。此外,未经处理的数据将被数据科学家用于进行探索性数据分析。

另一方面,数据仓库是一个中央存储库,其中存储的数据以可查询的形式存在。数据仓库能够存储结构化和非结构化数据,包括各种文件格式,如PDF、图像、音频和视频文件。

批量处理管道

如今,数据工程师主要使用Lambda架构来处理实时数据。Lambda架构(LA)有助于支持统一管道和实时数据处理。LA基于三层设计(批量层、服务层和速度层),有助于基于批量处理或流处理方法以混合方式处理实时数据。

  1. 批量层:这一层的主要工作是管理主数据集和预计算批量视图。因此,任何数据都会进入批量层和速度层,这将有助于实时处理。
  2. 服务层:这一层从速度层获取近实时视图和从批量层获取的批量视图,并对其进行索引。这些索引是最新批量视图的可查询格式。
  3. 速度层:这一层创建最近数据的实时视图,为用户提供完整的数据视图以进行处理。

由于数据工程领域的显著增长,对工程师在传统批量处理方法上的工作需求很大。如今,许多组织都在遵循多个批量处理,而一些组织开始在流数据处理管道上工作。这主要是因为流处理方法涉及的复杂性问题,使其按预期工作。这些复杂性问题随着强大且易于使用的框架的引入,如Apache Flink、Apache Spark等,已经得到克服。

让考虑一个实时场景,以更好地理解数据工程领域。例如,考虑一个拥有数百万用户的付费网站提供商,他们登录并使用他们的账户中的服务,如Netflix、Amazon Prime等。但如果来自不同国家/地区的多个用户使用相同的账户和密码,这将导致提供服务的公司遭受巨大损失。因此,该公司希望避免这种欺诈行为,并且还要跟踪用户行为,如登录-注销、购买、创建和删除账户、设置更改等。

提出的系统使用以下方式处理数据:

Apache Kafka – 一个连接的机器群,也称为分布式流处理平台。 Apache Flink – 一个分布式处理引擎,有助于数据的状态处理。

Apache Kafka有助于从各种来源接收数据并可靠地存储它,还允许不同的应用程序以接收数据的顺序读取数据。Apache Flink将从Apache Kafka主题读取事件,处理过程是识别欺诈账户和用户行为日志记录。

欺诈账户检测:可以根据账户登录历史记录将账户视为欺诈账户。在监控登录活动时需要考虑以下两件事:

  1. 位置
  2. 登录时间
  1. 了解数据工程管道,这些管道解释了获取数据、预处理和存储数据的步骤和各种方法。
  2. 从古代到最新趋势的各种数据处理方法。
  3. 一个简单的示例,说明如何在实时中实施数据工程。
  4. Apache Kafka平台和Apache Flink框架如何使数据工程工作变得更容易。
  5. 了解行业对数据工程的需求。
沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485