数据仓库ETL技术探究

article/2025/9/30 18:15:20

ETL概述

在构建商业智能系统的时候,如何正确有效地将分散在各个不同数据源中的信息整合到系统中成为了整个系统成败的关键,直接影响到系统的运行效率和最终结果。
ETL正是解决这一问题的有力工具。
ETL是指把数据从数据源装人数据仓库的过程,即数据的抽取(Extract)、转换(Transform)和装载(Load)过程。ETL过程的实质就是符合特定规则的数据流动过程,从不同异构数据源流向统一的目标数据。其间,数据的抽取、清洗、转换和装载形成串行或并行的过程,每个过程都必须符合特定的规则。根据国内外众多实践得到的共识,ETL规则设计和实施所需工作量约占整个项目的60%~80%。由于ETL过程的重要性和复杂性,如何设计正确、高效的ETL过程已经成为了商业智能系统构建过程中无法回避的重要问题。

1 数据理解

在设计ETL过程之前,有一项非常重要但经常被人们所忽略的工作,那就是数据理解。
数据理解是通过大量的调研和统计工作,了解数据的存储方式、数据量的大小、数据的格式、数据的业务含义等信息,同时还需要统计各种数值型数据的最大值、最小值和平均值,统计非数值型数据中各种不同的取值以及各种不同取值的个数。有了以上信息,ETL以后各个步骤的设计才能做到有的放矢,达到正确、高效的目的。

2 数据抽取

从源文件和源数据库中获取相关数据用于填充数据仓库,称为数据抽取。并非所有包含在不同操作型业务系统中的数据都需要抽取,通常只需要其中的一个子集。抽取数据的一个子集是基于对源系统和目标系统的扩展分析,一般会由终端用户和数据仓库专家共同决定。
在集成端进行数据的初始化时,一般需要将数据源端的全部数据装载进来,这时需要进行全量抽取。全量抽取类似于数据迁移或数据复制,它将数据源中的表或视图的数据全部从数据库中抽取出来,再进行后续的转换和加载操作。全量抽取可以使用数据复制、导入或者备份的方式完成,实现机制比较简单。
全量抽取完成后,后续的抽取操作只需抽取自上次抽取以来表中新增或修改的数据,这就是增量抽取

目前,数据抽取所涉及的单个技术环节都已相对成熟,但整体的集成度还很不够。市场上所提供的大多是数据抽取工具,这些工具通过用户选定源数据和目标数据的对应关系,会自动生成数据抽取的代码。但数据抽取工具支持的数据种类是有限的,同时数据抽取过程涉及数据的转换,它是一个与实际应用密切相关的部分,其复杂性使得不可嵌入用户编程的抽取工具往往不能满足要求。
因此,实际的数据仓库实施过程中往往不一定使用抽取工具。整个抽取过程能否因工具的使用而纳入有效的管理、调度和维护则更为重要。从市场发展来看,以数据抽取、异构互连产品为主项的数据仓库厂商一般都很有可能被其它拥有数据库产品的公司吞并。在数据仓库的世界里,它们只能成为辅助的角色。

3 数据清洗

数据仓库的外部数据源所提供的数据内容并不完美,存在着“脏数据”,即数据有空缺、噪声等缺陷,而且在数据仓库的各数据源之间,其内容也存在着不一致的现象。
为了控制这些“脏数据”对数据仓库分析结果的影响程度,必须采取各种有效的措施,对其进行处理,这一处理过程称为**“数据清洗”(Data Cleaning)。对于任何数据仓库而言,数据清洗过程都是必不可少的。
不同类型的“脏数据”,清洗处理的方法是不同的。
对于
数据空缺**:忽略元组、用一个全局常量填充、用属性的平均值填充、使用与给定元组同类的所有样本的平均值填充空缺值、使用最可能的值填充空缺值、使用像Bayesian公式或判定树这样的基于推断的方法;
对于噪声数据,可以用分箱或聚类等方法处理;
对于不一致的数据,则必须依据数据仓库所应用领域的特点,使用特定的方法加以解决。

4 数据转换

数据转换指接收来自不同运作系统的输入并将其转换成目标数据仓库中需要的格式的过程,包括数据的合并、汇总、过滤、转换等。
在设计数据转换时,由于数据源之间往往存在着不一致的问题,因此数据转换必须做到数据名称及格式的统一,同时对于源数据库中可能不存在的数据需要创建新的数据逻辑视图并进行相应的转换。

(1)直接映射。数据源字段和目标字段长度或精度相同,则无需做任何处理。
(2)字符串处理。从数据源的字符串字段中获取特定信息作为目标数据库的某个字段,则对字符串的操作有类型转换、字符串截取等。由于字符类型字段的随意性也可能造成脏数据的出现,所以在处理这种规则的时候,需要异常处理。
(3)字段运算。对于数值型字段来说,有时数据源的一个或多个字段进行数学运算而得到目标字段,则需要某些字段运算。
(4)空值判断。对于数据源字段中的NULL值,可能在目标数据库进行分析处理时会出问题,因此必须对空值进行判断,并转换成特定的值。
(5)日期转换。由于目标数据库中的日期类型格式是统一的,所以对数据源字段的日期格式需要相应的转换。
(6)聚集运算。对于目标数据库事实表中的一些度量字段,通常需要通过数据源一个或多个字段运用聚集函数进行聚集运算得来,常用的聚集函数有: sum. count,avg,min,max。
(7)既定取值。这条规则对于目标字段取一个固定的或是依赖系统的值,而不依赖于数据源字段。

5 数据加载

数据加载负责将经过前几步清洗和转换后的数据按照目标数据库元数据定义的表结构装入数据仓库。加载数据到目标数据仓库的两个基本方式是刷新方式和更新方式
**刷新方式(Refresh Mode)**是一种填充数据仓库的方法,采用在定期的间隔对目标数据进行批量重写的技术。也就是说,目标数据起初被写进数据仓库,然后每隔一定的时间,数据仓库被重写,替换以前的内容。这种加载方式越来越不流行。
**更新方式(Update Mode)**是一种只将源数据中的数据改变写进数据仓库的方法。为了支持数据仓库的周期,便于历史分析,新记录通常被写进数据仓库中,但不覆盖或删除以前的记录,而是通过时间戳来分辩它们。
刷新方式通常用于数据仓库首次被创建时填充数据仓库。更新方式通常用于目标数据仓库的维护。刷新方式通常与全量抽取相结合,而更新方式常与增量抽取相结合。

6 ETL过程建模

ETL过程是传统的数据处理过程,其输入是数据仓库数据源的各种业务处理系统的数据库,输出部分是数据仓库。ETL过程通常可以看做是一个以数据处理为中心的工作流,工作流中包括了数据抽取、数据转换、清洗以及数据加载等操作。ETL工具是负责处理这一类流程的数据集成工具。ETL过程设计的正确与否关系到数据仓库的可用性。
ETL过程的设计质量往往取决于能否对业务需求和数据仓库环境进行形式化建模。ET工作流模型包括ETL概念模型和ETL逻辑模型两部分。
在ETL流程设计中,首先应该根据业务需求和相关数据源的结构建立概念模型,确定源数据库与目标数据库之间的映射关系,然后根据概念模型建立逻辑模型。

6.1 ETL概念模型

概念建模是整个ETL流程设计的最初阶段。在这个阶段,ETL流程设计者的主要任务是搜集用户的需求,然后分析相关数据源的结构及其内容,确定抽取操作所使用的数据源。ETl概念模型主要是建立数据源与数据仓库的模式或者属性之间的映射关系,以及在映射过程所需要的转换和清洗操作。
ETL概念模型并不针对具体的工具制定,与数据库系统无关,与应用程序无关,与工具无关。在这一概念级中,不必考虑物理实现的细节,只把注意力集中在构造源与目标实体及属性之间的映射和转换关系上。

在这里插入图片描述
在这里插入图片描述
1.为了保证目标数据仓库中数据的完整性,需要从sl和s2两个数据源抽取数据,对它们执行并(union)操作。
2.为了与数据仓库中事实表的模式一致,必须对s1中的customer表和city表执行外连接,而且还要将s2中date属性的数据类型为日期格式(mm / dd / yyyy)转换成中国的日期格式(vy / mm / dd),还需要根据s2的其他属性组合(name、email)为s2表计算生成一个主键。
3.并运算、外连接运算以及日期转换属于概念模型中的转换transform),PK则属于约束(ETLconstrain)。

6.2 ETL逻辑模型

ETL概念模型并不是一个完整的工作流模型,它定义了数据源与目标数据仓库属性之间的映射关系以及中间必要的转换,但并不关注转换的语义以及执行顺序。
ETL流程的逻辑模型是一个以数据为中心的工作流模型,在逻辑建模阶段,ETL流程的设计者需要明确定义数据流所经过的各个活动的操作语义,并确定整个流程中各个活动的执行顺序。


http://chatgpt.dhexx.cn/article/78KVnhjo.shtml

相关文章

数据仓库与数据挖掘知识点梳理

数据仓库与数据挖掘知识点梳理 一:数据挖掘 1:什么是数据挖掘 数据挖掘是从大量的数据中挖掘出隐含的、未知的、用户可能感兴趣的和对决策有潜在价值的知识和规则。 ----简单的说,数据挖掘就是从大量的数据中发现有用信息的过程 数据的丰富…

Greenplum 实时数据仓库实践(1)——数据仓库简介

目录 1.1 什么是数据仓库 1.2 操作型系统与分析型系统 1.2.1 操作型系统 1.2.2 分析型系统 1.2.3 操作型系统和分析型系统对比 1.3 抽取-转换-装载 1.3.1 数据抽取 1.3.2 数据转换 1.3.3 数据装载 1.3.4 开发ETL系统的方法 1.4 数据仓库架构 1.4.1 基本架构 …

数据仓库 OLAP

一、数据库 vs. 数据仓库 1. 构建目的不同:数据库主要用于实现企业的日常业务管理,提高业务运营的效率 数据仓库用于将多个数据源的数据进行集成,用于分析,结果辅助决策 2. 管理数据不同:数据库通常只包含当前数据&…

数据仓库基本知识

目录 1.数据仓库 1.1 数据仓库起源 1.1.1 联机事务处理系统(On-Line Transaction Processing,OLTP) 1.1.2 联机分析处理系统(On-Line Analytical Processing,OLAP) 1.1.3 建立DW的基本条件 1.2 数据仓…

数据仓库框架指导

目录 1, 数据仓库 DW 2, 数据库 vs 数据仓库 3,数据仓库历史 3.1,历史 4,维度建模 4.1,概念 4.2,建模模型 4.3,结构 4.4,事实表 4.5&#xff…

Oracle 数据仓库详解

文章目录 1 概述2 数据仓库2.1 数仓分层2.2 维度建模 1 概述 数据库 VS 数据仓库 数据库是面向事务设计的,属于 OLTP(在线事务处理)系统,主要操作是随机读写;在设计时尽量避免冗余,常采用范式规范来设计数…

数据仓库原理

1.简介 1.1诞生背景 历史数据积存:历史数据使用频率 低,堆积在业务科中,导致性能下降;企业数据分析需要:各个部门自己建立独立的数据抽取系统,导致数据不一致; 1.2基本概述(Data …

数据仓库入门介绍

🍊最近很多学弟学妹问我,我实习的工作是内容是什么?有没有一些可参考的学习路线?每次我都说是数仓开发,但是很多同学不太了解什么是数据仓库,于是我就写一篇博客,来介绍一下数据仓库&#xff0c…

大数据开发---数据仓库技术

1、什么是数据仓库 数据仓库,英文名称为Data Warehouse,可简写为DW或DWH。数据仓库,是为企业所有级别的决策制定过程,提供所有类型数据支持的战略集合。它出于分析性报告和决策支持目的而创建。为需要业务智能的企业,提…

【简介】数据仓库技术实现

数据仓库建设方案有两种,一种是传统架构的数据仓库,一种是大数据架构的数据仓库。 传统数据仓库 传统数据仓库是由单机数据库发展而来的。业务数据库一般是关系型数据库(RDBMS),那数据仓库在建设初期,也会…

数据仓库需要的技术

数据仓库和技术 首先对于数仓我们应该知道,相比较于传统数据库来说,它需要的操作要相对简单一些,在数仓中没有联机更新数据的需要,只有一些非常少的锁定需要 然后了解一下数据仓库都有什么需求 1、管理大量的数据 对于数仓而言…

使用fprobe生成Netflow

可以在https://sourceforge.net/projects/fprobe/下载fprobe ubuntu deb下载地址 http://ftp.uni-bayreuth.de/debian/pool/main/f/fprobe/ centos rpm下载地址,可以使用以下地址搜索fprobe http://rpm.pbone.net/index.php3 fprobe的使用 假设eth2为流量镜像口&am…

Netflow、Netstream、sflow

理论性概念自行百度即可。 Netflow是cisco搞出来的,Netstream是HW搞出来的。不一定的点:netflow只能进行入方向的分析,Netstream可以进行出入方向的分析。Sflow是基于芯片的,降低了设备的CUP的压力。 NetFlow更多的是在路由器上得…

NetFlow网络流量分析

NetFlow是思科开发的协议。它用于记录有关穿越网络设备(如路由器,交换机或主机)的IP流量的元数据。启用NetFlow的设备会在接口级别生成元数据,并将此信息发送到流收集器,在流收集器中存储流记录以启用网络流量分析。网…

NetFlow学习总结

NetFlow学习总结 标签: netflow 由于工作需要,对NetFlow做了一些学习和调研,并总结成文档以供学习分享。 背景:随着系统的升级与漏洞的修补,入侵主机进而进行破坏的病毒攻击方式在攻击中所占比例逐渐减少,…

CentOS 7部署nfsen监控netflow

转载来源 :部署nfsen监控netflow : https://www.jianshu.com/p/011258907081 介绍 netflow和sflow可以帮助我们分析网络中的流量构成,抓取实施带宽使用情况,帮我们找出"hog"。作为collector的软件一般都是收费的&…

【NetFlow】NetFlow V9协议详细分析

无意中发现了一个巨牛的人工智能教程,忍不住分享一下给大家。教程不仅是零基础,通俗易懂,而且非常风趣幽默,像看小说一样!觉得太牛了,所以分享给大家。点这里可以跳转到教程。 摘自百度百科 Netflow技术最…

NETFLOW 与 SNMP两种不同的网络监控方法

SNMP(简单网络管理协议)和Netflow都是管理员常用的协议,因其能够提供网络可见性以及在某些情况下识别网络性能问题、网络瓶颈、系统资源分配问题等的原因而备受赞誉。在Netflow方面,像ManageEngine这样的第三方软件供应商可以极大…

NetFlow Analyzer无线网络管理

无线网络在机构中变得更加重要,因为它们越来越多地采用自带设备 (BYOD) 文化。机构环境中设备数量的增加使得保持最佳互联网性能变得困难。虽然有线网络监控很重要,但也有必要监控无线网络,因为它们更重要。 无论是处理安全问题还是网络性能…

网络协议之Netflow与sFlow协议

《NetFlow 与sFlow理解及比较》 (注:本文是个人对两种协议的理解,没有太多概念性的东西,适合对两种协议有一些基本了解的同学阅读。当然,本人知识有限,文章中的内容不保证没有知识错误,如若发现…