小编典典

从高度事务处理的数据库中将“凄惨”数据提取到Analytics DB的最佳方法是什么?

sql

从高度事务性数据库中仅将Delta加载到分析数据库中的最佳方法是什么?

注意:我们有一个高度事务性的系统,并且我们正在用它建立一个分析数据库。目前,我们正在清除分析数据库中的所有事实和维度表,并在午夜加载整个“已处理”数据。这种方法的问题在于,我们每次都一次又一次地加载相同的数据,以及在该特定日期添加/更新的少量新数据。我们需要单独加载“
Delta”(新插入的行和已更新的旧行)。有任何有效的方法吗?


阅读 186

收藏
2021-04-22

共1个答案

小编典典

在不了解细节的情况下很难说出一些信息,例如数据库架构,数据库引擎……但是,对我而言,最自然的方法是使用时间戳。此解决方案假定从事务数据库加载/迁移到分析数据库的实体(表中的单个记录或一组相关记录)具有时间戳。

该时间戳表示上一次创建或更新给定实体的时间。在加载/迁移数据时,对于每个 **时间戳

上次迁移的日期,**您都应仅考虑这些实体。这种方法的优点是非常简单,不需要任何特定工具。问题是您的数据库中是否已经有时间戳。

另一种方法可能是利用某种变更跟踪机制。例如,MMSQL服务器具有类似的功能(请参阅本文)。但是,我必须承认我从未使用过它,因此不确定在这种情况下是否合适。如果您的数据库不支持更改跟踪,则可以尝试根据触发器自行创建数据库,但总的来说,这并非易事。

2021-04-22