什么是 ETL?
ETL(意即提取、转换、加载)是一个数据集成过程,它将多个来源的数据合并、清理并组织成一个一致的数据集,用于存储在数据仓库、数据湖或其他目标系统中。
ETL 数据管道为数据分析和机器学习工作流提供了基础。通过一系列业务规则,ETL 清理和组织数据以满足特定的商业智能需求,例如月度报告,但它也可以进行更高级的分析,从而改善后端流程和最终用户体验。组织通常使用 ETL 管道来:
从旧版系统中提取数据
清理数据以提高数据质量并建立一致性
将数据加载到目标数据库
最新的 AI 新闻 + 洞察分析
在每周的 Think 时事通讯中,发现专家精选的有关 AI、云等的洞察分析和新闻。
立即订阅
ETL 如何演变
自算盘时代以来,企业一直在生成数据,但现代分析是在数字计算机和数据存储问世之后,才成为可能。
20 世纪 70 年代,随着向更大规模的集中式数据库的转变,我们取得了重大进展。随后,ETL 作为集成和加载数据以进行计算和分析的过程引入,最终成为处理数据仓库项目数据的主要方法。
20 世纪 80 年代末,数据仓库和从事务型数据库向以关系数据格式存储信息的关系数据库的转变趋势日益流行。较旧的事务数据库会逐笔交易地存储信息,并且每笔交易都会存储重复的客户信息,因此随着时间的推移,没有简单的方法以统一的方式访问客户数据。有了关系数据库,分析成为商业智能 (BI) 的基础和决策的重要工具。
在更复杂的 ETL 软件出现之前,早期的尝试主要是 IT 团队手动从各种系统和连接器中提取数据,将数据转换为通用格式,然后将其加载到互连的表中。尽管如此,早期的 ETL 步骤还是值得付出努力的,因为先进的算法,加上神经网络的兴起,为分析洞察带来了更深入的机会。
大数据时代在 20 世纪 90 年代到来,这个时代的计算速度和存储空间容量持续快速增长,社交媒体和物联网 (IoT) 等新来源带来了大量数据。限制因素仍然存在,数据通常存储在本地数据仓库中。
计算和 ETL 领域的下一个重大进步是云计算,它在 20 世纪 90 年代末开始流行。使用 Amazon Web Services (AWS)、Microsoft Azure 和 Snowflake 等数据仓库,现在可以从全球访问数据并快速扩展,从而使 ETL 解决方案能够提供卓越的详细洞察分析和新发现的竞争优势。
最新的发展是 ETL 解决方案使用流数据从大量数据中提供最新的见解。
Mixture of Experts | 12 月 12 日,第 85 集
解码 AI:每周新闻摘要
加入我们世界级的专家小组——工程师、研究人员、产品负责人等将为您甄别 AI 领域的真知灼见,带来最新的 AI 资讯与深度解析。
观看 Mixture of Experts 所有剧集
ETL 与 ELT
ETL 和 ELT(提取、加载、转换)之间最明显的区别是操作顺序的不同。ELT 从源位置复制或导出数据,但不是将其加载到暂存区域进行转换,而是将原始数据直接加载到目标数据存储,以根据需要进行转换。
虽然这两个流程都利用了各种数据存储库,例如数据库、数据仓库和数据湖,但每个流程都有其优点和缺点。ELT 适用于提取大量非结构化数据集,因为可以直接从源进行加载。ELT 更适合大数据管理,因为它不需要为数据提取和存储进行太多的前期规划。
ETL 流程在一开始就需要更多的定义。需要为数据提取确定特定数据点以及任何潜在的“密钥”,以便在不同的源系统之间集成。通常使用元数据来跟踪输入数据的来源。即使在这项工作完成后,还需要构建数据转换的业务规则。这项工作通常依赖于特定类型数据分析的数据需求,该需求将决定数据需要具有的汇总级别。
虽然随着云数据库的采用,ELT 管道变得越来越受欢迎,但 ELT 技术依然处于开发阶段,这意味着最佳实践仍在建立之中。
ETL 的工作原理
要了解 ETL 的工作原理,最简单的方法就是了解流程中每一步都发生了什么。
提取
在数据提取过程中,原始数据将从源位置复制或导出到暂存区域。数据管理团队可以从结构化或非结构化的不同来源中提取数据。这些数据类型包括但不限于:
SQL 或 NoSQL 服务器CRM 和 ERP 系统JSON 和 XML平面文件数据库电子邮件网页
转换
在暂存区,会对原始数据进行数据处理。在这里,数据得到转换和整合,以用于其预期的分析用例。转换过程的这一阶段可以包括:
过滤、清理、汇总、去重、验证和认证数据。基于原始数据进行计算、转换或汇总。这可能包括更改行标题和列标题以保持一致性、转换货币或其他计量单位、编辑文本字符串等。进行审计以确保数据质量和合规性,并计算指标。删除、加密或保护受行业或政府监管机构管理的数据。将数据格式化为表或联接表,以匹配目标数据仓库的模式。
加载
在这最后一步中,将转换后的数据从暂存区域移至目标数据仓库。通常,这涉及到对所有数据进行初始加载,然后定期加载增量数据变化,偶尔需要进行完全刷新以擦除和替换仓库中的数据。对于大多数使用 ETL 的组织而言,该流程是一个自动化流程,且定义明确、可连续执行和批量驱动。通常,ETL 加载流程发生在非工作时间,此时源系统和数据仓库的流量最低。
ETL 和其他数据集成方法
ETL 和 ELT 只是两种数据集成方法,还有其他方法也可用于促进数据集成工作流。其中包括:
变更数据捕获 (CDC) 仅识别和捕获已发生变更的源数据,并将该数据移动到目标系统。CDC 可用于减少 ETL 的“提取”步骤所需的资源,它还可以独立用于将已转换的数据实时移动到数据湖或其他存储库。
数据复制将数据源中的更改实时或批量复制到中央数据库。数据复制通常被列为一种数据集成方法。事实上,它最常用于创建灾难恢复备份。
数据虚拟化使用软件抽象层来创建一个统一、集成、完全可用的数据视图,而无需将源数据实际复制、转换或加载到目标系统。数据虚拟化功能使企业能够利用相同的数据存储源数据创建虚拟数据仓库、数据湖和数据集市,而无需为每个数据仓库、数据湖和数据集市建立和管理单独的平台,从而降低了成本和复杂性。虽然数据虚拟化可以与 ETL 一起使用,但它越来越被视为 ETL 和其他物理数据集成方法的替代方案。
流数据集成 (SDI) 顾名思义,它可以持续实时使用数据流,对其进行转换,并将其加载到目标系统进行分析。这里的关键词是持续。SDI 不是在特定时间集成从数据源提取的数据快照,而是在数据可用时不断进行集成。SDI 支持数据存储,为分析、机器学习和实时应用程序提供动力,以改善客户体验、欺诈检测等。
ETL 的优势和面临的挑战
ETL 解决方案在将数据加载到不同存储库之前会执行数据清理,以此来提高质量。ETL 是一种耗时的批处理操作,通常用于创建需要较少更新的较小目标数据存储库,而其他数据整合方法 – 包括 ELT(提取、加载和转换)、变更数据捕获 (CDC) 和数据虚拟化 – 则用于集成越来越大且发生变更的数据或实时数据流。
ETL 工具
过去,组织自己编写 ETL 代码。现在有许多开源和商用 ETL 工具和云服务可供选择。这些产品的典型功能包括:
全面自动化且易于使用:领先的 ETL 工具可自动执行从数据源到目标数据仓库的整个数据流。这样,数据工程师就可以摆脱移动和格式化数据的繁琐任务,从而更快获取结果并实现更高效的操作。
可视化的拖放界面:此功能可用于指定规则和数据流。
支持复杂的数据管理:这包括协助复杂的计算、数据集成和字符串操作。
安全性和合规性:最好的 ETL 工具会对动态和静态数据进行加密,并经过认证符合行业或政府法规(包括 HIPAA 和 GDPR)。
此外,许多 ETL 工具已经发展到包含 ELT 功能,并支持面向人工智能 (AI) 应用程序的实时数据和流数据集成。
集成的未来 - 使用 EAI 的 API
使用企业应用集成 (EAI) 的应用程序编程接口 (API) 可以代替 ETL,以获得更灵活、可扩展的解决方案,其中包括工作流集成。虽然 ETL 仍然是主要的数据集成资源,但在基于 web 的环境中 EAI 越来越多地与 API 配合使用。