大数据ETL数据提取转换和加载处理

什么是 ETL?

提取转换加载(英语:Extract, transform, load,简称ETL),用来描述将资料从来源端经过抽取、转置、加载至目的端的过程。ETL一词较常用在数据仓库,但其对象并不限于数据仓库。

ETL(提取、转换、加载)指数据驱动型组织从多个来源收集数据,然后将数据集中起来以满足数据发现、报告、分析和决策需求的过程。

在 ETL 流程中,各种数据源的类型、格式、规模和可靠性可能大不相同,因此数据要经过处理才能供组织和用户使用。同时,面对不同的目标和技术实施条件,组织可能使用数据库、数据仓库或数据湖来存储目标数据。

ETL 的三个步骤

提取
在提取阶段,ETL 将识别数据并从数据源复制数据,以便将数据传输到目标数据存储。其中,数据源包括结构化数据源和非结构化数据源,例如文档、电子邮件、业务应用、数据库、设备、传感器、第三方等等。

转换
ETL 对上一步骤提取的原始格式的原始数据进行映射和转换,为最终数据存储做好准备。在转换过程中,ETL 将按照适当方式校验和验证数据,进行数据去重和/或聚合,确保数据可靠、可查询。

加载
ETL 将转换后的数据移动到目标数据存储。加载操作可分为两种,一种是初始加载所有源数据,另一种是加载源数据的增量变更。另外,您既可以实时加载数据,也可以按计划分批加载。

ELT 和 ETL 的区别

转换是 ETL 流程中最复杂的步骤。因此,ETL 和 ELT 的区别主要体现在两点上:

  • 转换操作时间
  • 转换操作位置

对于传统的数据仓库,企业首先从“源系统”(ERP 系统、CRM 系统等等)提取数据。然后,由于需要对数据集维度进行标准化,获取聚合数据,才能使用 OLAP 工具和运行 SQL 查询,企业必须对数据进行一系列转换操作。

过去,数据转换是在将数据加载到目标系统(通常为关系数据仓库)之前完成的。

如今,数据仓库的底层数据存储和处理技术的发展,让企业得以在目标系统中进行转换操作。ETL 和 ELT 流程都包含数据中转区域。在 ETL 中,中转区域位于专有或定制工具中,位于源系统(例如 CRM 系统)和目标系统(例如数据仓库)之间。

而在 ELT 中,中转区域位于数据仓库中,由 DBMS 的数据库引擎执行转换操作。因此,ELT 消除了 ETL 旨在辅助数据转换的数据准备和清洗功能。

ETL 和企业数据仓库

过去,ETL 工具主要用于向企业数据仓库交付数据,满足商务智能 (BI) 应用需求。数据仓库用于提供一个关于企业内所有活动的可靠信息源,其中的数据是基于严格的模式、元数据和验证规则构建的。

面向企业数据仓库的 ETL 工具必须满足数据集成需求,例如高容量、高性能批次加载;事件驱动、滴流馈给的集成流程;可编程转换;以及编排。只有这样,它们才能满足最严苛的转换任务和工作流要求,为多样化的数据源提供连接器。

在加载数据后,企业可使用多种策略确保数据源与目标数据存储同步,例如定期重新加载完整数据集,定期更新最新数据,或在数据源与目标数据仓库之间执行全量同步。这种实时集成又被称为变更数据捕获 (CDC)。对于这一高级流程,ETL 工具必须能够洞悉源数据库的事务语义,并正确地将事务传输到目标数据仓库。

ETL 和数据集市

与企业数据仓库相比,数据集市规模更小,更多是用作目标数据存储。它们通常专注于某一个部门或某一个产品线的信息。因此,面向数据集市的 ETL 工具的用户主要是业务线 (LOB) 专家、数据分析师和/或数据科学家。

面向数据集市的 ETL 工具必须适合业务人员和数据经理使用,而不是编程人员和 IT 人员。因此,它们应搭载可视化工作流,以此简化 ETL 管道设置。

ETL、ELT 和数据湖

数据湖与数据仓库、数据集市不同,它一般通过对象存储或 Hadoop 分布式文件系统 (HDFS) 存储数据,因此可以存储无模式的、结构化程度较低的数据;支持使用多种工具来查询非结构化数据。

数据湖也支持 ETL(提取、转换和加载)。它能够以 “as-is” 状态存储数据,支持在捕获数据后转换、分析和处理数据。这带来了以下优势:

  • 全面记录所有数据,避免因聚合或过滤而丢失任何信号。
  • 超快速摄取数据,尤其适用于物联网 (IoT) 流处理、日志分析、网站指标等场景。
  • 在捕获数据时发现趋势。
  • 支持部署新型人工智能 (AI) 技术,从而检测大规模的非结构化数据集中的模式。

面向数据湖的 ETL 工具应提供可视化数据集成工具,这有助于提高数据科学家和数据工程师效率。数据湖架构中的其他常见工具还包括:

  • Cloud Streaming 服务:将大规模的实时数据流摄取到数据湖,满足消息传递、应用日志、运营遥测、Web 点击流数据跟踪、事件处理以及安全分析服务需求。此外,与 Kafka 兼容可确保这些服务能够从近乎无限的数据源检索数据。
  • 基于 Spark 的云技术服务:快速对大型数据集执行数据处理和转换。Spark 服务可从对象存储或 HDFS 加载数据集,然后跨可扩展计算实例集群,在内存中处理和转换数据,最后将数据写回数据湖或数据集市和/或数据仓库。

ETL 使用场景

ETL 流程能够极其快速、可靠地将数据摄取到数据湖,满足数据科学和分析需求,同时创建高质量的模式,对于众多行业都至关重要。同时,ETL 解决方案还可以规模化地加载和转换事务性数据,为大规模数据创建有序视图。这样,企业可以可视化地展现和预测行业趋势。在现实中,众多行业都采用 ETL 流程来捕获切实可行的洞察,实现快速决策并提高效率。

金融服务
金融服务机构通常要采集大量的结构化数据和非结构化数据,以此捕获客户行为洞察。基于这些洞察,金融服务机构可以更好地分析风险,优化银行金融服务和线上平台,甚至为 ATM 供应现金。

石油和天然气
石油和天然气行业一般使用 ETL 解决方案来生成特定地理区域油气资源的使用、存储和趋势预测。ETL 可充分收集一个提炼站点所有传感器的信息,然后处理信息,使信息易于读取。

汽车
ETL 解决方案可帮助汽车经销商和制造商洞悉销售模式,调整营销活动,补充库存以及跟进销售线索。

电信
面对当今前所未来的数据规模和数据类型,电信服务提供商采用 ETL 解决方案来更好地管理和洞悉数据。在处理和分析数据后,企业可基于数据洞察改善广告、社交媒体、SEO、客户满意度和盈利能力等等。

医疗保健
为降低成本和改善服务,医疗保健行业采用 ETL 解决方案管理患者记录、收集保险信息和满足不断变化的监管要求。

生命科学
临床实验室采用 ETL 解决方案和人工智能 (AI) 技术来处理研究机构生成的各种类型的数据。例如,在疫苗开发协作中,实验室需要收集、处理和分析大量数据。

公共部门
随着物联网 (IoT) 功能的迅猛发展,智慧城市使用 ETL 和人工智能技术来优化流量、监视水质、提高停车率等等。

ETL常用工具

  • OWB(Oracle Warehouse Builder)
  • ODI(Oracle Data Integrator)
  • Informatic PowerCenter
  • AICloudETL、DataStage
  • Repository Explorer
  • Beeload
  • Canal
  • DataSpider
  • DataX
  • Kettle
  • Flink
  • Spark Streaming
  • TASCTL
  • Confluent
  • Fivetran
  • FlyData
  • Matillion
  • SnapLogic
  • StreamSets
  • Striim
  • Alooma
  • Flume
  • Sqoop
  • Lambda Architecture

比较常用的是:Sqoop、Kettle、Canal、DataX、StreamSets。笔者用过Datax对各种数据源的支持较好。

ETL工作原理

ETL架构

ETL过程概览

提取、转换、加载(ETL)的工作是定期将数据从源系统移动到目标系统。ETL 过程分三个步骤:

  1. 从源数据库中提取相关数据
  2. 转换数据,使其更适合分析
  3. 将数据加载到目标数据库

数据集市数据采集示意图:

Extract提取

在数据提取过程中,原始数据将从源位置复制或导出到暂存区域。数据管理团队可以从各种结构化或非结构化数据源中提取数据。这些来源包括但不限于:

  • SQL 或 NoSQL 服务器
  • CRM 和 ERP 系统
  • 平面文件
  • 电子邮件
  • 网页

什么是数据提取?

在数据提取中,提取、转换、加载(ETL)工具从多个来源提取或复制原始数据并将其存储在暂存区域中。暂存区(或登录区)是用于临时存储提取数据的中间存储区。数据暂存区通常是暂时的,这意味着它们的内容在数据提取完成后会被删除。但是,暂存区也可能会出于故障排除的目的而保留数据存档。

系统将数据从数据来源发送到目标数据存储的频率取决于底层变更数据捕获机制。数据提取通常通过以下三种方式之一进行。

更新通知

在更新通知中,源系统会在数据记录发生更改时通知您。然后,您可以针对该更改运行提取过程。大多数数据库和 Web 应用程序都提供更新机制来支持这种数据集成方法。

增量提取

某些数据来源无法提供更新通知,但可以识别和提取在给定时间段内经过修改的数据。在这种情况下,系统会定期检查更改,例如每周一次、每月一次或活动结束时。您只需要提取已更改的数据。

完全提取

某些系统无法识别数据更改或发出通知,因此重新加载所有数据是唯一的选择。这种提取方法要求您保留上次提取的副本以检查哪些记录是新的。由于此方法涉及大量数据传输,因此我们建议您仅将其用于小型表格。

Transform转换

在暂存区,会对原始数据进行数据处理。在这里,数据得到转换和整合,以用于其预期的分析用例。此阶段可能涉及以下任务:

  • 过滤、清理、去重、验证和认证数据。
  • 基于原始数据进行计算、转换或汇总。这可能包括更改行标题和列标题以保持一致性、转换货币或其他计量单位、编辑文本字符串等。
  • 进行审计以确保数据质量和合规性。
  • 删除、加密或保护受行业或政府监管机构管理的数据。
  • 将数据格式化为表或联接表,以匹配目标数据仓库的模式。

什么是数据转换?

在数据转换中,提取、转换、加载(ETL)工具将转换和整合暂存区域中的原始数据,为目标数据仓库做好准备。数据转换阶段可能涉及以下类型的数据更改。

基本数据转换

基本转换通过消除错误、清空数据字段或简化数据来提高数据质量。这些转换的示例如下。

数据清理

数据清理可消除错误并将源数据映射到目标数据格式。例如,您可以将空数据字段映射到数字 0,将数据值“Parent”映射到“P”,或将“Child”映射到“C”。

数据去重复

数据清理中的去重复将识别并删除重复记录。

数据格式修订

格式修订会将字符集、测量单位和日期/时间值等数据转换为一致的格式。例如,一家食品公司可能有不同的配方数据库,其成分以千克和磅为单位。ETL 会将所有单位转换为磅。

高级数据转换

高级转换使用业务规则来优化数据以便于分析。这些转换的示例如下。

推导

推导将业务规则应用于您的数据,以根据现有值计算新值。例如,您可以通过减去费用或通过将每件商品的价格乘以订购的商品数量来计算购买的总成本来将收入转换为利润。

联结

在数据准备中,联结将链接来自不同数据来源的相同数据。例如,您可以通过将不同供应商的采购价值相加,并仅将最终总计存储在目标系统中来找出某件物品的总采购成本。

拆分

您可以在目标系统中将列或数据属性划分为多个列。例如,如果数据来源将客户名称保存为“Jane John Doe”,您可以将其拆分为名字、中间名和姓氏。

汇总

汇总通过将大量数据值减少到较小的数据集中来提高数据质量。例如,客户订单发票值可以有许多不同的小金额。您可以通过将给定时间段内的数据相加来汇总数据,以构建客户生命周期价值(CLV)指标。

加密

您可以通过在数据流到目标数据库之前添加加密来保护敏感数据,以遵守数据法律或数据隐私。

Load加载

在这最后一步中,将转换后的数据从暂存区域移至目标数据仓库。通常,这涉及到对所有数据进行初始加载,然后定期加载增量数据变化,偶尔需要进行完全刷新以擦除和替换仓库中的数据。对于大多数使用 ETL 的组织而言,该流程是一个自动化流程,且定义明确、可连续执行和批量驱动。通常,ETL 发生在非工作时间,此时源系统和数据仓库的流量最低。

什么是数据加载?

在数据加载中,提取、转换、加载(ETL)工具会将转换后的数据从暂存区移动到目标数据仓库。对于大多数使用 ETL 的组织来说,该过程是自动化的、定义明确的、连续的和批处理驱动的。下面是两种加载数据的方法。

完全加载

在完全加载时,来自源的全部数据被转换并移动到数据仓库。完全加载通常发生在您第一次将数据从源系统加载到数据仓库中时。

增量加载 

在增量加载中,ETL 工具会定期加载目标系统和源系统之间的增量(或差异)。它会存储最后提取日期,以便仅加载在此日期之后添加的记录。有两种方法可以实现增量加载。

流式增量加载

如果您的数据量较小,您可以通过数据管道将持续更改流式传输到目标数据仓库。当数据速度增加到每秒数百万个事件时,您可以使用事件流处理来监控和处理数据流,从而更及时地做出决策。

批量增量加载

如果您的数据量很大,您可以定期分批收集将负载数据更改。在此设定的时间段内,由于数据同步,源系统或目标系统都不会发生任何操作。

ETL算法

ETL处理核心诉求

ETL 表示提取转换、加载,ETL 是一个存在已久的数据集成流程,用于将多个来源的数据组合成单个一致的数据集,以便加载到数据仓库、数据湖或其他目标系统中。

 提取、转换、加载(ETL)过程将多个来源的数据组合到称为数据仓库的大型中央存储库中。ETL 使用一组业务规则来清理和组织原始数据,并为存储、数据分析和机器学习(ML)做好准备。您可以通过数据分析满足特定的商业智能需求(例如预测业务决策的结果、生成报告和控制面板、减少无效运营等)。

为什么 ETL 很重要?

今天的组织拥有来自各种来源的结构化和非结构化数据,包括:

  • 来自在线支付和客户关系管理(CRM)系统的客户数据
  • 来自供应商系统的库存和运营数据
  • 来自物联网(IoT)设备的传感器数据
  • 来自社交媒体和客户反馈的营销数据
  • 来自内部人力资源系统的员工数据

通过应用提取、转换、加载(ETL)过程,可以以更易于分析的格式和结构准备单个原始数据集,从而产生更有意义的见解。例如,在线零售商可以分析来自销售点的数据来预测需求和管理库存。营销团队可以将 CRM 数据与社交媒体上的客户反馈相结合,以研究使用器行为。

ETL 如何使BI商业智能受益?

提取、转换、加载(ETL)通过使流程更加可靠、准确、详细和高效来改进商业智能和分析。

历史背景

ETL 为组织的数据提供了深刻的历史背景。企业可以将遗留数据与来自新平台和应用程序的数据相结合。您可以查看较旧的数据集以及较新的信息,从而为您提供长期的数据视图。

合并数据视图

ETL 提供统一的数据视图,以便进行深入分析和报告。管理多个数据集需要时间和协调,并可能导致效率低下和延迟。ETL 会将数据库和各种形式的数据整合到一个统一的视图中。数据集成过程提高了数据质量并节省了移动、分类或标准化数据所需的时间。这使得分析、可视化和理解大型数据集变得更加容易。

准确的数据分析

ETL 提供更准确的数据分析,以满足合规性和监管标准。您可以将 ETL 工具与数据质量工具集成,对数据进行剖析、审计和清理,确保数据可信。

任务自动化

ETL 会自动执行可重复的数据处理任务以进行高效分析。ETL 工具会自动执行数据迁移过程,您可以将它们设置为定期,甚至在运行时集成数据更改。因此,数据工程师可以将更多时间用于创新,并减少在管理繁琐的任务(例如移动和格式化数据)上花费的时间。

更多参考资料

https://en.wikipedia.org/wiki/Extract,_transform,_load

什么是 ETL?| Oracle 中国

什么是 ETL(提取、转换、加载)?| IBM

什么是 ETL?- 提取、转换、加载简介 - AWS

https://zhuanlan.zhihu.com/p/352337320

一篇文章搞懂数据仓库:常用ETL工具、方法-腾讯云开发者社区-腾讯云

https://zhuanlan.zhihu.com/p/153315703

【知识】ETL大数据集成工具Sqoop、dataX、Kettle、Canal、StreamSets大比拼-腾讯云开发者社区-腾讯云

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

下载Edge/Chrome浏览器主题的背景图片

当我们为Edge安装了心仪的主题后,希望把对应的背景图片下载保存要怎么做呢,以下图的“湖心小屋”主题为例。如下图,我们已经在应用商店中按照了该主题。 当打开新标签页后,可以欣赏这个主题内置的背景图片。 如果想要下载这个背景…

【人工智能/计算机工程/大数据】第五届人工智能与计算工程国际学术会议(ICAICE 2024,2024年11月8-10日)

The 5th International Conference on Artificial Intelligence and Computer Engineering 第五届人工智能与计算工程国际学术会议(ICAICE 2024) 会议官网:www.event-icaice.org The 5th International Conference on Artificial Intellige…

外包干了5天,技术明显退步

我是一名本科生,自2019年起,我便在南京某软件公司担任功能测试的工作。这份工作虽然稳定,但日复一日的重复性工作让我逐渐陷入了舒适区,失去了前进的动力。两年的时光匆匆流逝,我却在原地踏步,技术没有丝毫…

【Vue】Vue扫盲(二)指令:v-for 、v-if、v-else-if、v-else、v-show

【Vue】Vue扫盲(一)事件标签、事件修饰符:click.prevent click.stop click.stop.prevent、按键修饰符、及常用指令 文章目录 一、v-for遍历数组数组角标遍历对象:Key作用介绍 二、v-if、v-show基本用法:案例&#xff1…

Linux--多路转接之epoll

上一篇:Linux–多路转接之select epoll epoll 是 Linux 下多路复用 I/O 接口 select/poll 的增强版本,它能显著提高程序在大量并发连接中只有少量活跃的情况下的系统 CPU 利用率。它是 Linux 下多路复用 API 的一个选择,相比 select 和 poll&#xff0c…

用于病理图像诊断的跨尺度多实例学习|文献速递-基于深度学习的医学影像分类,分割与多模态应用

Title 题目 Cross-scale multi-instance learning for pathological image diagnosis 用于病理图像诊断的跨尺度多实例学习 01 文献速递介绍 病理学是诊断炎症性肠病(如克罗恩病)的金标准(Gubatan等,2021;Yeshi等…

机器学习:opencv--人脸检测以及微笑检测

目录 前言 一、人脸检测的原理 1.特征提取 2.分类器 二、代码实现 1.图片预处理 2.加载分类器 3.进行人脸识别 4.标注人脸及显示 三、微笑检测 前言 人脸检测是计算机视觉中的一个重要任务,旨在自动识别图像或视频中的人脸。它可以用于多种应用&#xff0…

Vxe UI vue vxe-table select 下拉框选项列表数据量超大过大时卡顿解决方法

Vxe UI vue vxe-table vxe-grid select 下拉框选项列表数据量超大过大时卡顿解决方法 查看 github vxe-table 官网 vxe-table 本身支持虚拟滚动,数据量大也是支持的,但是如果在可编辑表格中使用下拉框,下拉框的数据量超大时,可能…

int QSqlQuery::size() const

返回结果的大小(返回的行数) 或者返回-1 (如果大小不能被决定 或者 数据库不支持报告查询的大小信息) 注意:对于非查询语句,将返回-1(isSelect()返回false) 如果查询不是活跃的&…

JS 分支语句

目录 1. 表达式与语句 1.1 表达式 1.2 语句 1.3 区别 2. 程序三大流控制语句 3. 分支语句 3.1 if 分支语句 3.2 双分支 if 语句 3.3 双分支语句案例 3.3.1 案例一 3.3.2 案例二 3.4 多分支语句 1. 表达式与语句 1.1 表达式 1.2 语句 1.3 区别 2. 程序三大流控制语…

基于方块编码的图像压缩matlab仿真,带GUI界面

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 4.1 编码单元的表示 4.2编码单元的编码 5.算法完整程序工程 1.算法运行效果图预览 (完整程序运行后无水印) 下图是随着方块大小的变化,图像的压缩率以及对应的图像质量指标PSN…

初始爬虫13(js逆向)

为了解决网页端的动态加载,加密设置等,所以需要js逆向操作。 JavaScript逆向可以分为三大部分:寻找入口,调试分析和模拟执行。 1.chrome在爬虫中的作用 1.1preserve log的使用 默认情况下,页面发生跳转之后&#xf…

echarts显示隐藏柱状图柱子的背景色

showBackground: true, //控制是否显示背景色backgroundStyle: {// color: rgba(180, 180, 180, 0.4) //背景色的颜色color: red} 关键代码是 showBackground: true, //控制是否显示背景色 设置为false或者直接而不写就是不显示背景色,默认是不显示背景色 true的时…

windows客户端SSH连接ubuntu/linux服务器,三种网络连接:局域网,内网穿透(sakuraftp),虚拟局域网(zerotier)

windows客户端SSH连接ubuntu/linux服务器,三种网络连接:局域网,内网穿透(sakuraftp),虚拟局域网(zerotier) 目录 SSH简述、三种网络连接特点SSH简述局域网内连接内网穿透&#xff08…

商业级免费OCR利器!Surya OCR:支持90+种语言识别,复杂布局识别,表格解析全覆盖!

❤️ 如果你也关注大模型与 AI 的发展现状,且对大模型应用开发非常感兴趣,我会快速跟你分享最新的感兴趣的 AI 应用和热点信息,也会不定期分享自己的想法和开源实例,欢迎关注我哦! 微信订阅号|搜一搜&…

机器学习实战27-基于双向长短期记忆网络 BiLSTM 的黄金价格模型研究

大家好,我是微学AI,今天给大家介绍一下机器学习实战27-基于双向长短期记忆网络 BiLSTM 的黄金价格模型研究。本文针对黄金价格预测问题,展开基于改造后的长短期记忆网络BiLSTM的黄金价格模型研究。文章首先介绍了项目背景,随后详细…

青少年编程能力等级测评CPA C++(二级)试卷(1)

青少年编程能力等级测评CPA C(二级)试卷(1) 一、单项选择题(共20题,每题3.5分,共70分) CP2_1_1.下列C程序段中,对二维数组arr的正确定义是( &am…

PCL滤波器之面试总结

体素滤波器:降采样,减小体量。 处理前 处理后 直通滤波器:获得想要的区域。 接着上一步继续处理 索引滤波(ExtractIndices滤波器): 接上图:反选效果,实际上删除的是这几个点,上图…

Qml-Item的函数使用

Qml-Item的函数使用 Item的提供了一些函数用于处理item之间父子关系,焦点链,以及item之间的坐标转换,本文重点示范item之间的坐标转换 Item的函数 函数childAt(real x,real y) :在item所在坐标系中,返回点point(x,y…

python pip安装requirements.txt依赖与国内镜像

python pip安装requirements.txt依赖与国内镜像 如果网络通畅,直接pip安装依赖: pip install -r requirements.txt 如果需要国内的镜像,可以考虑使用阿里的,在后面加上: -i http://mirrors.aliyun.com/pypi/simple --…