ETL--数据提取、转换、加载

在21世纪大数据时代,我们的系统中有来自各种来源的结构化和非结构化数据,包括:来自在线支付和客户关系管理(CRM)系统的客户数据、来自供应商系统的库存和运营数据、来自物联网(IoT)设备的传感器数据、来自社交媒体和客户反馈的营销数据、来自内部人力资源系统的员工数据等;通过应用提取、转换、加载(ETL)过程,可以以更易于分析的格式和结构准备单个原始数据集,从而产生更有意义的见解。例如,在线零售商可以分析来自销售点的数据来预测需求和管理库存。营销团队可以将 CRM 数据与社交媒体上的客户反馈相结合,以研究使用器行为。

简介

ETL,全称 Extract-Transform-Load,它是将大量的多个来源的原始数据经过提取(extract)、清洗加转换(transform)、加载(load)到目标存储数据仓库或数据湖的过程;并为存储、数据分析和机器学习(ML)做好准备;您可以通过数据分析满足特定的商业智能需求(例如预测业务决策的结果、生成报告和控制面板、减少无效运营等);我们可以通过ETL使流程更加可靠、准确、详细和高效,改进商业智能和分析.

extract 提取

在数据提取中,ETL工具从多个来源提取或复制原始数据并将其存储在暂存区域中。暂存区(或登录区)是用于临时存储提取数据的中间存储区。数据暂存区通常是暂时的,这意味着它们的内容在数据提取完成后会被删除。但是,暂存区也可能会出于故障排除的目的而保留数据存档。系统将数据从数据来源发送到目标数据存储的频率取决于底层变更数据捕获机制。
数据提取通常通过以下三种方式之一进行:

  1. 更新通知:在更新通知中,源系统会在数据记录发生更改时通知您。然后,您可以针对该更改运行提取过程。大多数数据库和 Web 应用程序都提供更新机制来支持这种数据集成方法。
  2. 增量提取:某些数据来源无法提供更新通知,但可以识别和提取在给定时间段内经过修改的数据。在这种情况下,系统会定期检查更改,例如每周一次、每月一次或活动结束时。您只需要提取已更改的数据。
  3. 完全提取:某些系统无法识别数据更改或发出通知,因此重新加载所有数据是唯一的选择。这种提取方法要求您保留上次提取的副本以检查哪些记录是新的。由于此方法涉及大量数据传输,因此我们建议您仅将其用于小型表格。

transform 转换

在数据转换中,ETL工具将转换和整合暂存区域中的原始数据,为目标数据仓库做好准备。数据转换阶段可能涉及以下类型的数据更改。

基本数据转换:基本转换通过消除错误、清空数据字段或简化数据来提高数据质量。这些转换的示例如下。

  1. 数据清理:数据清理可消除错误并将源数据映射到目标数据格式。例如,您可以将空数据字段映射到数字 0,将数据值“Parent”映射到“P”,或将“Child”映射到“C”。
  2. 数据去重复:数据清理中的去重复将识别并删除重复记录。
  3. 数据格式修订:格式修订会将字符集、测量单位和日期/时间值等数据转换为一致的格式。例如,一家食品公司可能有不同的配方数据库,其成分以千克和磅为单位。ETL 会将所有单位转换为磅。

高级数据转换;高级转换使用业务规则来优化数据以便于分析。这些转换的示例如下。

  1. 推导:推导将业务规则应用于您的数据,以根据现有值计算新值。例如,您可以通过减去费用或通过将每件商品的价格乘以订购的商品数量来计算购买的总成本来将收入转换为利润。
  2. 联结:在数据准备中,联结将链接来自不同数据来源的相同数据。例如,您可以通过将不同供应商的采购价值相加,并仅将最终总计存储在目标系统中来找出某件物品的总采购成本。
  3. 拆分:您可以在目标系统中将列或数据属性划分为多个列。例如,如果数据来源将客户名称保存为“Jane John Doe”,您可以将其拆分为名字、中间名和姓氏。
  4. 汇总:汇总通过将大量数据值减少到较小的数据集中来提高数据质量。例如,客户订单发票值可以有许多不同的小金额。您可以通过将给定时间段内的数据相加来汇总数据,以构建客户生命周期价值(CLV)指标。
  5. 加密:您可以通过在数据流到目标数据库之前添加加密来保护敏感数据,以遵守数据法律或数据隐私。

load 加载

在数据加载中,提取、转换、加载(ETL)工具会将转换后的数据从暂存区移动到目标数据仓库。对于大多数使用 ETL 的组织来说,该过程是自动化的、定义明确的、连续的和批处理驱动的。下面是两种加载数据的方法:

  1. 完全加载:在完全加载时,来自源的全部数据被转换并移动到数据仓库。完全加载通常发生在您第一次将数据从源系统加载到数据仓库中时。
  2. 增量加载 :在增量加载中,ETL 工具会定期加载目标系统和源系统之间的增量(或差异);它会存储最后提取日期,以便仅加载在此日期之后添加的记录;有两种方法可以实现增量加载:
    a. 流式增量加载:如果您的数据量较小,您可以通过数据管道将持续更改流式传输到目标数据仓库。当数据速度增加到每秒数百万个事件时,您可以使用事件流处理来监控和处理数据流,从而更及时地做出决策。
    b. 批量增量加载:如果您的数据量很大,您可以定期分批收集将负载数据更改。在此设定的时间段内,由于数据同步,源系统或目标系统都不会发生任何操作。

什么是 ELT?

提取、加载、转换(ELT)是提取、转换、加载(ETL)的扩展,它颠倒了操作的顺序。您可以在处理数据之前将数据直接加载到目标系统中。不需要中间暂存区,因为目标数据仓库中具有数据映射功能。随着云基础设施的采用,ELT 变得越来越流行,这为目标数据库提供了转换所需的处理能力。

ETL 与 ELT 的比较

  1. ELT 适用于需要频繁加载的大容量、非结构化数据集。它也是大数据的理想选择,因为可以在数据提取和存储之后进行分析规划。它将大部分转换留给分析阶段,并专注于将经过最少处理的原始数据加载到数据仓库中。
  2. ETL 过程在开始时需要更多的定义。分析需要从一开始就参与定义目标数据类型、结构和关系。数据科学家主要使用 ETL 将遗留数据库加载到仓库中,而 ELT 已成为当今的常态。

参考:https://aws.amazon.com/cn/what-is/etl/

posted @ 2023-03-13 17:10  du-z  阅读(420)  评论(0编辑  收藏  举报