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

news2024/11/24 16:22:35

什么是 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大比拼-腾讯云开发者社区-腾讯云

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

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

相关文章

迎接国庆旅游热潮,火山引擎数据飞轮助力景区数智化升级

随着人们生活水平的提高和旅游消费观念的转变,国庆假期成为人们出行旅游的黄金时段。同程旅行发布的报告显示,北京、杭州、重庆、上海、南京、成都等城市仍是 “十一” 假期国内热门的目的地,而一些新兴的宝藏旅游目的地如新疆阿勒泰、云南迪…

《向量数据库指南》——Fivetran+Mlivus Cloud:打造AI搜索神器

哈哈,各位向量数据库和 AI 应用的同仁们,今天咱们来聊聊一个超级实用的话题——如何借助 Fivetran 和 Mlivus Cloud 构建 AI 驱动的搜索工具,从非结构化数据中挖掘出无尽的宝藏! 在这个信息爆炸的时代,非结构化数据已经成为了企业最重要的资产之一。它包含了大量的文本、…

进入猛增模式后,小米股价还剩下多少上涨空间?

猛兽财经核心观点: (1)小米集团的股价已经上涨到了2022年以来的最高点。 (2)股价从2023年的最低点上涨了185%以上。 (3)随着智能手机的需求反弹和电动汽车利润率的增长,猛兽财经认为…

YOLOv10改进策略【注意力机制篇】| NAM 即插即用模块,重新优化通道和空间注意力(含二次创新)

一、本文介绍 本文记录的是基于NAM模块的YOLOv10目标检测改进方法研究。 许多先前的研究专注于通过注意力操作捕获显著特征,但缺乏对权重贡献因素的考虑,而这些因素能够进一步抑制不重要的通道或像素。而本文利用NAM改进YOLOv10,通过权重的贡…

数字人直播违规被“封”,一文助你彻底解决!

随着数字人直播的日渐兴起,与之相关的各类消息逐渐进入到人们的视野之中,并开始成为众多企业、创业者以及技术爱好者所重点关注的对象。就目前的讨论情况来看,热度最高且讨论次数最多的便是数字人直播违规吗这一话题。 的确,从数字…

一个three三维 文字 粒子 着色器的作品用来感谢大家对github点星

一个three三维 文字 粒子 着色器的作品用来感谢大家对github点星 源链接:https://z2586300277.github.io/three-cesium-examples/#/codeMirror?navigationThreeJS&classifyshader&idtextStarShader 国内站点预览:http://threehub.cn github地…

CVE-2024-9014 pgAdmin4 OAuth2 client ID与secret敏感信息泄漏漏洞

文章目录 免责声明漏洞描述搜索语法漏洞复现nuclei修复建议 免责声明 本文章仅供学习与交流,请勿用于非法用途,均由使用者本人负责,文章作者不为此承担任何责任 漏洞描述 pgAdmin4 是开源数据库 PostgreSQL 的图形管理工具攻击者可构造恶意…

向量数据库!AI 时代的变革者还是泡沫?

向量数据库!AI 时代的变革者还是泡沫? 前言一、向量数据库的基本概念和原理二、向量数据库在AI中的应用场景三、向量数据库的优势和挑战四、向量数据库的发展现状和未来趋势五、向量数据库对AI发展的影响 前言 数据是 AI 的核心,而向量则是数…

一个设备不知道ip地址怎么办?应对策略来袭

在数字化时代,设备连接网络已成常态,IP地址作为设备的网络身份证,其重要性不言而喻。然而,面对设备IP地址遗失的困境,我们往往感到束手无策。 那么,一个设备不知道IP地址怎么办?本文将为你提供一…

中国通信技术革命史

文章目录 引言I 中国通信技术革命史电报中国卫星通信的历史固定电话寻呼机(BP机)大哥大(手机)制定自己的移动通信网络技术体系5G未来科技发展的总趋势:用更少的能量,传输、处理和存储更多的信息II 知识扩展通信史(单位能量的信息传输率越来越高,网络地不断融合。)超级智能…

秒杀系统的原则和注意项

做任何技术方案都需要结合当时的业务场景、资金情况、用户体量等维度综合考虑,没有最好的技术方案,只有最合适的技术方案。 做秒杀方案亦是如此,秒杀活动经常会引发高并发、系统宕机和库存超卖的棘手问题,作为开发者,我…

火情监测摄像机:守护生命与财产安全的“眼睛”

随着城市化进程的加快,火灾隐患日益增多。为了有效预防和及时应对火灾事故,火情监测摄像机应运而生,成为现代消防安全的重要组成部分。这种高科技设备不仅能够实时监控火灾发生,还能为救援提供宝贵的信息支持。火情监测摄像机主要…

vulnhub-THE PLANETS-EARTH靶机

下载并导入靶机至VMWare,设置网络模式为NAT,开机 开启攻击机(kali),也设置为Nat模式,与靶机处于同一网段 扫描靶机ip Nmap 192.168.114.0/24 扫描网段内活跃的主机 可以推断靶机ip为192.168.114.129 扫描…

什么是源代码加密?十种方法教你软件开发源代码加密

什么是源代码加密 源代码加密是一种安全措施,它通过加密技术对软件的源代码进行保护,以防止未授权的访问、泄露、篡改或逆向工程。源代码是软件程序的原始代码,通常由程序员编写,然后编译成可执行程序。由于源代码包含了软件的设…

攻防世界---->工业协议分析2

前言:做题笔记。 下载 PCAPNG 说明是一个网络数据包文件。 那么直接用Wireshark查看分析。 调整一下长度显示: 可以看到 ARP协议: UDP 进行通信。 长度都是58,我们去找变动点。 转: flag{7FoM2StkhePz} 题外话&…

画质修复哪个软件好?提升老旧照片画质的黑科技分享

朝霞好看?拍它!落日好看?拍它! 回头一翻相册才发现,只有那一小部分的光影好看,那就把它放大裁出来! 放大了画面,画质降低画面模糊了,反而没有肉眼看的画面好看了咋办&a…

COSPLAY大赛静态HTML网页模板源码

源码名称:COSPLAY大赛静态HTML网页模板 源码介绍:一款cosplay大赛HTML网页模板源码,过往参赛选手会自动从腾讯大赛获取,可用于cosplay大赛,漫展等。 需求环境:H5 下载地址: https://www.5188…

SpringBoot框架下旅游管理系统的创新设计与实现

第二章 相关技术简介 2.1 JAVA技术 本次系统开发采用的是面向对象的Java作为软件编程语言,Java表面上很像C,但是Java仅仅是继承了C的某些优点,程序员很少使用的C语言的特征在Java设计中去掉了。Java编程语言并没有什么结构,它把数…

Linux:进程调度算法和进程地址空间

✨✨✨学习的道路很枯燥,希望我们能并肩走下来! 文章目录 目录 文章目录 前言 一 进程调度算法 1.1 进程队列数据结构 1.2 优先级 ​编辑 1.3 活动队列 ​编辑 1.4 过期队列 1.5 active指针和expired指针 1.6 进程连接 二 进程地址空间 2.1 …

uniapp 游戏 - 使用 uniapp 实现的扫雷游戏

0. 思路 1. 效果图 2. 游戏规则 扫雷的规则很简单。盘面上有许多方格,方格中随机分布着一些雷。你的目标是避开雷,打开其他所有格子。一个非雷格中的数字表示其相邻 8 格子中的雷数,你可以利用这个信息推导出安全格和雷的位置。你可以用右键在你认为是雷的地方插旗(称为标…