ETL 还是 ELT
ETL:数据仓库建设过程的必备环节,即数据的抽取、转换和加载过程(Extraction-Transformation, And Load)。
对于一个ETL工具的实现,有两种数据流转的方式可以选择,即ETL和ELT。
ETL是指从数据源抽取数据,数据进入ETL系统,经过必要的转换后,将结果数据加载到目标数据仓库中;ELT是指从数据源抽取数据,加载到目标数据仓库,之后在目标数据仓库对数据进行必要的转换,得到的结果数据。
这两种方式各有其优点,ETL方式优势在于“(源)多->(目标)少”的转换过程,这种情况下ELT方式需要将原始数据先加载到目标数据仓库,这个过程将耗费较多的时间,为了提高效率,取决于ETL流程设计者能否将使数据量变小的过滤操作前移到抽取(E)操作中;俗话说靠着大树好乘凉,ELT的优势主要来自所依靠的数据仓库的数据库功能,从而可以很方便的解决ETL中的大数据量问题,以及利用数据库统计功能完成统计操作。
因此,对于中小型ETL工具的实现,借助数据库的ELT方式应该是一种比较合适的方式。ELT模式的ETL工具的效率便主要取决于前两个步骤(EL)的效率,为了提高效率,可以从三个方面考虑:1)是提高加载(L)的效率,读入数据,逐行写入,是最通用的方式,但其效率较低;如果能使用批量导入导出的方式,可大大提高效率,但是对于跨数据库的批量导入导出,存在通用性的问题;我曾经想利用csv文件作为中间文件来实现批量导入导出,但并不是每种数据库都可以轻松实现对csv文件的导入导出。2)是减少抽取(E)出来的数据,也即是前文提到的将过滤操作前移到抽取过程中,简单的作法是抽取操作提供一个抽取条件,来减少抽取出来的数据;更理想的做法是能简单的分析ETL的流程,智能地将流程中的过滤条件解释出来,并前移到抽取操作中。3)是增量抽取,一个数据仓库,除了建造过程需要一次全量处理外,其余的维护过程应该都是使用增量处理,增量处理第一步便是增量抽取。
浙公网安备 33010602011771号