我的任务是设计一个Kimball风格的数据仓库。它将位于Server中的prem上。组织物理实现的最佳做法是什么?也就是说,数据仓库是否应该是一个单一的数据库,使用模式来分隔每个数据集市(并且将所有维度都放在自己的模式中,以帮助“驱动”跨市场的重用)?或者,每个数据集市是否应该是自己的数据库(强制所有维度都存在于一个单独的数据库中)?
如果我使用云平台进行数据仓库,比如Azure SQL DB (例如,使用托管实例来允许跨数据库查询),这个决策是否重要?
发布于 2022-01-07 22:27:52
多模式和多数据库设计都是常见的.多数据库设计的主要优点是
的不同部分具有不同的备份/恢复模型/HA的能力
的不同部分。
在Azure SQL数据库(非托管实例)中,Synapse SQL Pool (目前)中没有一流的跨数据库查询,因此您更有可能在那里使用多模式设计。托管实例在数据仓库工作负载方面存在一些perf成本问题,而Hyperscale通常更适合100 of 10 of范围内的数据仓库。
但是通过平台管理的备份,所有托管实例数据库都处于完全恢复状态。在MI中,您无法在数据库之间共享存储资源,因此多数据库设计可能更昂贵。
所以没有一个明确的最佳做法。大型事实表的Columnstore是强有力的推荐,并与通用的Columnstore最佳加载和维护实践相结合。
https://stackoverflow.com/questions/70627383
复制相似问题