【问题标题】:Fact table updatable/deletable rows事实表可更新/可删除行
【发布时间】:2020-04-13 20:34:56
【问题描述】:

AFAIK,最佳实践表明您永远不应该更新事实表行,至少对于事务和定期快照粒度。在阅读Fact Table Surrogate Key 时,发现了更新的概念:

某些用于更新事实行的 ETL 技术仅在以下情况下才可行 代理键被分配给事实行。具体来说,一个 将更新加载到事实行的技术是将要插入的行 更新为新行,然后删除原始行作为第二步 作为单一交易。来自 ETL 的这种技术的优势 观点是改善负载性能,改善恢复 能力和改进的审计能力。的代理键 事实表行是必需的,因为多个相同的主键将 更新的事实行的新旧版本经常存在 在更新行的插入时间和删除行之间 旧行。

Bob Becker 的意思是从事实表更新/删除吗?这是一种常见的做法吗?

【问题讨论】:

    标签: database data-warehouse dimensional-modeling star-schema fact-table


    【解决方案1】:

    有时您可能需要更新事实表,原因很简单,因为加载了错误的数据。

    不确定代理键如何提供帮助 - 您必须根据自然键找到要更改的行。

    但是是的,INSERTDELETE(可能只有 logical delete 设置取消标志)可能是 基本上出于可听性和恢复的原因,更喜欢简单的UPDATE。同样,我不确定这会如何影响性能。

    最重要的是,2006 年的最佳实践不一定是当前的最佳实践 - 现在 非平凡的事实表通常没有主键,因为唯一索引使滚动分区窗口的概念变得更加困难。 (如果需要,在 ETL 过程中检查唯一性)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-04-30
      • 2012-11-14
      • 1970-01-01
      • 2021-08-10
      • 1970-01-01
      • 1970-01-01
      • 2011-09-30
      相关资源
      最近更新 更多