这是一个关于数据仓库设计的问题。我们正在建立一个医疗保健数据仓库,并从 2 个主要的源系统开始,这些系统结合了大约 20,000 个表和 2 TB 的数据。1) 它是高维数据 2) 我们不想严重影响 OLTP 系统
我们选择了增量 Kimball 设计。我的问题是,是否应该暂存所有数据,然后将其分类为插入/更新并放入数据仓库。然后会为下一次增量加载清除暂存数据。
这为您留下了 1 个数据副本。
另一种方法是将其增量加载到暂存中,将其分类为插入/更新,并以与源系统相同的格式存储它。然后我们将来自源系统的数据从完整副本合并到数据仓库中。
这基本上会给您留下 2 个数据副本,一个以源系统的形式存在,另一个加载到实际的数据仓库中。
这方面的最佳做法是什么?我原本认为最好只将副本存储在数据仓库中,并在每次加载时清除源表。
但是,在这种情况下,如果您不得不返回现有维度并添加一列,则必须重新加载所有相关源表。加上你会失去历史?
不过,将它存储两次似乎效率很低……只是想对设计、您的经验和最佳实践有一些想法。