我们公司才刚刚开始涉足商业智能。我们有一些架构师正在设计我们的数据仓库和数据集市。他们对两种设计都使用星型模式。
架构师表示,他们用于集市的设计是相同的,我们只需要它的“另一个副本”供任何客户希望查询他们的集市,并且每个集市的数据可能不同。
我们只有一个市场开始。这是一个 AIX LPAR、一个 DB2 数据库实例和一个具有一个模式的数据库。
现在我们有另外三个数据集市的请求。最佳做法是什么?这些应该是同一数据库中的不同模式吗?每个集市应该是同一实例中的单独数据库吗?我们应该有单独的数据库、单独的实例吗?
从物理部署和维护的角度来看,这里的最佳实践是什么?或者使用什么准则来定义什么时候应该是哪个选项?
听起来您正在寻找与多租户架构相似(如果不相同)的东西。
在多租户架构中,所有租户(客户、客户)共享一些东西。他们可能只共享服务器和 dbms,每个租户都获得一个私有数据库。或者他们可能共享数据库,每个租户都获得一个私有模式。或者他们可能共享表,其中每个表中的每一行都带有一个租户标识符。
所以有相当广泛的选择。其中每一个都可能被认为是某些应用程序的最佳实践,而对于其他应用程序来说则是最差的实践。
您的架构师似乎在考虑“每个客户一个数据库”,也称为“无共享”。(这实际上意味着只共享 dbms,通常是服务器。)
由于可能性的范围,实际上并没有一个最佳实践。您希望使部署和维护尽可能简单,但您还必须考虑租户共享的内容。
独立的私有数据库使某些类型的维护变得容易,而使其他类型的维护变得困难。例如,当租户只共享服务器和 dbms 时,
当租户共享桌子时
还有其他问题。使用“无共享”进行灾难恢复比使用共享表(也称为“共享所有内容”)要容易得多。使用“无共享”,您可以只恢复数据库。使用“共享所有内容”,您只需恢复每个表中的几行。 当您扩大规模时,硬件成本可能是一个问题。 “不共享”更容易实现数据隔离和安全,而“共享一切”则更难。