Dmetl问题学习

1、如何选择合适的增量抽取方式?

可以根据各种增量抽取方式的特点来选择合适的增量抽取方式,各种方式的

特点如下:

触发器增量抽取方式:对 ETL 服务器的负担较小,实现简洁,需要在源数据

库中建立触发器,适用于数据量大的表,实时性要求较高的场合。

影子表增量抽取方式:通过对比影子表和原表的差异来捕获变更数据,适用

于不能创建触发器的地方,以及实时性要求要求不高的场合。

MD5 增量抽取方式:通过计算数据的 md5 值来捕获变化数据,与影子表方式

类似,适用于不能创建触发器的地方以及实时性要求不高的场合,与影子表增量

相比其性能稍差,但是 md5 表的字段数通常比影子表上,占用的空间较少,在存

储空间不受限制的情况下应该尽量采用影子表增量方式代替 MD5 增量。

时间戳增量抽取方式:这种方式要求在源表的里面存在一个可以标识记录版

本的字段,每次数据变化时,该字段的值也发生变化,该字段类型可以是时间戳

字段,也可以是其它类型的字段,例如 Timestamp 字段以及

rowvision 字段。

2、增量表组件除了读取增量数据集中的数据外,还会记录增量抽取相关的状态信息,以保证数据抽取没有重复和遗漏。表组件之做插入操作,增量表组件会根据操作列来决定是进行插入、更新或者删除操作。

3、周期性调度中“每”和“每隔”有什么区别?

“每”是指两次流程执行开始时刻之间的间隔,“每隔”是指上次流程执行

结束与这次流程执行开始的时间间隔。

4、作业

1) 转换流程与作业流程的区别?

转换流程和作业流程的区别如下:

a) 转换是处理数据的,作业是工作流,用于控制各种转换和功能的执行顺序。

b) 转换一旦开始执行,转换中所有的节点是并行执行的。而作业中的节点是按照连接线的顺序执行的,只有上一个节点执行完成后,下一个节点才开始且节点和节点之间没有数据传递。

2) 完成线与成功线的区别?

完成线是上一节点执行完,不管成功还是失败,下一个节点都接着执行。成功线是上一节点执行成功,下一节点才执行,上一节点执行失败,下一节点就不执行。

3) 作业流程中如何设置条件分支?

可以在作业组件上从黑色箭头中拖出几个条件线(),在不同的条件线上设置不同的条件,即可实现分支。

5、全量数据抽取时如何实现持断点续传?

a) 可以使用变量实现断点续传,具体说明见典型示例《基于变量实现断点续传》

b) 可以通过数据读取节点上的数据条数设置,跳过已经读取的数据来手工实现断点续传