天天看点

DTS开发记录(9)-- 数据迁移任务 DataTask

    有了DataTask,我们的数据引擎就可以修改为基于一个指定的DataTask执行。DataTask不仅封装了在其上执行数据迁移的连接对和数据映射,还封装了数据迁移的控制/配置信息。另外,对于定时执行数据传递任务的配置也是封装在DataTask中的。当将DataTask抽象出来后,我们便可以在多处直接复用它:

(1)数据传递引擎

(2)数据检查

(3)定时设置

(4)任务详细设置

    所有的数据迁移任务都序列化后保存在DTS系统的配置文件中,当程序启动时,将自动加载已经存在的所有数据迁移任务。DataTask的类图如下:

DTS开发记录(9)-- 数据迁移任务 DataTask

    UseTrigger属性说明了当数据源为数据库时,是否采用触发器获取数据增量(前提是,我们必须有创建触发器和增量表的权限)。DataTransferOption记录关于本任务的所有详细设置。TimerConfiguration属性则是本任务的定时执行的时间信息。

    下面详细介绍一下DataTransferOption和TimerConfiguration,首先看DataTransferOption。

(1)DTSType属性说明了数据导出的类型:全部导出、增量导出。

(2)如果是增量导出,则IncreaseAdd、IncreaseUpdate、IncreaseDelete属性表明了要导出哪些增量。

(3)LocalFileLogEnabled属性表明是否记录本地文件日志

(4)SourceFieldInvalidHandleType属性指定了当数据源不满足转换条件时的处理方式:忽略、回滚、记录日志。

(5)DBLogType是记录数据库日志的类型:将日志记录到源数据库、还是目标数据库。

(6)SourcePageSize是分页读取数据源时页的大小。

(7)SourceWhereStr属性是筛选源数据的条件语句。

(8)WhereEnabled属性控制SourceWhereStr是否有效。

    TimerConfiguration记录了定时任务的详细设置,定时任务执行有几种方式:

(1)每小时

(2)每天

(3)每周

(4)每月

(5)每隔制定时间

    public enum TimerType

    {

        PerDay, PerHour, PerMonth, PerWeek ,EverySpan

    } 

    定时任务通常都是与增量导出结合在一起的。

     系统中所有的数据迁移任务都由DTConfiguration管理起来,同样的,DTConfiguration管理了系统中的所有连接对。例外的是,所有的映射文件是单独保存在特定的目录下的,而不是由DTConfiguration管理。这是因为,我们经常需要将某个映射文件拷贝到别的地方。DTConfiguration的类图如下:

DTS开发记录(9)-- 数据迁移任务 DataTask