ETL定义
ETL英文全称是Extraction-Transformation-Loading。中文意思是数据抽取、转换和加载。是将数据从多个源提取、转换和加载到数据仓库或其他统一数据存储库的过程。
随着数据库在1970年代的日益普及,ETL被引入为集成和加载数据以进行计算和分析的过程,最终成为处理数据仓库项目数据的主要方法。ETL代表提取、转换和加载,是一个数据集成过程,它将来自多个数据源的数据组合到加载到数据仓库或其他目标系统中的单个一致数据存储中。
- ETL为数据分析和机器学习工作流奠定了基础。通过一系列业务规则,ETL以一种满足特定商业智能需求的方式清理和组织数据,如月度报告,但它也可以处理更高级的分析,这可以改善后端流程或最终用户体验。组织通常使用ETL来:
- 从旧系统中提取数据
- 清理数据以提高数据质量并建立一致性
- 将数据加载到目标数据库中
1. ETLvsELT
ETL和ELT之间最明显的区别是操作顺序的差异。ELT从源位置复制或导出数据,但不是将其加载到暂存区域进行转换,而是将原始数据直接加载到目标数据存储中,以便根据需要进行转换。虽然这两个过程都利用各种数据存储库,例如数据库、数据仓库和数据湖,但每个过程都有其优点和缺点。ELT对于大容量、非结构化数据集特别有用,因为加载可以直接从源进行。ELT更适合大数据管理,因为它不需要太多的前期数据提取和存储规划。另一方面,ETL过程在开始时需要更多的定义。需要确定特定的数据点以进行提取,以及要跨不同源系统集成的任何潜在“密钥”。即使在这项工作完成后,也需要构建数据转换的业务规则。这项工作通常依赖于给定类型的数据分析的数据要求,这将决定数据需要具有的汇总级别。虽然ELT随着云数据库的采用而变得越来越流行,但它作为较新的过程也有其自身的缺点,这意味着最佳实践仍在建立中。
2. ETL的工作原理
了解ETL工作原理的最简单方法是了解流程的每个步骤中发生的情况。
提取
在数据提取期间,原始数据将从源位置复制或导出到暂存区域。数据管理团队可以从各种数据源中提取数据,这些数据源可以是结构化的,也可以是非结构化的。这些来源包括但不限于:- SQL或NoSQL服务器
- 客户关系管理和企业资源规划系统
- 平面文件
- 电子邮件
- 网页
变换
在暂存区域中,原始数据经过数据处理。在这里,数据被转换和整合,以用于其预期的分析用例。此阶段可能涉及以下任务:- 筛选、清理、重复数据消除、验证和验证数据。
- 根据原始数据执行计算、翻译或摘要。这可能包括更改行标题和列标题以保持一致性、转换货币或其他度量单位、编辑文本字符串等。
- 进行审计以确保数据质量和合规性
- 删除、加密或保护受行业或政府监管机构管理的数据
- 将数据格式化为表或联接表以匹配目标数据仓库的架构。
负荷
在最后一步中,转换后的数据将从暂存区域移动到目标数据仓库。通常,这涉及初始加载所有数据,然后定期加载增量数据更改,以及较少情况下的完全刷新以擦除和替换仓库中的数据。对于大多数使用ETL的组织来说,该过程是自动化的、定义明确的、连续的和批处理驱动的。通常,ETL发生在源系统和数据仓库上的流量最低的非工作时间。3. ETL和其他数据集成方法
ETL和ELT只是两种数据集成方法,还有其他方法也用于促进数据集成工作流。其中一些包括:- Change Data Capture(CDC)仅识别并捕获已更改的源数据,并将该数据移动到目标系统。CDC可用于减少ETL“提取”步骤期间所需的资源;它还可以独立用于实时移动已转换为数据湖或其他存储库的数据。
- 数据复制将数据源中的更改实时或批量复制到中央数据库。数据复制通常被列为一种数据集成方法。实际上,它最常用于创建用于灾难恢复的备份。
- 数据虚拟化使用软件抽象层来创建统一、集成、完全可用的数据视图,而无需将源数据物理复制、转换或加载到目标系统。数据虚拟化功能使组织能够从相同的源数据创建虚拟数据仓库、数据湖和数据集市以进行数据存储,而无需为每个数据源创建和管理单独的平台。虽然数据虚拟化可以与ETL一起使用,但它越来越被视为ETL和其他物理数据集成方法的替代方案。
- Stream Data Integration(SDI)就像它听起来一样-它持续实时消耗数据流,转换它们,并将其加载到目标系统进行分析。这里的关键词是连续。SDI不是集成在给定时间从源中提取的数据的快照,而是在数据可用时不断集成数据。SDI使数据存储能够为分析、机器学习和实时应用程序提供支持,从而改善客户体验、欺诈检测等。
4. ETL的优势和挑战
ETL解决方案通过在将数据加载到其他存储库之前执行数据清理来提高质量。ETL是一种耗时的批处理操作,建议更频繁地创建需要较少更新的较小目标数据存储库,而其他数据集成方法(包括ELT(提取、加载、转换)、更改数据捕获(CDC)和数据虚拟化)用于集成越来越大的更改数据量或实时数据流。5. 电子与安全转换器工具
过去,组织编写自己的ETL代码。现在有许多开源和商业ETL工具和云服务可供选择。这些产品的典型功能包括:- 全面的自动化和易用性:领先的ETL工具可自动执行从数据源到目标数据仓库的整个数据流。许多工具推荐用于提取、转换和加载数据的规则。
- 可视化的拖放界面:此功能可用于指定规则和数据流。
- 支持复杂的数据管理:这包括协助进行复杂计算、数据集成和字符串操作。
- 安全性和合规性:最好的ETL工具可以加密动态和静态数据,并经过认证符合行业或政府法规,如HIPAA和GDPR。
集成的未来-使用EAI的API
使用企业应用程序集成(EAI)的应用程序编程接口(API)可用于代替ETL,以获得更灵活、可扩展的解决方案,包括工作流集成。虽然ETL仍然是主要的数据集成资源,但EAI越来越多地与基于Web的设置中的API一起使用。