数仓的数据加工过程-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过程的最后一步。


 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/893703.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Vue2下篇

插槽&#xff1a; 基本插槽&#xff1a; 普通插槽&#xff1a;父组件向子组件传递静态内容。基本插槽只能有一个slot标签&#xff0c;因为这个是默认的位置&#xff0c;所以只能有一个 <!-- ParentComponent.vue --> <template> <ChildComponent> <p>…

【Go面试】工作经验篇 (持续整合)

这里写目录标题 什么是逃逸分析服务端怎么接受客户端上传的文件说一下对gin框架的理解gin有哪些常用中间件gin怎么用swagger写接口文档nginx一般是用来做什么如果调用方法经常超时怎么办gin中怎么和mysql通信从mysql调数据到redis,如何同步延时双删redis ,mysql都不存在用户请求…

【科研建模】Pycaret自动机器学习框架使用流程及多分类项目实战案例详解

Pycaret自动机器学习框架使用流程及项目实战案例详解 1 Pycaret介绍2 安装及版本需求3 Pycaret自动机器学习框架使用流程3.1 Setup3.2 Compare Models3.3 Analyze Model3.4 Prediction3.5 Save Model4 多分类项目实战案例详解4.1 ✅ Setup4.2 ✅ Compare Models4.3 ✅ Experime…

C#牵手Blazor,解锁跨平台Web应用开发新姿势

一、引言 在当今数字化时代&#xff0c;Web 应用已成为人们生活和工作中不可或缺的一部分 &#xff0c;而开发跨平台的 Web 应用则是满足不同用户需求、扩大应用影响力的关键。C# 作为一种强大的编程语言&#xff0c;拥有丰富的类库和强大的功能&#xff0c;在企业级开发、游戏…

c语言函数(详解)

目录 前言 一、函数的基本概念和作用 二、函数的声明和定义 三、函数参数的传递方式 四、函数的递归 五、函数指针 总结 前言 本文主要讲解了c语言函数方面的内容 函数的定义和调用函数的返回值和参数函数的作用域和生命周期 函数的声明和定义 函数声明和函数定义的区别函数声…

管理方法(15)-- 向华为学习根因分析

1. 什么是根本原因 美国能源部1992年发布的《根本原因分析指南》(DOE-NE-STD-1004-92)中,把根本原因定义为:指一种原因,当这种原因被纠正以后,将会防止此类事故或者类似事故的再次发生。 定义:导致问题发生的源头或关键原因,同时这种原因能被识别和纠正,消除了该原因…

Oracle、PostgreSQL该学哪一个?

从事数据库运维一线工作的老鸟&#xff0c;经常会有人来问我&#xff1a;“Oracle 和 PostgreSQL&#xff0c;我该学哪个&#xff1f;哪个更有职业发展前景&#xff1f;” 今天就来和大家好好唠唠。 先说说 Oracle。它堪称数据库领域的 “老牌贵族”&#xff0c;功能极其强大。…

红黑树实现

目录 1. 红黑树的概念 1.1 红黑树的规则 1.2 红黑树如何确保最长路径不超过最短路径的2倍呢? 1.3 红黑树的效率 2. 红黑树的实现 2.1 红黑树的结构 2.2 红黑树的插入 2.2.1 红黑树插入一个值的大概过程 2.2.2 情况1:变色 2.2.3 情况2:单旋+变色 2.2.4 情况3:双旋+变…

Linux学习笔记——网络管理命令

一、网络基础知识 TCP/IP四层模型 以太网地址&#xff08;MAC地址&#xff09;&#xff1a; 段16进制数据 IP地址&#xff1a; 子网掩码&#xff1a; 二、接口管命令 ip命令&#xff1a;字符终端&#xff0c;立即生效&#xff0c;重启配置会丢失 nmcli命令&#xff1a;字符…

手撕Diffusion系列 - 第九期 - 改进为Stable Diffusion(原理介绍)

手撕Diffusion系列 - 第九期 - 改进为Stable Diffusion&#xff08;原理介绍&#xff09; 目录 手撕Diffusion系列 - 第九期 - 改进为Stable Diffusion&#xff08;原理介绍&#xff09;DDPM 原理图Stable Diffusion 原理Stable Diffusion的原理解释Stable Diffusion 和 Diffus…

JAVAweb学习日记(八) 请数据库模型MySQL

一、MySQL数据模型 二、SQL语言 三、DDL 详细见SQL学习日记内容 四、DQL-条件查询 五、DQL-分组查询 聚合函数&#xff1a; 分组查询&#xff1a; 六、DQL-分组查询 七、分页查询 八、多表设计-一对多&一对一&多对多 一对多-外键&#xff1a; 一对一&#xff1a; 多…

微信小程序1.1 微信小程序介绍

1.1 微信小程序介绍 内容提要 1.1 什么是微信小程序 1.2 微信小程序的功能 1.3 微信小程序使用场景 1.4 微信小程序能取代App吗 1.5 微信小程序的发展历程 1.6微信小程序带来的机会

左右互博02-unidbg主动调用外层so函数

unidbg 代码 ` package com.koohairev.demo;import com.github.unidbg.AndroidEmulator; import com.github.unidbg.LibraryResolver; import com.github.unidbg.Module; import com.github.unidbg.Symbol; import com.github.unidbg.arm.backend.DynarmicFactory; import com.…

7-Zip Mark-of-the-Web绕过漏洞复现(CVE-2025-0411)

免责申明: 本文所描述的漏洞及其复现步骤仅供网络安全研究与教育目的使用。任何人不得将本文提供的信息用于非法目的或未经授权的系统测试。作者不对任何由于使用本文信息而导致的直接或间接损害承担责任。如涉及侵权,请及时与我们联系,我们将尽快处理并删除相关内容。 0x0…

音频入门(一):音频基础知识与分类的基本流程

音频信号和图像信号在做分类时的基本流程类似&#xff0c;区别就在于预处理部分存在不同&#xff1b;本文简单介绍了下音频处理的方法&#xff0c;以及利用深度学习模型分类的基本流程。 目录 一、音频信号简介 1. 什么是音频信号 2. 音频信号长什么样 二、音频的深度学习分…

Midjourney中的强变化、弱变化、局部重绘的本质区别以及其有多逆天的功能

开篇 Midjourney中有3个图片“微调”&#xff0c;它们分别为&#xff1a; 强变化&#xff1b;弱变化&#xff1b;局部重绘&#xff1b; 在Discord里分别都是用命令唤出的&#xff0c;但如今随着AI技术的发达在类似AI可人一类的纯图形化界面中&#xff0c;我们发觉这样的逆天…

win暂停更新设置

暂停更新 Windows Registry Editor Version5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsUpdate\UX\Settings] "FlightSettingsMaxPauseDays"dword:00001b58 "PauseFeatureUpdatesStartTime""2023-07-07T10:00:52Z" "PauseFeatureU…

【Linux】命令为桥,存在为岸,穿越虚拟世界的哲学之道

文章目录 Linux基础入门&#xff1a;探索操作系统的内核与命令一、Linux背景与发展历史1.1 Linux的起源与发展1.2 Linux与Windows的对比 二、Linux的常用命令2.1 ls命令 - "List"&#xff08;列出文件)2.2 pwd命令 - "Print Working Directory"&#xff08…

[护网杯 2018]easy_tornado1

题目 、 依次点击文件查看 /flag.txt flag in /fllllllllllllag /welcome.txt render /hints.txt md5(cookie_secretmd5(filename)) tornado模板注入 报cookie /error?msg{{handler.settings}} cookie_secret: 6647062b-e68d-4406-90d3-06e307fa955c} 使用python脚本…

【力扣每日一题】LeetCode 2412: 完成所有交易的初始最少钱数

LeetCode 2412: 完成所有交易的初始最少钱数 题目解析 问题描述 给定一个二维数组 transactions&#xff0c;每个元素 transactions[i] [costi, cashbacki] 表示一个交易。对于每笔交易&#xff0c;要求你完成该交易时有足够的初始资金 money&#xff0c;并且交易会减少或增…