etl和elt的应用感受

etl和elt的应用感受

        etl和elt虽然都是在大数据流程中负责对数据进行初步处理的过程,但这两者的确有所不同,etl是抽取转换加载,而elt则是抽取加载转换。粗一看只是顺序上不一样,实际上这两种方式有着截然不同的需求场景。
        etl模式偏向于业务层面
        传统的etl加工逻辑,即数据的抽取转换加载,将上游集市系统的数据抽取到缓冲层备份,在基础层进行数据质量处理,划分成各类主题域维度的表,然后传递到计算层进行指标粗加工,最后在应用层计算各类报表数据并通过报表工具展示。项目虽然不大,但层层分级推进的模式使得整体的数据加工逻辑清晰明了,开发完成后只要监控好系统的日常跑批,运维工作会很轻松。

        但是etl模式的缺点也是显而易见的,首先在应用层添加新指标的时候,往往需要对整条任务链路进行维护,耗费的成本不小。此外层层分明的设计模式一定会有数据冗余的问题,各层级之间的数据加工逻辑可能在充分考虑层级分明的前提下,部分表抽取数据几乎没有加工逻辑,或者只有少量数据处理,虽然保证了层级分明,但对于数据冗余对内存的占据始终不容忽视,这是etl模式在t和l阶段将转换和加载放在一起过渡耦合导致的结果,看似层级分明的推进,但是每一层对上一层的处理都要进行一遍转换和加载,增加了t和l的耦合度,导致在存储和计算的资源上开销巨大。
        elt模式则更偏向技术层面
        elt模式将数据的转换和加载调换了顺序,其流程上,将数据直接抽取加载到本地,然后才对数据进行业务处理,降低了因分层处理的多次加载成本,各业务系统直接从底层取数进行自己的业务逻辑加工,而数仓则主攻入仓,通过kafka等组件实现大规模的数据吞吐,引入spark等计算引擎来提高数据计算效率,降低业务处理成本,实现整体的数仓加工流程。

        elt模式优点在于提高了离线数仓的处理效率,也让数据存储成本降低,但缺点也是显而易见的,对于数据吞吐量不大,时效性要求不高的项目来说,这样的方式成本略高,而且对于历史项目的改造而言,几乎很难实现。

原文地址:https://www.cnblogs.com/a404790696/p/15019121.html