https://www.databricks.com/discover/etl
什么是ETL?
随着组织中数据量、数据源和数据类型的增长,在分析、数据科学和机器学习计划中使用这些数据来获得业务洞察力的重要性也在增加。优先考虑这些计划的需要给数据工程团队带来了越来越大的压力,因为将原始、混乱的数据处理成干净的数据。 新鲜、可靠的数据是实施这些举措的关键步骤。ETL代表Extract、Transform和Load,是数据工程师从不同来源提取数据、将数据转换为可用且可信的资源,并将这些数据加载到最终用户可以访问和使用的系统中,以解决业务问题。
ETL是如何运作的?
抽取(Extract)
这个过程的第一步是从目标源中提取数据,这些数据通常是异构的,如业务系统、API、传感器数据、营销工具和交易数据库等。正如你所看到的,这些数据类型中的一些可能是广泛使用的系统的结构化输出,而另一些则是半结构化的JSON服务器日志。有不同的方法来执行提取:
- 部分提取:获取数据最简单的方法是如果源系统在记录被更改时通知您。
- 部分提取(使用更新通知):并非所有系统都可以在发生更新时提供通知;但是,它们可以指向那些已更改的记录,并提供这些记录的提取。
- 完整提取:某些系统根本无法识别哪些数据已被更改。在这种情况下,完整提取是从系统中提取数据的唯一可能。这种方法需要具有相同格式的上一次提取的副本,以便您可以识别所做的更改。
转换(Transform)
第二步,将从源中提取的原始数据转换为可供不同应用程序使用的格式。在此阶段,数据通常会被清理、映射和转换为特定的模式,以满足操作需要。此过程需要进行多种类型的转换,以确保数据的质量和完整性,数据通常不会直接加载到目标数据源中。 但通常会将其上传到临时数据库。这一步可以确保在事情没有按计划进行时快速回滚。在此阶段,您可以生成法规遵从性的审计报告,或诊断和修复任何数据问题。
加载(Load)
最后,Load函数是将转换后的数据从临时区域写入目标数据库的过程,这些数据以前可能存在,也可能不存在。根据应用程序的要求,这个过程可能非常简单,也可能非常复杂。每个步骤都可以使用ETL工具或自定义代码来完成。
ETL 管道(或称数据管道)是实现 ETL 过程的机制。数据管道是一组工具和活动,用于将数据从一种存储和处理方式的系统转移到另一种不同存储和管理方式的系统。此外,管道允许自动从许多不同的来源获取信息,然后将其转换和整合到一个高性能的数据存储中。
ETL 的挑战
虽然 ETL 至关重要,但随着数据来源和类型的指数增长,构建和维护可靠的数据管道已成为数据工程中最具挑战性的部分之一。从一开始,构建确保数据可靠性的管道就既慢又困难。数据管道由复杂的代码和有限的可重用性构建而成。即使底层代码非常相似,在一个环境中构建的管道在另一个环境中也无法使用,这意味着数据工程师往往是瓶颈,每次都要重新发明轮子。除了管道开发之外,在日益复杂的管道架构中管理数据质量也非常困难。坏数据常常会在管道中未经检测就流过,从而降低整个数据集的价值。为了保持质量并确保可靠的洞察力,数据工程师需要编写大量的自定义代码,以在管道的每一步实施质量检查和验证。最后,随着管道的规模和复杂性增长,公司面临的管理压力增加,使得保持数据可靠性变得非常困难。数据处理基础设施需要设置、扩展、重启、修补和更新,这意味着时间和成本的增加。由于缺乏可见性和工具,管道故障难以识别,更难以解决。尽管面临所有这些挑战,可靠的 ETL 对于希望通过数据洞察驱动业务的公司来说仍然是至关重要的。没有维护数据可靠性标准的 ETL 工具,各部门需要在没有可靠指标或报告的情况下盲目做决策。为了继续扩展,数据工程师需要工具来简化和民主化 ETL,使 ETL 生命周期更加容易,并使数据团队能够构建和利用自己的数据管道,以更快地获得洞察。
在 Delta Lake 上自动实现可靠的 ETL
Delta Live Tables (DLT) 使得构建和管理在 Delta Lake 上提供高质量数据的可靠数据管道变得容易。DLT 帮助数据工程团队通过声明式管道开发、自动测试以及用于监控和恢复的深度可见性来简化 ETL 的开发和管理。