数仓的数据加工过程-ETL

ETL代表Extract Transform和Load。ETL将所有三个数据库功能组合到一个工具中,以从一个数据库获取数据并将其放入另一个数据库。

**提取:**提取是从数据库中提取(读取)信息的过程。在此阶段,从多个或不同类型的来源收集数据。

**转换:**转换是将提取的数据从之前的形式转换为所需形式的过程。数据可以放入另一个数据库。可以通过使用规则或查找表或将数据与其他数据组合来进行转换。

**加载:**加载是将数据写入目标数据库的过程。

ETL用于在提取,转换和加载三个步骤的帮助下集成数据,并用于混合来自多个源的数据。它通常用于构建数据仓库。

在ETL过程中,数据从源系统中提取并转换为可以检查并存储到数据仓库或任何其他系统中的格式。ETL是一种备用但相关的方法,旨在将处理推送到数据库以提高性能。

示例

例如一个零售商店,它有不同的部门,如销售,营销,物流等部门。他们每个人都独立处理客户的信息,每个部门存储数据的方式是完全不同的。销售部门根据客户ID,而营销部门将客户的名称存储。如果我们想查看客户的历史,并想知道他/她因各种活动而购买的不同产品;这将是非常骨感的。

解决方案是使用数据仓库使用ETL以统一结构存储来自不同来源的信息。ETL工具从所有这些数据源中提取数据并转换数据(如应用计算,连接字段,删除不正确的数据字段等)并加载到数据仓库中。ETL可以将唯一数据集转换为统一结构。之后,我们再使用BI工具从这些数据中找出有意义的报告,仪表板,可视化。

1. 为什么需要ETL

需要ETL的原因有很多:

  • ETL帮助公司分析其业务数据,以制定关键业务决策。
  • 数据仓库提供共享数据存储库。
  • ETL提供了一种将数据从各种源移动到数据仓库的方法。
  • 随着数据源的变化,数据仓库将自动更新。
  • 精心设计和记录的ETL系统对于数据仓库项目的成功至关重要。
  • 事务数据库无法回答ETL可以解决的复杂业务问题。
  • 精心设计和记录的ETL系统对于数据仓库项目的成功至关重要。
  • ETL过程允许源系统和目标系统之间的样本数据比较。
  • ETL过程可以执行复杂的转换,并且需要额外的区域来存储数据。
  • ETL有助于将数据迁移到数据仓库中。
  • ETL是先前定义的用于访问和操作源数据到目标数据库的过程。
  • 出于商业目的,ETL提供深刻的历史背景。
  • 它有助于提高生产力,因为它已经编纂成文,可以在不需要技术技能的情况下重复使用。

2. ETL如何工作

数据从一个或多个源中提取,然后复制到数据仓库。当我们处理大量数据和多个源系统时,数据会得到整合。ETL用于将数据从一个数据库迁移到另一个数据库。ETL是需要从数据集市和数据仓库加载数据的过程。ETL是一个过程,也用于将数据从一种格式转换为另一种格式。

3. 数据仓库中的ETL过程

我们需要定期加载数据仓库,以便它能够促进业务分析。需要预期来自一个或多个操作系统的数据并将其复制到数据仓库中。数据仓库面临的挑战是多年来整合和重新安排大量数据。从源系统中提取数据并将其带入数据仓库的过程通常称为ETL。ETL的方法和任务已知多年。数据必须在尝试集成它们的应用程序或系统之间共享。

ETL是一个三步流程:

3.1. 提取

在此步骤中,将数据从源系统提取到ETL服务器或暂存区域。在该区域中进行转换,以使源系统的性能不降低。如果损坏的数据从源系统直接复制到数据仓库中,那么回滚将是一个挑战。暂存区域允许在数据仓库中移动之前验证提取的数据。

需要将系统集成到具有不同DBMS,硬件,操作系统和通信协议的数据仓库中。在物理提取和加载数据之前,需要逻辑数据映射。此数据映射描述了源和目标数据之间的所有关系。

有三种方法可以提取数据。

  • 完全提取
  • 部分提取 - 无更新通知
  • 部分提取 - 使用更新通知

无论我们是否使用任何提取方法,这都不应影响源系统的性能和响应时间。这些源系统是实时生产系统。

提取过程中的验证:

  • 使用源数据确认记录
  • 应检查数据类型
  • 它将检查所有键是否到位
  • 必须确保没有加载垃圾邮件/不需要的数据
  • 删除所有类型的片段和重复数据。
3.2. 转换类型

从源服务器提取的数据是原始的,不能以其原始形式使用。因此,应该映射,清理和转换数据。转换是ETL过程添加值并更改数据(例如BI报告)的重要步骤。

在此步骤中,对提取的数据应用一组函数。不需要任何转换的数据称为直接移动或传递数据。可以对数据应用自定义操作。例如,表中的名字和姓氏位于不同的列中,可以在加载之前将它们连接起来。

转换期间的验证:

  • 过滤:对于加载,仅选择特定列
  • 字符集转换和编码处理
  • 数据阈值和验证检查
  • 例如,年龄不能超过两位数
  • 必填字段不应留空。
  • 转置行和列。
  • 合并数据使用查找
3.3. 加载

将数据加载到数据仓库是ETL过程的最后一步。需要将大量数据加载到数据仓库中以获得简洁的时间。为了提高性能,应优化加载。

如果加载失败,则恢复机制应该从故障点重新启动而不会丢失数据完整性。数据仓库管理员需要根据服务器性能监视,恢复和取消加载。

加载类型

  • 初始加载 - 填满整个数据仓库表
  • 增量加载 - 在需要时应用更改。
  • 完全刷新 - 擦除一个或多个表的内容并使用新数据重新加载。

4. 总结

  • ETL也称为提取,加载和转换。
  • ETL提供了将数据从各种源移动到数据仓库的方法。
  • 第一步包括将数据从源系统提取到暂存区域。
  • 转换步骤包括清理和转换来自源的提取数据。
  • 将数据加载到数据仓库是ETL过程的最后一步。
相关推荐
2601_9622841715 天前
基于Apache Cassandra与Python的数据建模及ETL实践
python·nosql·etl·数据建模·apachecassandra
想吃披萨16 天前
Kettle下载地址
etl
RestCloud17 天前
飞书多维表格落地新思路:ETL做数据导入,豆包做业务智能分析
数据仓库·飞书·etl·数据传输·api对接·豆包
鸽芷咕19 天前
金仓KES向量数据库实战:一条SQL干掉ETL,机器人不再把停产货当现货卖
数据库·sql·etl
RestCloud21 天前
从Kettle迁移到ETLCloud:作业转换、调度迁移与平滑过渡方案
etl·kettle·etlcloud·数据传输·数据同步·数据集成平台
RestCloud22 天前
不同系统集成:CRM系统与ERP、财务系统的数据双向同步
etl·crm·erp·数据集成·etlcloud·数据传输·数据同步
Patrick在香港22 天前
把 Claude 塞进 pandas 管道:7 条脏地址实测,5 条自动清洗、2 条被闸门拦下
python·pandas·etl·claude·数据清洗
RestCloud1 个月前
行业数据集成架构对比:金融、制造、政务三大场景的差异化设计
金融·架构·制造·etl·etlcloud·数据传输·数据集成平台
zgl_200537791 个月前
源代码:跨数据库通用“字段级”数据血缘解析与图形化(2/3:标注信息的拆解、检验、保存)
大数据·数据库·数据仓库·sql·数据挖掘·etl·嵌入式实时数据库
楠楠子呀1 个月前
独立站聊天转化全链路:从二维码引流到数据复盘
java·javascript·数据仓库·python·c#·自动化·etl