在数据仓库里对于数据的加工一直有一个很有意思的话题,就是ETL和ELT,我记得零几年那会儿,刚开始有商业智能或者数据仓库概念的时候,只有ETL,直到后来行业逐渐成熟了起来,才又有了ELT的概念。

他们到底是怎么回事从技术角度来解释的方法很多,最近在Linkedin上看到一个图,很有意思,大体如下:

技术领域的理解

这个图片生动的展示了ETL和ELT的区别,也就是你是把水果加工成果汁之后拿去卖,还是把水果运走之后再找地方加工成果汁之后然后拿去卖。

在我们的实际的数据仓库项目中,对应的区别就是,你要去获取的数据,是先原封不动的拿过来,还是拿过来的时候就做好相应的转换。

现实世界中的理解以及问题的提出

我很喜欢这个图,所以在我朋友圈发了出来,很多朋友都看到了,都对这种解释方式很认可,包括我媳妇,虽然她不是做数据方面的,但是她作为一个领域外的人居然看懂了。

不过她的一个问题很有意思,就是什么情况下应该选择前者,什么情况下选择后者呢?

所以在我们数据仓库的建设中,实际上就是根据项目规模的大小来决定,如果是个小型的项目,那么就ETL,如果是大型项目那么就ELT.

所以回到现实世界,回到这个图,就是取决于水果厂的规模,如果只是村里的小规模简单加工,都是农户自己家采摘自己家地里的水果并且自己加工的,比如老张家的果汁,老李家的果汁。

但如果你是一个国内比较大的水果厂,通常这些大厂会在水果产地建立一个比较大的工厂,他们不会从老张家或者老李家去收购果汁,而是会从不止老李家或者老张家去收购水果,把村里镇里或者市里所有的水果都收购了,统一加工处理。这样才能保证产量的基础之上,提高生产效率。而老张家和老李家也不用担心每年的水果和自产的果汁都卖给谁。

关于ETL和ELT的进一步衍生

在数据仓库领域中,后续除了从ETL衍生出了ELT,实际也衍生出过更进一步的方法,比如ETLT,也就是在数据E之后先进行一个T,专注于数据的标准化处理,或者是异构数据的处理。对应到果汁的故事里,就好比在地方工厂里我收集到水果,先把水果加工成浓缩果汁,然后再送给下一步的工厂,加工或者还原成果汁,比如混合型果汁,这种方式应该是目前最主流的方式。当然这又涉及到了原榨果汁和浓缩果汁的区别,讨论起来除了成本和市场占有量之外仍是一个非常复杂的话题,这里超出了本文的范围所以不过多讨论。

关于本文的一些补充:

由于最近在做跟AI相关的事,以前没接触的时候没指望它能帮助太多,但是逐渐了解并且看身边的人使用之后才发现这个东西有时候真的能帮你打开一扇窗。

比如对于这个果汁加工问题的理解,刚开始我以为大厂都是从全国收集水果然后到国内某一个加工大厂一起护理的,经过字节旗下的豆包查询后,我了解到原来大厂不是这么操作的,并且进一步了解到他们都是在产地周边建厂,以减少水果在运输中产生的损耗。所以为了严谨我修改了现实世界中故事的讲述方式。

当然在我对我的理解不是100%确定正确的情况下,我也会在豆包里问ETL和ELT的区别,豆包会汇总它所收集到的信息帮我提炼出区别,让我快速理解,好判断出我描述的方式是否有很大的偏差。

经过这个写作的过程,我们可以看到AI确实是可以帮助我们解决一些特定的问题,而实际了解下不难发现,实际很多人都已经开始这么工作了,原来自己被时代落下了这么远的距离。

所以无论如何,即使你不从事AI方面的工作,我也建议你了解下AI工具,比如我提到的字节旗下的豆包,真的是一个很亲民的平台,没有那么多的门槛,直接拿来用就行。

当然如果你是一个程序员,你也可以了解下字节旗下的AI代码助手,通过博客园顶部的链接就可以了解到,用赵本山的话说:谁用谁知道。

ETL vs ELT的更多相关文章

  1. 使用 Hive 作为 ETL 或 ELT 工具

    用来处理数据的 ETL 和 ELT 工具的概述 数据集成和数据管理技术已存在很长一段时间.提取.转换和加载(ETL)数据的工具已经改变了传统的数据库和数据仓库.现在,内存中转换 ETL 工具使得提取. ...

  2. DataPipeline CTO陈肃:从ETL到ELT,AI时代数据集成的问题与解决方案

    引言:2018年7月25日,DataPipeline CTO陈肃在第一期公开课上作了题为<从ETL到ELT,AI时代数据集成的问题与解决方案>的分享,本文根据陈肃分享内容整理而成. 大家好 ...

  3. 啥是ETL、ELT

    ETL就是Extract.Transfrom.Load即抽取.转换.加载三个英文单词首字母的集合.抽取:就是从源系统抽取需要的数据,这些源系统可以是同构也可以是异构的:比如源系统可能是Excel电子表 ...

  4. Kettle学习系列之数据仓库、数据整合、ETL、ELT和EII之间的区别?

    不多说,直接上干货! 在数据仓库领域里,的一个重要概念就是数据整合(data intergration).数据整合它就是把不同数据库中的数据整合到一起,对外提供统一的数据视图. 数据整合最典型的案例就 ...

  5. 数据分析你需要知道的操作:ETL和ELT

    如果您接触过数据仓库, 您可能会使用 ETL (Extract. Transform. Load) 或 ELT ( Extract.Load. Transform) 将您的数据从不同的来源提取到数据仓 ...

  6. 【原创】大数据基础之ETL vs ELT or DataWarehouse vs DataLake

    ETL ETL is an abbreviation of Extract, Transform and Load. In this process, an ETL tool extracts the ...

  7. 几款开源的ETL工具及ELT初探

    ETL,是英文 Extract-Transform-Load 的缩写,用来描述将数据从来源端经过抽取(extract).转换(transform).加载(load)至目的端的过程.ETL 是构建数据仓 ...

  8. ETL的两种架构——ETL架构和ELT架构优劣势对比

    ​ 导读: 作为现代企业和组织机构的重要资源,信息是进行科学管理与决策分析的基础.ETL 则是把数据转换为信息.知识的关键步骤之一.在 AI 应用场景下,数据集成有哪些特点?随着 AI 应用场景越来越 ...

  9. [目录]Pentaho Kettle解决方案:使用PDI构建开源ETL解决方案

    第一部分:开始 1         ETL入门 1.1   OLTP和数据仓库对比 1.2   ETL是什么 1.2.1          ETL解决方案的演化过程 1.2.2          ET ...

  10. 数据仓库和ETL建设

    这个是Ralph kimball ETL的书籍,其中第10章主要讲如何管理数据仓库团队,ETL团队是属于数据仓库团队的:第一章和第二章是概况性的介绍,强烈建议大家都看下1/2/10章,对于大家形成对数 ...

随机推荐

  1. 04 详解”死亡ReLU“问题

    本篇文章尝试通过具体的神经网络例子,来深入探讨"死亡ReLU"的问题. 很多资料都会提到神经元"永久性死亡"这种说法,我认为这会对我们的理解产生一定的误解.事实 ...

  2. C#/.NET/.NET Core技术前沿周刊 | 第 31 期(2025年3.17-3.23)

    前言 C#/.NET/.NET Core技术前沿周刊,你的每周技术指南针!记录.追踪C#/.NET/.NET Core领域.生态的每周最新.最实用.最有价值的技术文章.社区动态.优质项目和学习资源等. ...

  3. List集合分页处理的方法

    参考https://www.cnblogs.com/cmz-32000/p/12186362.html 解决了数组越界问题 参数页码大于总页码时返回null(可根据自己业务调整为返回最后一页数据) s ...

  4. SQLite 爬坑记录之无法设置自增约束

    场景重现 SQLite在设置自增约束(Autoincrement)的时候出现无法设置的情况: 问题原因 ... 解决办法 ...

  5. 一些 NuGet 包

    Some RestSharp Simple REST and HTTP API Client Newtonsoft.Json Json.NET is a popular high-performanc ...

  6. argo-cd基于Kubernetes的声明式持续部署

    argo-cd基于Kubernetes的声明式持续部署 什么是argo-cd? Argo CD是一个基于Kubernetes的声明式GitOps持续交付工具. 为什么CD ? 应用程序定义.配置和环境 ...

  7. CH390使用注意事项

    关于CH390使用注意事项 CH390替换DM90xx硬件注意事项 1.CH390L替换DM9000 AVDD33的对地电容建议1uF贴近芯片放置,42脚为主电源AVDD33需10uF并联0.1uF. ...

  8. 可横竖控制的Text bg Control

    using UnityEngine; using UnityEngine.EventSystems; using UnityEngine.UI; [RequireComponent(typeof(Co ...

  9. Sql Server数据库远程连接访问设置

    步骤一:设置sql server数据库 1.以新建一个新用户名test作为远程连接登录名.在本地登录sql server数据库,安全性->右键用户名 2.点击根目录右键,选择属性 选择安全性 选 ...

  10. MySQL 在设计表(建表)时需要注意什么?

    MySQL 在设计表(建表)时需要注意的要点 设计数据库表是 MySQL 开发中非常重要的一环.合理的表结构设计可以提升性能.减少存储开销,并提高维护性.以下是一些关键的注意事项: 1. 明确需求和数 ...