ETL
和 ELT
有很多共同点,从本质上讲,每种集成方法都可以将数据从源端抽取到数据仓库中,两者的区别在于数据在哪里进行转换。
ELT
的工作原理与 ETL
不同,ELT
是从多个数据源收集信息,将其加载到数据仓库(或者数据湖)中,然后将其转换为可操作的商业智能的过程。
抽取——在ELT
和ETL
两种数据管理方法中的原理相似。一般我们会采用增量抽取,对于一些维表数据量比较小的也会采用全量抽取。
加载——这是 ELT
和 ETL
开始不同的地方了。ELT
不是在抽取大量原始数据的过程中将其转换,而是将所有数据都加在到湖仓中,然后统一进行转换,这样做加快了抽取的效率,但也意味着数据变得有用之前还有很多工作要做。
转换——数据湖或数据仓库对数据进行规范化,将部分或全部数据保留在湖仓中,并可用于定制报告。存储海量数据的开销更高,但也是为了后续能够更加快速的进行数据挖掘和报表展现,也就是我们常说的用空间换时间。
其中数据变换根据下游使用的需要而在 SQL 中进行,而不是在加载阶段期间
ELT
这取决于公司现有的网络和技术架构、预算以及它已经利用云和大数据技术的程度。如果是有下面三个需求场景时,那么ELT
就是正确的选择~
因为 ELT
不必等待数据在抽取过程中进行转换后再加载,那么抽取过程要快得多。
有很多场景,我们需要保留所有历史数据,分析师可以根据时间、销售模式、季节性趋势或任何对业务变得重要的新兴指标进行挖掘。由于数据在加载之前未进行转换,因此您可以访问所有原始数据。比如,数据仓库一般都有一个原始数据层,很多数据科学家更喜欢访问原始数据,而业务用户更喜欢使用分析后的应用层或者模型层数据。
当您使用 Hadoop
或云数据仓库等数据处理引擎时,ELT
可以利用本机处理能力实现更高的可扩展性。
ELT
中,数据变换根据下游使用的需要而在 SQL
中进行,而不是在加载阶段期间。使用 ELT
方法,在提取完成之后,数据加载会立即开始,而不用等待 ”恰当的”
数据变换操作。 转换还可以在查询时运行,比 ETL
更省时,因为 ETL
需要用户等待转换完成。 ELT
允许 BI 用户和分析人员无限制地访问整个原始数据,为用户提供了更大的灵活性,使之能更好地支持该业务。