数仓开发人员经常说的 ETL、ELT,又有什么区别
昨天看了一个 ETL 的东西,随手写了一个 ETL 到底是什么,那知道 ETL 后,什么是 ELT 呢?其实很简单,ETL 是抽取、转换、装载的缩写,那 ETL 不就是抽取、加载、转换的缩写吗,但是这俩有什么不一样呢?
其实,从缩写上来看很容易得到答案,就是顺序不一样,ETL 是转换在前,加载在后,ELT 是加载在前,转换在后,只变了一个顺序,在数据仓库中却大有影响。
传统的数据开发,一般会经过梳理业务流程、数仓分域、实体关系调研、维度梳理、数据分层、模型物化等几个过程,接下来支撑报表或 BI 等应用。建设物理模型时才真正在数仓中落地,做数据清洗加工、标准化等一系列工作。根据数据的流向一般可以分为 ODS 层、DW 层、DM 层,数据像流水一样,先从业务系统今早抽取、放置到 ODS,之后在经过转换,再加载到 DW 层,这样一层一层的处理数据,这个数据处理的过程就是 ETL。
为什么有 ELT 呢?
传统的 ETL 很好用,像流水线一样对数据进行加工,任务部署后只需要定时监测就可以,但是从数据处理来看,流程太长,而且改造的成本比较大。并且转换、加载放在一起做,这个过程也相对复杂,且一旦业务发生变化,流程需要重新调整,维护成本高。这时候就会诞生了 ELT。不得不说、数仓发展就是围绕解耦来发展的,ELT 就是把转换和加载分开,这样的好处是能够突破性能瓶颈,降低维护成本等等。在数据湖、湖仓一体的今天,ELT 的架构越来越多。
版权声明: 本文为 InfoQ 作者【奔向架构师】的原创文章。
原文链接:【http://xie.infoq.cn/article/f9fc086c77eac5397bf1fdd30】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论