ETL 是什么?数据提取、转换和加载

提取、转换、加载(ETL)是一个成熟的过程,它使组织能够利用不同的数据,而不管数据驻留在何处或存储数据的格式如何。随着时间的推移,ETL随着业务需求的发展,支持NoSQL数据库中的流数据和非结构化数据以及关系数据库中的结构化数据

ETL为什么如此重要?无论这些决策是基于电子表格、商业智能系统、分析仪表板还是机器学习,数据质量都会影响业务决策的可靠性。

ETL是如何工作的

ETL涉及三个独立的过程:提取、传输和加载。工作流程往往作为一个正在进行的过程来实现。

该过程首先从目标源提取数据,目标源可能包括ERP、CRM和其他企业系统,以及来自第三方源的数据。不同的系统倾向于使用不同的数据格式,这些格式被规范化为一种通用格式,以便进一步处理。

提取、转换和加载过程是当今企业数据管理的重要组成部分。

转换阶段确保了数据的可用性。转换过程可能包括:

在加载阶段,数据被加载到目标目的地,目标目的地可以是数据仓库、云环境或分隔的平面文件。

临时和永久数据

ETL系统可以使用临时数据或永久数据,这取决于用例。例如,临时数据(数据的子集)可以用于报告或分析。永久数据可以从一个数据库迁移到另一个数据库,也可以从一个数据仓库迁移到另一个数据仓库。

现实生活中的ETL

ETL循环的处理方式如下:

数据迁移

数据迁移是数据从一台计算机、数据库、应用程序或存储设备到另一台计算机的移动。当组织实现It能力的现代化,用另一个供应商的产品替换一个供应商的产品,或者整合技术生态系统(例如在合并和收购期间)时,通常会这样做。在整合场景中,数据映射是必要的,因为现有系统和新系统倾向于使用不同的数据格式并以不同的方式组织数据。

尽管数据迁移倾向于自动进行,以加速流程并减少手工错误的可能性,但仍然需要小心处理,以避免不必要的业务中断。在执行迁移之前,应该了解并处理任何技术约束,以避免不必要的延迟或失败。同时,应该为终端用户提供充足的提前通知,并且迁移应该在对业务影响最小的时候(例如,在午夜,周末等等)进行计划。

数据流和控制流

数据流是数据从一个地方移动到另一个地方。在ETL过程中,目标源通过转换到目标目标。

控制流程确保处理任务已经按照正确的顺序完成。任务的优先级是线性的,这需要一个进程在另一个进程开始之前完成。

虽然控制流执行数据流任务,但是数据流(数据流任务)中的任务可以在完成之前触发另一个任务,这意味着数据流任务可以并行执行。

由于欧盟的通用数据保护法规(GDPR),数据流映射工具变得非常重要,因为组织需要解释他们正在处理什么个人身份信息(PII)以及他们如何处理这些信息。

并行处理

随着数据的快速增长,数据存储的可伸缩性变得非常重要,因此ETL软件现在也在利用并行处理的优势也就不足为奇了。当然,它的优点是提高了速度和可伸缩性,这在数据量不断增长的情况下是必要的。

并行处理能够:

重启,可恢复性

数据仓库过程考虑到故障,因此ETL过程可以重新运行并从运行错误中恢复。与其运行一个庞大的ETL进程,不如将该进程分解成按顺序或并行运行的更小的部分。每个数据流都标记了流程的行和元素,因此如果发生故障,就知道故障点。如果发生故障,则将ETL进程回滚到故障点,以便从该点重新运行该进程。

键的重要性

关系数据库使用键来建立和识别表之间的关系。键还用于标识表内的记录或数据行:

在数据仓库中,键非常重要,因为数据是从不同数据源加载到数据仓库中的。不同的数据源可能使用不同的属性作为主键。如果这样做,数据仓库可能要求将它们合并到一个维度中,该维度包含由各种主键表示的所有属性。

虚拟ETL

虚拟ETL利用虚拟数据来克服数据迁移和处理多个数据源的应用程序集成带来的一些挑战。从各种数据源收集的对象或实体被抽象出来,目的是创建内存或持久元数据存储库。持久元数据存储库允许ETL工具作为中间件进行持久化,这样数据协调和分析就可以在接近实时的情况下持续执行。

ETL与ELT

ETL和ELT涉及相同的过程,尽管顺序不同。ETL是自数据仓库出现之前就开始使用的传统流程顺序。大数据分析推动了 ELT,的普及,数据多样性也是如此。

ELT将提取的数据加载到进行转换的数据仓库中。与ETL不同,ELT不使用单独的转换引擎,它使用数据存储的处理能力来简化体系结构并加速转换过程。


ETL的挑战

ETL涉及到许多不同的技术和许多类型的数据。此外,挑战不只是与数据和工具相关。以下是一些可能遇到的挑战:

ETL工具

ETL工具类型多年来不断扩展。原始工具能够批量处理。后来,云工具变得可用,其中一些仍然做批处理,而另一些提供实时或接近实时的功能。还有一些ETL测试工具可以解决SQL脚本和电子表格容易出错、耗时的特性。他们保证:

实时工具可以更快地访问可用数据,这反映了数据驱动业务越来越实时性。与此同时,与上述所有功能相当的开源工具越来越流行,这反映了企业普遍采用开源工具的趋势。