为什么是ELT而非ETL

为什么是ELT而非ETL_第1张图片

这是大数据技术扫盲系列的第四篇【什么是ELT】

全文1000字,阅读需要5分钟

一、什么是ELT?

ELT是抽取(Extract)、加载(Load)、转换(Transform)的缩写。

数据抽取:ELT pipeline的起始端,字面含义不做解释,在架构数据抽取方案时,有两个关注点,第一个要对多数据源类型、多种数据结构保持一定的灵活性和适配,比如关系型数据库的结构化数据、XML、JSON、文本文件、API、消息流等;第二个是对增全量模式的支持,支持通过SQL查询的方式对增量数据进行抓取(物理删除无法捕获的风险)、通过变更日志的CDC增量抓取、全量抓取。

数据加载:ELT pipeline的目标端,可以是一个集中的数据库、数据仓库、数据湖。在这部分,需要关注,第一个注意数据写入的模式是追加还是覆盖,这个取决于约定的同步模式。尽量支持流程的幂等执行。第二个注意加载的数据和源端保持一致,作为贴源层。第三是方案需要考虑支持多点加载,即一次抽取分发多个目标端。

数据转换:将加载后的数据做加工,一般包括数据清洗和结构化处理、数据校验、数据关联、数据增强。

二、为什么不是ETL?

我们所熟知的是ETL,抽取、转换、加载,即数据在落地到目标端前做数据的转换操作。在现代数据技术栈中,提倡更多的是ELT,主要的原因有两个:

第一个是ELT比ETL有更广的适用范围:在当下数据平民化的趋势下,一份数据往往要应对更灵活的需求,意味着数据要尽量保证原汁原味。在抽取过程中转换,原始数据中有信息丢失,也意味着这个数据所能应用的场景已经被提前设计,在需求发生变化时,需要做调整。

第二个是存储和计算成本的不断降低,ETL自1970年出现后,在转换中裁剪数据,以减少下游在数据处理中对存储和计算资源的损耗。但当下存储成本和计算成本逐步降低,对海量数据的存储和计算不再昂贵,也使ELT成为更优选择.

你可能感兴趣的:(数据技术,etl,数据仓库,数据挖掘)