拓展阅读
概览
ETL
source: kakfa/mysql/oracle/neo4j
target: ES/neo4j/mysql/TDEngine
支持特性:CDC / checkpoint
自己写的 logstash4j,学习一下别人的长处。
ETL 与 ELT 之间有什么区别?
提取、转换、加载(ETL)和提取、加载、转换(ELT)是两种用于分析的数据处理方法。
大型组织拥有来自其运营各个方面的数百个(甚至数千)个数据来源,例如应用程序、传感器、IT 基础设施和第三方合作伙伴。
他们必须筛选、整理和清理如此庞大的数据量,使其可用于分析和商业智能。在集中集成之前,ETL 方法使用一组业务规则处理来自多个来源的数据。
ELT 方法按原样加载数据,并在稍后阶段对其进行转换,具体取决于应用场景和分析要求。
ETL 过程在开始时需要更多的定义。分析必须从一开始就参与定义目标数据类型、结构和关系。
数据科学家主要使用 ETL 将遗留数据库加载到数据仓库中,而 ELT 已成为当今的常态。
ETL 和 ELT 有何相似之处?
提取、转换、加载(ETL)和提取、加载、转换(ELT)都是准备数据以供进一步分析的流程序列。
这两个流程都可以捕获、处理和加载数据,以便在三个步骤中进行分析。
提取
提取是 ETL 和 ELT 流程的第一步。此步骤旨在从不同来源收集原始数据。
这些来源可能是数据库、文件、软件即服务(SaaS)应用程序、物联网(IoT)传感器或应用程序事件。您可以在此阶段收集半结构化、结构化或非结构化数据。
转型
在 ETL 流程中,转换是第二步,而在 ELT 中是第三步。此步骤的重点是将原始数据从其原始结构更改为满足目标系统(即您计划在其中存储数据以供分析的系统)要求的格式。
以下是一些转换示例:
-
更改数据类型或格式
-
删除不一致或不准确的数据。
-
删除重复数据。
您可以应用规则和函数在目标系统中清理和准备数据以供分析。
加载
在此阶段,您将数据存储到目标数据库中。ETL 将加载数据作为最后一步处理,因此报告工具可以直接使用它来生成可操作的报告和见解。
但是,在 ELT 中,您仍然需要在加载提取的数据后对其进行转换。
ELT 和 ETL 流程有何不同?
接下来,我们将概述提取、转换、加载(ETL)以及提取、加载、转换(ELT)的流程。
您还可以了解一些历史背景。
ETL 流程
ETL 有三个步骤:
-
从各种来源提取原始数据
-
使用辅助处理服务器来转换该数据
-
将该数据加载到目标数据库中
转换阶段确保符合目标数据库的结构要求。只有在数据转换完成并准备就绪后,才能移动数据。
ELT 流程
以下是 ELT 的三个步骤:
-
从各种来源提取原始数据
-
将数据以自然状态加载到数据仓库或数据湖中
-
在目标系统中根据需要对数据进行转换
使用 ELT,所有数据清理、转换和丰富都发生在数据仓库中。您可以根据需要多次与原始数据进行交互并转换数据。
ETL 和 ELT 的历史
ETL 于 1970 年代问世,随着数据仓库的兴起,ETL 变得特别受欢迎。
但是,传统的数据仓库需要为每个数据来源自定义 ETL 流程。
云技术的演变带来了新的可能。公司现在可以大规模存储无限量的原始数据,然后根据需要进行分析。
ELT 成为实现高效分析的现代数据集成方法。
主要区别:ETL 与ELT
提取、加载、转换(ELT)在多个方面对提取、转换、加载(ETL)进行了改进。
转换和加载位置
转换和加载发生在不同的位置并使用不同的流程。ETL 流程在辅助处理服务器上转换数据。
相比之下,ELT 流程将原始数据直接加载到目标数据仓库中。在那里,您可以根据需要随时转换数据。
数据兼容性
ETL 最适用于结构化数据,您可以在包含行和列的表中显示这些数据。它将一组结构化数据转换为另一种结构化格式,然后进行加载。
相比之下,ELT 可以处理所有类型的数据,包括无法以表格式存储的非结构化数据,例如图像或文档。
使用 ELT,该流程将各种数据格式加载到目标数据仓库中。在那里,您可以将其进一步转换为所需的格式。
速度
ELT 比 ETL 更快。ETL 在将数据加载到目标之前还需要执行一个步骤,该步骤难以扩展,并且会随着数据大小的增加而减慢系统的速度。
相比之下,ELT 可以将数据直接加载到目标系统,同时并行转换。它利用云数据仓库提供的处理能力和并行化为分析提供实时或近乎实时的数据转换。
成本
ETL 流程从一开始就需要分析参与。它需要分析师提前计划他们想要生成的报告,并定义数据结构和格式。设置所需的时间增加,进而导致成本增加。用于转换的额外服务器基础设施也会增加成本。
ELT 的系统比 ETL 少,因为所有转换都发生在目标数据仓库内。系统越少,需要维护的就越少,从而使数据堆栈更简单,设置成本更低。
安全性
处理个人数据时,必须遵守数据隐私法规。公司必须保护个人身份信息(PII)免遭未经授权的访问。
在 ETL 中,开发人员必须构建自定义解决方案,例如屏蔽 PII 以监控和保护数据。
另一方面,ELT 解决方案直接在数据仓库中提供许多安全功能,例如精细访问控制和多重身份验证。
您可以将更多时间投入到分析上,减少满足数据监管要求所需的时间。
何时使用 ETL 与ELT
提取、加载、转换(ELT)是现代分析的标准选择。但是,在以下情况下,您可以考虑提取、转换、加载(ETL)。
传统数据库
有时,使用 ETL 与传统数据库或具有预定数据格式的第三方数据来源集成会更有益。您只需要转换并将数据加载到您的系统一次即可。转换后,您可以更有效地将其用于未来的所有分析。
试验
在大型组织中,数据工程师会进行实验,例如发现隐藏的数据来源以便分析、尝试新想法来回答业务查询等。ETL 在数据实验中很有用,可以了解数据库及其在特定场景中的用处。
复杂分析
ETL 和 ELT 都可用于使用不同来源、多种格式的数据的复杂分析。数据科学家可能会从某些来源建立 ETL 管道,然后将 ELT 与其他来源一起使用。在某些情况下,这可以提高分析效率以及应用程序性能。
IoT 应用程序
使用传感器数据流的物联网(IoT)应用程序通常受益于 ETL 而不是 ELT。
例如,以下是边缘 ETL 的一些常见用例:
-
您想接收来自不同协议的数据并将其转换为标准数据格式以用于云工作负载
-
您想要筛选高频数据,对大型数据集执行函数平均,然后以较低的速率加载平均或筛选后的值
-
您想计算来自本地设备上不同数据来源的值,并将筛选后的值发送到云后端
-
您想要清理、删除重复数据或填充缺失的时间序列数据元素
参考资料
https://aws.amazon.com/cn/compare/the-difference-between-etl-and-elt/