ETL VS ELT

文章目录

        • 什么是ETL
        • 什么是ELT
        • ETL vs ELT
        • 相关框架-kestra介绍
        • 参考

ETL和ELT是两种数据集成方法,它们主要的任务就是将数据从一个地方转移到另一个地方。两者最大的区别是:ETL在转移之前会对数据进行转换;而ELT是在转移之后再进行数据转换。

ETL是一种存在已久的技术,而ELT则是伴随云数据库兴起的一种较为新的技术。

什么是ETL

ETL是 extract、 transform 和 load三个单词的缩写,它代表一种数据集成过程,属于方法学;它将来自多个数据源的数据组合成一个单一的、一致的数据存储,并将其加载到数据仓库或其他目标系统中。

ETL为数据分析和机器学习提供了基础。通过一系列业务规则,ETL以满足特定业务需求的方式清理和组织数据,比如月度报告,另外它还可以处理更高级的分析,这可以改善后续流程或用户体验。ETL的工作流程一般包含以下三个步骤

  • 提取数据
  • 清洗数据
  • 导入数据

ETL VS ELT_第1张图片

以OLAP系统为例,在线分析系统一般使用的都是关系型数据库,需要结构化的数据,此时就需要ETL处理程序来对源头数据进行清洗,对不合格的数据进行转换,然后再将数据导入OLAP系统中。

什么是ELT

ETL VS ELT_第2张图片

ELT是直接将原始数据导入目标数据库中,在这个过程中并不需要经过转换。

对于ELT来说,数据清洗、加工以及转换都发生在目标数据库内部。ELT适用于使用了云数据仓库的体系,例如,常见的云端数据仓库:

  • Snowflake
  • Amazon Redshift
  • Google BigQuery
  • Microsoft Azure

这些仓库都内置了各种数据处理程序,方便对导入的原始数据进行处理转化。

ETL vs ELT

ETL和ELT之间最明显的区别是操作顺序的不同。ELT从源位置复制或导出数据,但不是将其加载到暂存区域进行转换,而是将原始数据直接加载到目标数据库中,由目标数据库根据需要进行转换:

  • ETL在一个独立的服务器上对原始数据进行转换;而ELT在目标数据仓库内部进行数据转换
  • ETL不会把原始数据传输到目标数据库;而ELT中,目标数据库直接接受原始数据

ELT保留原始数据集,而ETL则相反;对于非结构化数据的处理,ELT更有优势,因为它提供了很多在这方面的工具。

在安全和隐私方面,ETL则相对有一定的优势,因为它在将数据传输到目标数据前可以对数据进行一定的处理,例如加密,脱敏等;而ELT传输的是原始数据,有一定的安全风险。

项目 ETL ELT
定义 从上游系统提取数据,在另一个独立的系统上对数据进行转换,最后将转换后的数据导入下游系统 从上游系统提取数据,直接将数据导入下游系统,在下游系统内部对数据进行转换
速度 较为耗时 更快,数据导入和转换可以并行进行
维护 独立的转换系统增加了维护成本 系统数量更少,维护成本降低
隐私 较强
输出 结构化的数据 结构化、半结构化、非结构数据
数据量 适合需要经过复杂转换的小数据集 适合对时效性要求比较强的大数据集

相关框架-kestra介绍

  • Github地址:https://github.com/kestra-io/kestra
  • Demo演示:https://demo.kestra.io/

kestra是一个任务调度平台,同时具有ETL和ELT的特性,它提供丰富的插件以及自定义插件等功能,可以适配各类复杂的场景。

参考

  1. https://www.ibm.com/cloud/learn/etl
  2. https://rivery.io/blog/etl-vs-elt/

你可能感兴趣的:(web应用开发,etl,数据仓库,数据库,database,云原生)