数据抽取是一种从数据源中提取数据并将其转换或转移到另一个系统或数据库的技术。根据提取的数据类型和目标系统的需求,数据抽取可以采用不同的方法。
根据数据抽取方法的不同,可以将其大致分为全量抽取和增量抽取两大类。
全量抽取,又称为数据迁移或数据复制,它涉及从数据源中完整地复制表或视图的数据,并将其转换到ETL工具可以识别的格式。这种抽取方式相对简单,通常首先在源系统中进行数据的完整备份,然后将备份数据导入到目标系统。
增量抽取,顾名思义,是从上次抽取以来数据库中要抽取的表中新增、修改、删除的数据。在ETL使用过程中,增量抽取相比全量抽取应用更广泛。增量抽取的关键是如何捕获变化的数据,这通常可以通过以下几种方法实现:
触发器:在要抽取的表上建立需要的触发器,一般要建立插入、修改、删除三个触发器,每当源表中的数据发生变化,就被相应的触发器将变化的数据写入一个临时表,抽取线程从临时表中抽取数据。这种方法的数据抽取性能较高,但是要求在业务数据库中建立触发器,可能会对业务系统有一定的影响。