数据仓库系列5-ETL是什么

什么是ETL?

ETL(Extract, Transform and Load)是从不同的源系统中提取数据,然后转换数据(如应用计算、连接等)并最终将数据加载到数据仓库系统中的过程。ETL 的完整形式是提取、转换和加载。

很容易认为创建数据仓库只是从多个来源提取数据并加载到数据仓库的数据库中。这与事实相去甚远,需要复杂的 ETL 过程。ETL 过程需要来自包括开发人员、分析师、测试人员、高层管理人员在内的各种利益相关者的积极投入,并且在技术上具有挑战性。

为了保持其作为决策者工具的价值,数据仓库系统需要随着业务的变化而变化。ETL 是数据仓库系统的重复活动(每天、每周、每月),需要敏捷、自动化和有据可查。

为什么需要ETL?

在组织中采用 ETL 的原因有很多:

  • 它可以帮助公司分析其业务数据以做出关键业务决策。
  • 事务型数据库无法回答 ETL 示例可以回答的复杂业务问题。
  • 数据仓库提供公共数据存储库
  • ETL 提供了一种将数据从各种来源移动到数据仓库中的方法。
  • 随着数据源的变化,数据仓库会自动更新。
  • 精心设计和记录的 ETL 系统对于数据仓库项目的成功几乎是必不可少的。
  • 允许验证数据转换、聚合和计算规则。
  • ETL 过程允许在源系统和目标系统之间比较样本数据。
  • ETL 过程可以执行复杂的转换并且需要额外的区域来存储数据。
  • ETL 有助于将数据迁移到数据仓库。转换为各种格式和类型以遵循一个一致的系统。
  • ETL 是一个预定义的过程,用于访问和操作源数据到目标数据库中。
  • 数据仓库中的 ETL 为业务提供了深刻的历史背景。
  • 它有助于提高生产力,因为它无需技术技能即可编码和重复使用。

数据仓库中的 ETL 过程

ETL 是一个 3 步过程

ETL流程

步骤 1) 提取

在 ETL 架构的这一步中,数据从源系统中提取到暂存区。在暂存区进行转换(如果有),以便源系统的性能不会降低。此外,如果将损坏的数据直接从源复制到数据仓库数据库中,回滚将是一个挑战。暂存区提供了在提取的数据进入数据仓库之前对其进行验证的机会。

数据仓库需要集成不同的系统、DBMS、硬件、操作系统和通信协议。来源可能包括大型机等遗留应用程序、定制应用程序、ATM 等接触点设备、呼叫交换机、文本文件、电子表格、ERP、来自供应商、合作伙伴等的数据。

因此,在物理提取和加载数据之前,需要一个逻辑数据映射。该数据映射描述了源数据和目标数据之间的关系。

三种数据提取方法:

  1. 完全提取
  2. 部分提取 - 没有更新通知。
  3. 部分提取 - 带有更新通知

无论使用何种方法,提取都不应影响源系统的性能和响应时间。这些源系统是实时生产数据库。任何放缓或锁定都可能影响公司的底线。

在提取期间完成了一些验证:

  • 将记录与源数据协调
  • 确保没有加载垃圾邮件/不需要的数据
  • 数据类型检查
  • 删除所有类型的重复/碎片数据
  • 检查所有钥匙是否到位

步骤 2) 转型

从源服务器提取的数据是原始数据,不能以其原始形式使用。因此,需要对其进行清理、映射和转换。事实上,这是 ETL 过程增加价值和更改数据以生成有洞察力的 BI 报告的关键步骤。

它是重要的 ETL 概念之一,您可以在其中对提取的数据应用一组函数。不需要任何转换的数据称为直接移动传递数据

在转换步骤中,您可以对数据进行自定义操作。例如,如果用户想要数据库中没有的销售收入总和。或者,如果表中的名字和姓氏在不同的列中。可以在加载之前连接它们。

数据集成问题

以下是数据完整性问题:

  1. 同一个人的不同拼写,如 Jon、John 等。
  2. 有多种表示公司名称的方法,例如 Google、Google Inc.
  3. 使用不同的名称,如克利夫兰、克利夫兰。
  4. 可能存在针对同一客户的不同应用生成不同账号的情况。
  5. 在某些数据所需的文件中仍为空白
  6. 在 POS 收集的无效产品作为手动输入可能会导致错误。

在此阶段完成验证

  • 过滤 – 只选择某些列加载
  • 使用规则和查找表进行数据标准化
  • 字符集转换和编码处理
  • 测量单位的转换,如日期时间转换、货币转换、数字转换等。
  • 数据阈值验证检查。例如,年龄不能超过两位数。
  • 从暂存区到中间表的数据流验证。
  • 必填字段不应留空。
  • 清洁(例如,将 NULL 映射到 0 或将 Gender Male 映射到“M”和将女性映射到“F”等)
  • 将一列拆分为多列并将多列合并为一列。
  • 转置行和列,
  • 使用查找来合并数据
  • 使用任何复杂的数据验证(例如,如果一行中的前两列是空的,那么它会自动拒绝处理该行)

步骤 3) 加载

将数据加载到目标数据仓库数据库是 ETL 过程的最后一步。在典型的数据仓库中,需要在相对较短的时间内(夜间)加载大量数据。因此,加载过程应该针对性能进行优化。

在加载失败的情况下,恢复机制应配置为从故障点重新启动而不会丢失数据完整性。数据仓库管理员需要根据当前的服务器性能监控、恢复、取消加载。

加载类型:

  • 初始加载— 填充所有数据仓库表
  • 增量负载——在需要时定期应用正在进行的更改。
  • 完全刷新 —擦除一个或多个表的内容并重新加载新数据。

负载验证

  • 确保关键字段数据既不缺失也不为空。
  • 基于目标表测试建模视图。
  • 检查组合值和计算的度量。
  • 维表和历史表中的数据检查。
  • 检查有关加载的事实和维度表的 BI 报告。

最佳实践 ETL 流程

以下是 ETL 流程步骤的最佳实践:

永远不要尝试清理所有数据:
每个组织都希望所有数据都干净,但他们中的大多数还没有准备好为等待或没有准备好等待。清理所有数据只会花费太长时间,因此最好不要尝试清理所有数据。

永远不要清洗任何东西:
总是计划清理一些东西,因为构建数据仓库的最大原因是提供更干净、更可靠的数据。

确定清理数据的成本:
在清理所有脏数据之前,确定每个脏数据元素的清理成本很重要。

为了加速查询处理,有辅助视图和索引:
为了降低存储成本,将汇总数据存储到磁盘磁带中。此外,需要在要存储的数据量与其详细使用之间进行权衡。在数据粒度级别进行权衡以降低存储成本。

概括:

  • ETL 代表提取、转换和加载。
  • ETL 提供了一种将数据从各种来源移动到数据仓库中的方法。
  • 在第一步抽取中,数据从源系统抽取到暂存区。
  • 在转换步骤中,对从源中提取的数据进行清理和转换。
  • 将数据加载到目标数据仓库是 ETL 过程的最后一步。

参考guru99

你可能感兴趣的:(数据仓库系列5-ETL是什么)