AFAIK,最佳实践表明,至少对于事务和定期快照粒度,永远不要更新事实表行。在阅读Fact Table Surrogate Key时,发现了更新的概念:
用于更新事实行的某些ETL技术仅在以下情况下才可行:代理键已分配给事实行。具体来说,一个向事实行加载更新的技术是将行插入更新为新行,然后第二步删除原始行作为一次交易。 ETL中此技术的优点观点是改善负载性能,改善恢复功能和改进的审核功能。代理键事实表行是必需的,因为多个相同的主键将更新事实行的新旧版本通常存在在插入更新行和删除行之间老行。
Bob Becker是指从事实表进行更新/删除吗?这是常见的做法吗?
您有时可能需要更新事实表,原因很简单,原因是装入了错误的数据。
不确定代理键如何在这里提供帮助-您必须根据自然键找到要更改的行。
但是是, 事实表INSERT
和DELETE
(仅可能<>删除设置取消标志)可能是基本上出于可审核性和恢复性的原因,我们更喜欢简单的UPDATE
。同样,我不确定这如何影响性能。首先,2006年的最佳做法不必是当前的最佳做法-如今不平凡的