当前位置: 首页 > news >正文

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


 

相关文章:

数仓的数据加工过程-ETL

ETL代表Extract Transform和Load。ETL将所有三个数据库功能组合到一个工具中,以从一个数据库获取数据并将其放入另一个数据库。 提取:提取是从数据库中提取(读取)信息的过程。在此阶段,从多个或不同类型的来源收集数据。 转换:转…...

自动驾驶中的多传感器时间同步

目录 前言 1.多传感器时间特点 2.统一时钟源 2.1 时钟源 2.2 PPSGPRMC 2.3 PTP 2.4 全域架构时间同步方案 3.时间戳误差 3.1 硬件同步 3.2 软件同步 3.2.3 其他方式 ① ROS 中的 message_filters 包 ② 双端队列 std::deque 参考: 前言 对多传感器数据…...

CYT3BB_4BB:Clock system

CYT3BB/4BB的时钟系统包括8-MHz IMO、2个ILO、4个看门狗计时器、4个PLL、一个FLL、5个时钟监控器(CSV)、一个8-33.34MHzECO和一个32.768-kHz WCO。   该时钟系统支持三个主时钟域: CLK_HF、CLK_SLOW和CLK_LF。 - CLK_HFx: CLK_HFx是活动模式的时钟。每个人都可以使用任…...

C# OpenCV机器视觉:利用CNN实现快速模板匹配

在一个阳光灿烂的周末,阿强正瘫在沙发上,百无聊赖地换着电视频道。突然,一则新闻吸引了他的注意:某博物馆里一幅珍贵的古画离奇失踪,警方怀疑是被一伙狡猾的盗贼偷走了,现场只留下一些模糊不清的监控画面&a…...

消息队列篇--通信协议扩展篇--二进制编码(ASCII,UTF-8,UTF-16,Unicode等)

1、ASCII(American Standard Code for Information Interchange) 范围:0 到 127(共 128 个字符)描述:ASCII 是一种早期的字符编码标准,主要用于表示英文字母、数字和一些常见的符号。每个字符占…...

Direct Preference Optimization (DPO): 一种无需强化学习的语言模型偏好优化方法

论文地址:https://arxiv.org/pdf/2305.18290 1. 背景与挑战 近年来,大规模无监督语言模型(LM)在知识获取和推理能力方面取得了显著进展,但如何精确控制其行为仍是一个难题。 现有的方法通常通过**强化学习从人类反馈&…...

跟我学C++中级篇——容器的连接

一、数据的整合 在实际的开发场景中,经常可以遇到以下的情况:有几个地方的数据需要整合在一起。解决办法也有很多,在不同的层面有不同的解决方式。比如经过清洗可以把非关系型数据转为关系型数据。但在底层编程的情况中会发现有几情况&#…...

java求职学习day15

多线程 1 基本概念 1.1 程序和进程的概念 (1)程序 - 数据结构 算法,主要指存放在硬盘上的可执行文件。 (2)进程 - 主要指运行在内存中的可执行文件。 (3)目前主流的操作系统都支持多进程&a…...

【脚本】如何禁用谷歌浏览器自动更新

这里写自定义目录标题 问题描述解决方法代码 问题描述 最近更新系统以后,发现chrome老是自己更新,导致我的代码也得跟着他更新,就跟一个拜托不掉的狗皮膏药一样。 解决方法 于是我写了一个脚本,以下代码都是bash代码&#xff0…...

【Linux】华为服务器使用U盘安装统信操作系统

目录 一、准备工作 1.1 下载UOS官方系统 1.2制作启动U盘 1.3 服务器智能管理系统iBMC 二、iBMC设置U盘启动 一、准备工作 1.1 下载UOS官方系统 服务器CPU的架构是x86-64还是aarch64),地址:统信UOS生态社区 - 打造操作系统创…...

WPF3-在xaml中引用其他程序集的名称空间

1. 如何在XAML里引用类库中的名称空间和类2. 小结 1. 如何在XAML里引用类库中的名称空间和类 首先需要记住一点:把类库引用到项目中是引用其中名称空间的物理基础,无论是C#还是XAML都是这样。 一旦将一个类库引用进程序,就可以引用其中的名…...

Python 在Word中添加、或删除超链接

在Word文档中,超链接是一种将文本或图像连接到其他文档、网页或同一文档中不同部分的功能。通过添加超链接,用户可以轻松地导航到相关信息,从而增强文档的互动性和可读性。本文将介绍如何使用Python在Word中添加超链接、或删除Word文档中的超…...

基于 WPF 平台使用纯 C# 实现动态处理 json 字符串

一、引言 在当今的软件开发领域,数据的交换与存储变得愈发频繁,JSON(JavaScript Object Notation)作为一种轻量级的数据交换格式,以其简洁、易读、便于解析和生成的特点,被广泛应用于各种应用程序中。在 W…...

「全网最细 + 实战源码案例」设计模式——单例设计模式

核心思想: 属于创建型设计模式,核心目的是确保一个类在整个程序运行期间只有一个实例,并提供一个全局访问点来获取该实例。 控制共享资源的访问(如数据库链接、配置管理、日志处理器等) 真实世界类比:政府…...

第01章 19 通过点数据逐级构建球体体数据的综合性小例子

用VTK库来创建一个三维图像数据(vtkImageData),并填充标量数据以表示一个球体的体数据。球的半径为50,体数据的空间间隔为1.0/1000。 首先,我需要包含VTK的头文件,并且创建一个vtkImageData对象。然后&…...

CVE-2024-23897-Jenkins任意文件读取漏洞复现

content Jenkins是什么CVE-2024-23897总结修复建议 Jenkins是什么 Jenkins是一人基于Java开发的、可扩展的持续集成引擎,用于持续、自动地构建/测试软件项目,可以监控一些定时执行的任务。 官网文档: Jenkins是一款开源 CI&CD 软件&…...

前端react后端java实现提交antd form表单成功即导出压缩包

前端&#xff08;React Ant Design&#xff09; 1. 创建表单&#xff1a;使用<Form>组件来创建你的表单。 2. 处理表单提交&#xff1a;在onFinish回调中发起请求到后端API&#xff0c;并处理响应。 import React from react; import { Form, Input, Button } from ant…...

基于ESP32的桌面小屏幕实战[6]:环境搭建和软件基础

摘要 本文分为两部分&#xff1a;Linux开发环境搭建和软件基础。Linux开发环境搭建介绍了Ubuntu虚拟机安装及SSH、Samba配置&#xff0c;可以实现用VSCode操作虚拟机。为了后续工作&#xff0c;搭建了乐鑫ESP32 SDK环境。软件基础介绍了Linux开发常用的软件基础&#xff0c;包…...

接口(完)

大家好&#xff0c;今天我们着重来总结一下接口的知识&#xff0c;并且将接口和抽象类的区别罗列一下&#xff0c;帮助我们更好的认识抽象类和接口。 2.7 抽象类和接口的区别. 抽类和接口都是Java中多态的常见使用方式,都需要重点掌握,同时又要认清两者的区别(重要!!&#xf…...

数据结构——实验七·排序

欢迎各位大佬们来到Tubishu的博客&#x1f31f; Tubishu是一名计算机本科生&#xff0c;不定期发送一些在学校的成果供佬们消遣~希望能为佬的编程之路添砖加瓦⭐&#x1f525; 求各位大佬们垂怜&#x1f525;点赞评论一下呗&#x1f525;&#x1f525; 本文专栏 ➡️ 数据结构 …...

挑战杯推荐项目

“人工智能”创意赛 - 智能艺术创作助手&#xff1a;借助大模型技术&#xff0c;开发能根据用户输入的主题、风格等要求&#xff0c;生成绘画、音乐、文学作品等多种形式艺术创作灵感或初稿的应用&#xff0c;帮助艺术家和创意爱好者激发创意、提高创作效率。 ​ - 个性化梦境…...

线程与协程

1. 线程与协程 1.1. “函数调用级别”的切换、上下文切换 1. 函数调用级别的切换 “函数调用级别的切换”是指&#xff1a;像函数调用/返回一样轻量地完成任务切换。 举例说明&#xff1a; 当你在程序中写一个函数调用&#xff1a; funcA() 然后 funcA 执行完后返回&…...

P3 QT项目----记事本(3.8)

3.8 记事本项目总结 项目源码 1.main.cpp #include "widget.h" #include <QApplication> int main(int argc, char *argv[]) {QApplication a(argc, argv);Widget w;w.show();return a.exec(); } 2.widget.cpp #include "widget.h" #include &q…...

TRS收益互换:跨境资本流动的金融创新工具与系统化解决方案

一、TRS收益互换的本质与业务逻辑 &#xff08;一&#xff09;概念解析 TRS&#xff08;Total Return Swap&#xff09;收益互换是一种金融衍生工具&#xff0c;指交易双方约定在未来一定期限内&#xff0c;基于特定资产或指数的表现进行现金流交换的协议。其核心特征包括&am…...

Ascend NPU上适配Step-Audio模型

1 概述 1.1 简述 Step-Audio 是业界首个集语音理解与生成控制一体化的产品级开源实时语音对话系统&#xff0c;支持多语言对话&#xff08;如 中文&#xff0c;英文&#xff0c;日语&#xff09;&#xff0c;语音情感&#xff08;如 开心&#xff0c;悲伤&#xff09;&#x…...

EtherNet/IP转DeviceNet协议网关详解

一&#xff0c;设备主要功能 疆鸿智能JH-DVN-EIP本产品是自主研发的一款EtherNet/IP从站功能的通讯网关。该产品主要功能是连接DeviceNet总线和EtherNet/IP网络&#xff0c;本网关连接到EtherNet/IP总线中做为从站使用&#xff0c;连接到DeviceNet总线中做为从站使用。 在自动…...

Spring AI与Spring Modulith核心技术解析

Spring AI核心架构解析 Spring AI&#xff08;https://spring.io/projects/spring-ai&#xff09;作为Spring生态中的AI集成框架&#xff0c;其核心设计理念是通过模块化架构降低AI应用的开发复杂度。与Python生态中的LangChain/LlamaIndex等工具类似&#xff0c;但特别为多语…...

AI书签管理工具开发全记录(十九):嵌入资源处理

1.前言 &#x1f4dd; 在上一篇文章中&#xff0c;我们完成了书签的导入导出功能。本篇文章我们研究如何处理嵌入资源&#xff0c;方便后续将资源打包到一个可执行文件中。 2.embed介绍 &#x1f3af; Go 1.16 引入了革命性的 embed 包&#xff0c;彻底改变了静态资源管理的…...

MySQL账号权限管理指南:安全创建账户与精细授权技巧

在MySQL数据库管理中&#xff0c;合理创建用户账号并分配精确权限是保障数据安全的核心环节。直接使用root账号进行所有操作不仅危险且难以审计操作行为。今天我们来全面解析MySQL账号创建与权限分配的专业方法。 一、为何需要创建独立账号&#xff1f; 最小权限原则&#xf…...

基于IDIG-GAN的小样本电机轴承故障诊断

目录 🔍 核心问题 一、IDIG-GAN模型原理 1. 整体架构 2. 核心创新点 (1) ​梯度归一化(Gradient Normalization)​​ (2) ​判别器梯度间隙正则化(Discriminator Gradient Gap Regularization)​​ (3) ​自注意力机制(Self-Attention)​​ 3. 完整损失函数 二…...