我目前有一个需要每晚更新的3m记录表。 填充此表的数据来自大约100个API,这些API都被归一化为一个巨型表。反映两个数据集之间的记录删除/添加
问题: 如何反映正在添加的新记录以及在源处删除的记录?
事实: 我不能每天晚上截断表并重新插入。 每个API为每条记录提供一个常量ID(这样我就可以跟踪什么是什么)。 有些字段将每晚更新。
解决方案: 新记录很容易,我只是将它们添加到我的表与一个AvailableFrom日期。 更新也很容易,对于每条记录我会检查它是否存在以及数据是否已更改(性能会变差)。
删除的记录是我卡住的地方。 这些API只会转储一大堆数据,我该如何判断一条记录是否“脱落”?
我在想某种交换表 - 任何想法?
谢谢,我去了第一个解决方案。解决方案2可能更整洁(我可以创建带有统计数据的导入对象等),但是我添加了LastUpdated列。一个单独的进程然后清除旧的行。完全导入会破坏其他地方引用的表ID。 – jimi 2010-10-11 14:03:26