首页技术文章正文

ETL数据加载:全量加载、增量加载和批量加载

更新时间:2021-06-08 来源:黑马程序员 浏览量:

1577370495235_学IT就到黑马程序员.gif

数据的加载是ETL的最后一个阶段,它的主要任务是将数据从临时数据表或文件中加载到指定的数据仓库中。-般来说,可以通过编写sQL语句和利用加载工具将数据加载到数据仓库中。ETL的数据加载和数据抽取类似,将数据加载到目标数据表或者数据仓库的过程中可分为全量加载、增量加载以及批量加载。下面详细介绍一下ETL的全量加载、增量加载以及批量加载


1.全量加载

全量加载是指全表删除后再进行全部(全量)数据加载。从技术角度来说,全量加载和增量加载相比,全量加载更简单。一般只需要在数据加载之前将目标表清空,再将源数据表中的数据进行导人。但是,由于数据量、系统资源和数据实时性的要求,很多情况下都需要使用增量加载机制。


2.增量加载

增量加载是指目标表仅更新源数据表中变化的数据。增量加载的关键在于如何正确设计相应的方法,用于从源数据表中抽取增量的数据,以及变化“牵连”数据(虽没有变化,但受到变化数据影响的数据)。同时,将这些变化的和未变化但受到影响的数据,在完成相应的逻辑转换后更新到数据仓库中。

数据加载的性能和作业失败后可进行恢复重启的易维护性,需要一个有效的增量抽取机制的支持。因为在-一个有效的增量抽取机制,ETL能够将业务系统中变化的数据按一定的频率准确地进行捕获,并且不会对业务系统造成太大的压力,也不会影响现有的业务。

ETL的增量加载类似于增量抽取,同样有4种方式,分别是时间戳方式、日志表方式、全表对比方式、全表删除插入方式,具体介绍如下所示。

(1)时间戳方式,即在业务表中统-添加-个字段作为时间戳,当联机分析处理(OLAP)系统更新修改业务数据时,同时也会修改时间戳字段值,这时就将更新修改的数据加载到目标表中。

(2)日志表方式,即在OLAP系统中添加日志表,业务数据发生变化时,更新维护日志表内容。

(3)全表对比方式,即抽取所有源数据,在加载目标表之前先根据主键和字段进行数据比对,有更新的数据就进行更新或插入。

(4)全表删除插入方式,删除目标表中的数据,将源数据表中的数据全部加载到目标表中。


3.批量加载

通常,对于几十万条记录的数据迁移而言,采取DML(数据操纵语言)的insert、update、delete等语句能够较好地将数据迁移到目标数据库中。然而,当数据迁移量过大时,DML语句执行时生成的事物日志(事务日志是一个与数据库文件分开的文件,用于存储对数据库进行的所有更改,并全部记录插人、更新、删除、提交、回退和数据库模式变化)和约束条件将大大影响加载性能,故需要针对数据采取批量加载处理。



猜你喜欢:

Zookeeper是什么?有哪些显著特点?

怎样定义Scala数组?数组遍历和数组转换是怎样操作的?

​maplotib API介绍

黑马程序员python+大数据培训课程

分享到:
在线咨询 我要报名
和我们在线交谈!