ETL与ELT的区别
1. ETL
ETL是将数据从源系统传输到数据仓库时使用的最常用方法。提取,转换和加载是一个过程,涉及从外部源提取数据并对其进行转换以满足操作需求,然后将其加载到目标数据库或数据仓库中。当为数据仓库使用不同的数据库时,使用这种方法是合理的。
在这种情况下,我们将数据从一个地方转换为另一个地方,因此这是在专用引擎中进行转换工作的适当方式。
提取,加载和转换是一个提取数据并将其加载到数据库中的临时表中的过程。将其加载到临时表后,将其转换为数据库中的位置,然后将其加载到目标数据库或数据仓库中。
ETL需要管理原始数据,包括提取所需信息并运行转换以满足业务需求。每个阶段(如提取,转换和加载)都需要数据工程师和开发人员的交互,以及处理传统数据仓库的容量限制。使用ETL,BI用户和分析师习惯于等待,直到整个ETL过程完成后才能获得对信息的简单访问。
2. ELT
在ELT方法中,在提取数据之后,我们立即开始加载阶段,将所有数据源移动到单个集中式数据存储库中。今天的基础架构技术正在使用云,系统现在可以支持大型存储和可扩展计算。因此,对于维护所有提取的原始数据,大量扩展数据池和快速处理实际上是无穷无尽的。
通过这种方式,ELT方法提供了ETL的现代替代方案,但在某些情况下我们需要使用ELT。ELT应该用于各种情况而不是ETL,它们是:
- 当数据量很高时使用ELT。
- 当源数据库和目标数据库都相同时。
- 当数据库引擎很好地适应处理时,例如PDW,在ELT的帮助下,很容易很快地加载大量数据。
注意:当使用ETL时,转换由ETL工具处理,而在ELT中,转换由目标数据源处理。
ELT的工作
提取,加载和转换是从无限来源收集信息,将其加载到处理位置并将其转换为可操作的商业智能的过程。
- 提取:从不同数据源中提取数据,这些数据在两种数据管理方法中都相似。
- 加载:ELT将整个数据传送到它将存在的站点。ELT缩短了提取和交付之间的循环,但是在数据变得有用之前还有很多工作要做。
- 转换:此处,数据仓库和数据库对数据进行排序和规范化。存储此数据的开销很高,但它带来了更多机会。
3. ETL和ELT的区别
参数/项目 | ETL | ELT |
---|---|---|
处理 | 数据在登台服务器中传输,然后移动到数据仓库数据库。 | 数据保留在数据仓库的DB中。 |
转型/转换 | 转换在ETL服务器和暂存区域中完成。 | 转换在暂存区域中执行。 |
代码用法 | ETL用于:少量数据,计算密集型转型。 | ELT用于:大数据。 |
加载时间 | 首先,数据在分段中加载,然后加载到目标系统中。这是一个耗时的过程。 | 在ELT中,数据仅在目标系统中加载一次。在这个过程中花费的时间较少。 |
转换时间 | ETL过程需要时间来完成转换。随着数据量的增长,转换时间也会增加。 | 在ELT过程中,速度决不取决于数据的大小。 |
维护时间 | 当选择要加载和转换的数据时,它需要高度维护。 | 由于数据始终可用,因此ELT需要低维护。 |
实施复杂性 | 在ELT中,更容易在早期实现它。 | 要实施ELT流程,组织应该具备专业技能和工具的深入知识。 |
数据湖支持 | ETL不支持数据湖。 | ELT允许将Data Lakes与非结构化数据一起使用。 |
支持数据仓库 | ETL模型用于关系数据和结构化数据。 | ELT用于可扩展的云基础架构,支持结构化和非结构化数据。 |
复杂性 | ETL过程仅加载在设计时识别的基本数据。 | ELT仅涉及从后向输出开发并仅加载相关数据。 |
成本 | 在ETL过程中,中小型企业的成本很高。 | ELT包括使用在线软件作为服务平台的低入门成本。 |
查找 | 在ETL过程中,需要在临时区域中提供维度和事实。 | 在ELT中,所有数据都可用,因为提取和加载只在一个动作中发生。 |
计算 | 在ETL中,现有列被覆盖或需要附加数据集并推送到目标平台。 | 在ELT中,很容易将列添加到现有表中。 |
硬件 | 在ETL中,这些工具具有独特的硬件要求,这是昂贵的。 | ELT是一个新概念,实施起来很复杂。 |
支持非结构化数据 | ETL支持关系数据 | ELT有助于提供非结构化的现成数据。 |
4. 当ETL是正确的选择?
这取决于公司现有的网络架构,预算以及它已经使用云和大数据技术的程度。但是当三个焦点区域中的任何一个或全部都很关键时,我们可以考虑使用ELT。
当摄取速度是优先考虑时,我们必须使用ELT。因为ELT不必等待数据被处理掉然后加载(这里,加载数据和转换可以并行发生)。这里摄取过程更快,并提供比ETL更快的原始信息。
将数据转化为商业智能的优势在于能够将隐藏模式表现为可操作的信息。通过保存所有历史数据,组织可以随时间线,销售模式,季节性趋势或任何新兴指标进行挖掘,这对组织而言至关重要。在这种情况下,我们可以访问原始数据,因为数据在加载之前未被转换。大部分在云数据湖中,原始数据被存储然后被提炼,或者存储处理过的信息。例如,数据科学家更喜欢使用原始数据的访问,而业务用户则更喜欢将规范化数据用于商业智能。
当使用高端数据处理引擎(如云数据仓库或Hadoop)时,ELT可以利用本机处理能力来实现更高的可扩展性。ETL和ELT都是节省时间的方法,用于从原始数据生成商业智能。但云正在改变企业如何利用所有技术解决ELT挑战。