数据采集通常是指ETL过程中Extract-数据抽取部分。除了ETL外在不同应用系统之间通常也需要传递数据,在某些环境条件限制下不能将数据从一个系统直接移到另一个系统,只能借助文本来作为中间媒介传递数据,且文本的生成有时间窗口的限制,所以对数据采集即数据抽取的性能有一定的要求。对增加数据的采集的方法常用的有以下几种:
1.时间戳(Timestamps on rows)
在表中增加一列通常为Last_update列来存储当前行最后一次进行DML操作的时间。时间戳大于最后一次采集(capture)时间的数据是待采集的数据即最后一次采集后有变化的数据。
2.版本号(Version Numbers on rows)
在表中增加一列通常为Version_number列来存储数据行变化,每次变化都将version_number列的数据增加;然后可以使用一个参考表来记录每次采集时数据对应的版本号,当再次采集时将参考表与源表中的版本号比较来判断需要采集的数据,采集完以后将参考表中对应版本号更新为与源表一致的版本号;
3.状态指示(Status indicators on rows)
在表中增加一列状态列通常为Status列来存储数据行状态,比如如果当前行需要采集则将其致为true,否则为false;采集时只需要采集状态为true的行即可;
4.时间戳、版本号、状态指示混合使用(Time/Version/Status on rows)
在如下逻辑下可以混合使用,比如需要采集2011年1月2日12:15到2011年2月4日10:00之间版本号为2.1状态的数据;
5.触