如何定期向数据仓库追加数据也是一个十分重要的技术。数据仓库的数据来自OLTP的数据库中,问题是如何知道究竟哪些数据是在上一次追加过程之后新生成的。
常用的技术和方法如下:
(1)时标方法:如果数据含有时标,对新插入或更新的数据记录,在记录中添加更新时的时标,那么只需根据时标判断即可。但并非所有的数据库中的数据都含有时标。
(2)DELTA文件:它是由应用生成的,记录了应用改变的所有内容。利用DELTA文件效率很高,它避免了扫描整个数据库,但同样的问题是生成DELTA文件的应用并不普遍。此外,还有更改应用代码的方法,使得应用在生成新数据时可以自动将其记录下来。但应用成千上万,且修改代码十分烦琐,这种方法很难实现。
(3)前后映像文件的方法:在抽取数据前后对数据库各做一次快照,然后比较两幅快照的不同从而确定新数据。这种方法占用大量资源,对性能影响极大,因此并无多大实际意义。
(4)日志文件:最可取的技术大概就是利用日志文件了,因为它是DB的固有机制,不会影响OLTP的性能。同时,它还具有DELTA文件的优越性质,提取数据只要局限日志文件即可,不用扫描整个数据库。当然,原来日志文件的格式是依据DB系统的要求而确定的,它包含的数据对于数据仓库而言可能有许多冗余。例如,对一个记录的多次更新,口志文件将全部变化过程都记录下来;而对于数据仓库,只需要最终结果。但比较而言,日志文件仍然是最可行的一种选择。