eas*_*sed 8 data-warehouse sql-server architecture sql-server-2012
这是一个关于数据仓库设计的问题。我们正在建立一个医疗保健数据仓库,并从 2 个主要的源系统开始,这些系统结合了大约 20,000 个表和 2 TB 的数据。1) 它是高维数据 2) 我们不想严重影响 OLTP 系统
我们选择了增量 Kimball 设计。我的问题是,是否应该暂存所有数据,然后将其分类为插入/更新并放入数据仓库。然后会为下一次增量加载清除暂存数据。
这为您留下了 1 个数据副本。
另一种方法是将其增量加载到暂存中,将其分类为插入/更新,并以与源系统相同的格式存储它。然后我们将来自源系统的数据从完整副本合并到数据仓库中。
这基本上会给您留下 2 个数据副本,一个以源系统的形式存在,另一个加载到实际的数据仓库中。
这方面的最佳做法是什么?我原本认为最好只将副本存储在数据仓库中,并在每次加载时清除源表。
但是,在这种情况下,如果您不得不返回现有维度并添加一列,则必须重新加载所有相关源表。加上你会失去历史?
不过,将它存储两次似乎效率很低……只是想对设计、您的经验和最佳实践有一些想法。
就我个人而言,我有用于提取、转换和持久数据存储的临时表。
您是否进行完全导出或增量加载将取决于您拥有的工具、您的策略以及您的应用程序架构和数据是否支持它。有时您无法避免完全导出。
向维度添加列并不是什么大问题,但回填历史数据可能非常困难,或者根本不可能。尝试重建应用程序在某个时间点的回顾将是一项艰巨的任务。你需要一个非常好的案例来证明这一点。
您提到的所有事情都是可能的,但只有您可以决定成本/收益是否值得。
归档时间: |
|
查看次数: |
1683 次 |
最近记录: |