ETL vs ELT
在数据仓库里对于数据的加工一直有一个很有意思的话题,就是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的更多相关文章
- 使用 Hive 作为 ETL 或 ELT 工具
用来处理数据的 ETL 和 ELT 工具的概述 数据集成和数据管理技术已存在很长一段时间.提取.转换和加载(ETL)数据的工具已经改变了传统的数据库和数据仓库.现在,内存中转换 ETL 工具使得提取. ...
- DataPipeline CTO陈肃:从ETL到ELT,AI时代数据集成的问题与解决方案
引言:2018年7月25日,DataPipeline CTO陈肃在第一期公开课上作了题为<从ETL到ELT,AI时代数据集成的问题与解决方案>的分享,本文根据陈肃分享内容整理而成. 大家好 ...
- 啥是ETL、ELT
ETL就是Extract.Transfrom.Load即抽取.转换.加载三个英文单词首字母的集合.抽取:就是从源系统抽取需要的数据,这些源系统可以是同构也可以是异构的:比如源系统可能是Excel电子表 ...
- Kettle学习系列之数据仓库、数据整合、ETL、ELT和EII之间的区别?
不多说,直接上干货! 在数据仓库领域里,的一个重要概念就是数据整合(data intergration).数据整合它就是把不同数据库中的数据整合到一起,对外提供统一的数据视图. 数据整合最典型的案例就 ...
- 数据分析你需要知道的操作:ETL和ELT
如果您接触过数据仓库, 您可能会使用 ETL (Extract. Transform. Load) 或 ELT ( Extract.Load. Transform) 将您的数据从不同的来源提取到数据仓 ...
- 【原创】大数据基础之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 ...
- 几款开源的ETL工具及ELT初探
ETL,是英文 Extract-Transform-Load 的缩写,用来描述将数据从来源端经过抽取(extract).转换(transform).加载(load)至目的端的过程.ETL 是构建数据仓 ...
- ETL的两种架构——ETL架构和ELT架构优劣势对比
导读: 作为现代企业和组织机构的重要资源,信息是进行科学管理与决策分析的基础.ETL 则是把数据转换为信息.知识的关键步骤之一.在 AI 应用场景下,数据集成有哪些特点?随着 AI 应用场景越来越 ...
- [目录]Pentaho Kettle解决方案:使用PDI构建开源ETL解决方案
第一部分:开始 1 ETL入门 1.1 OLTP和数据仓库对比 1.2 ETL是什么 1.2.1 ETL解决方案的演化过程 1.2.2 ET ...
- 数据仓库和ETL建设
这个是Ralph kimball ETL的书籍,其中第10章主要讲如何管理数据仓库团队,ETL团队是属于数据仓库团队的:第一章和第二章是概况性的介绍,强烈建议大家都看下1/2/10章,对于大家形成对数 ...
随机推荐
- docker swarm CA证书到期
1.现象 在portain平台查看日志,发现一些节点日志无法查看报错为:Error grabbing logs: rpc error: code = Unknown desc = warning: i ...
- mvc api 下载文件问题
背景:前后端分离项目,文件下载 项目中 因为实际文件名和路径里的文件名 不一致(一般路径文件名需要使用唯一名字) 刚开始使用返回链接的方式,会出现图片直接预览,文件名会以路径文件名下载,用户体验不好. ...
- [每日算法 - 华为机试] leetcode345 :反转字符串中的元音字母「双指针」
入口 力扣https://leetcode.cn/problems/reverse-vowels-of-a-string/submissions/ 题目描述 给你一个字符串 s ,仅反转字符串中的所有 ...
- 【Git】GitHub
GitHub 本地库与远程库开发模式 开发模式一:团队内部协作 项目经理岳不群,程序员令狐冲 岳不群把他的本地库推送到远程库 令狐冲克隆远程库到自己的本地库 令狐冲在自己本地库的基础上修改代码,提交到 ...
- win11的go安装
背靠国外各大金主的go语言,在各种推动下,可谓是新的弄潮儿,但国内虽然各种推销,但从安装到开发再到维护,资料都少之又少,可能被垄断了解释权吧. 因此下面的也只是一个记录而已,是一次仅限于本人本机本阶段 ...
- 刷题——关于struts框架,下面那些说法是正确的?
关于struts框架,下面那些说法是正确的? Struts中无法完成上传功能 Struts框架基于MVC模式 Struts框架容易引起流程复杂.结构不清晰等问题 Struts可以有效地降低项目的类文件 ...
- (转)python批量提取PDF第一页输出为图片
一:步骤 1.使用input输入路径 2.生成图片存户路径同存放路径 3.生成图片为PNG格式 4.支持自定义截取页数,建议为第一页 二:安装扩展类 pip install PyMuPDF 三:示例代 ...
- K8S 部署 Deepseek 要 3 天?别逗了!Ollama+GPU Operator 1 小时搞定
最近一年我都在依赖大模型辅助工作,比如 DeepSeek.豆包.Qwen等等.线上大模型确实方便,敲几个字就能生成文案.写代码.做表格,极大提高了效率.但对于企业来说:公司内部数据敏感.使用外部大模型 ...
- Java 中的强引用、软引用、弱引用和虚引用分别是什么?
Java 中的引用类型:强引用.软引用.弱引用和虚引用 Java 中的引用类型主要分为 强引用.软引用.弱引用 和 虚引用,它们对对象的生命周期和垃圾回收(GC)行为产生不同的影响. 1. 强引用(S ...
- kubernetes dashboard web控制台调研
背景 kubernetes 是目前最流行的容器化系统,管理的方式一般都是最基础的kubectl命令客户端进行管理,但是对与一些没有基础的研发人员并不是很友好,所以我们需要一些web控制台,类似于云厂商 ...