事实上的代理键是事实表

时间:2018-01-20 15:28:13

标签: data-warehouse business-intelligence dimensional-modeling

为什么在事实较少的事实表(或多对多维关系表)中需要代理键

1 个答案:

答案 0 :(得分:1)

为事实表中的行分配代理键很少是有益的:

  1. 有时,组织的业务规则合法地允许事实表存在多个相同的行。通常作为设计人员,您可以通过在源系统中搜索某种事务时间戳来使行独特,从而不惜一切代价避免这种情况。但偶尔你会被迫接受这种不受欢迎的输入。在这些情况下,有必要为事实表创建一个代理键,以允许加载相同的行。

  2. 用于更新事实行的某些ETL技术仅在将代理键分配给事实行时才可行。具体来说,一种将更新加载到事实行的技术是将要更新的行作为新行插入,然后将原始行作为第二步删除为单个事务。从ETL的角度来看,这种技术的优点是提高了负载性能,提高了恢复能力并改进了审计功能。事实表行的代理键是必需的,因为在插入更新行和删除旧行之间,更新事实行的旧版本和新版本通常会存在多个相同的主键。

  3. 类似的ETL要求是确定暂停加载作业的确切位置,以恢复加载或完全恢复作业。顺序指定的代理键使此任务变得简单。