• ETL VS ELT



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

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

    什么是ETL

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

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

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

    ETL vs ELT

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

    什么是ELT

    ETL process explained

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

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

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

    ETL vs ELT

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

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

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

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

    项目ETLELT
    定义从上游系统提取数据,在另一个独立的系统上对数据进行转换,最后将转换后的数据导入下游系统从上游系统提取数据,直接将数据导入下游系统,在下游系统内部对数据进行转换
    速度较为耗时更快,数据导入和转换可以并行进行
    维护独立的转换系统增加了维护成本系统数量更少,维护成本降低
    隐私较强
    输出结构化的数据结构化、半结构化、非结构数据
    数据量适合需要经过复杂转换的小数据集适合对时效性要求比较强的大数据集
    相关框架-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/
  • 相关阅读:
    2022年9月1日:Visual Studio Code 中的 GitHub 简介(未做完)
    面试面经|Java面试RabbitMQ面试题
    LeetCode 0523. 连续的子数组和
    【Python】pdf转ppt
    村委会外出人员
    【Postman接口测试】第三节.第二节.Postman界面功能介绍(下)
    [ Linux ] 动静态库 手把手教你写一个自己的库
    SwiftUI找回丢失的列表视图(List)动画
    Java 程序猿看完这些面试题,想斩获 BAT 的 offer 都很难!
    安卓app源码和设计报告——简易记账本
  • 原文地址:https://blog.csdn.net/miaoyibo12/article/details/127547041