2014-02-26 44 views
5

我有3个数据库具有相同的结构,但数据不同,因为它们来自不同的客户端。具有多个DB的SSAS多维数据集

现在,我有一个现有的SSAS项目。其数据源视图,多维数据集和维度只能使用或访问一个数据库。

  • 我想要的是能够使用具有相同结构的多个数据库,并使用它们创建一个多维数据集。
  • 每个客户端也必须能够使用多维数据集,但他们只能看到他们自己的数据。

diagram http://oi59.tinypic.com/u7ci1.jpg

这些是可能的吗?你能否提供见解和一些有用的参考资料?

回答

4

简易解决方案 解决此问题的最简单方法是仅使用三个Analysis Services数据库。安装过程很简单,只需要三个结构相同的数据库,不需要管理多维数据集内的安全性,只需访问多维数据集。管理起来很容易,而且很难出错,使用户可以访问他们不应该看到的数据。由于没有人可以从其他公司获取数据,所以不需要一个普通的立方体。

只需使用不同的Analysis Services数据库名称部署您的项目三次。 然后将已部署的数据库的数据源对象更改为指向不同的关系数据库。

第一步,在Business Intelligence Development Studio中,右键单击解决方案资源管理器中的项目节点,选择底部条目(“属性”),然后选择“部署”。在这里,您可以输入服务器以部署解决方案以及数据库名称。关闭对话框后,再次右键单击项目节点,然后选择“部署”。重复这一步,使用三个不同的数据库名称。

然后,连接到SQL Server Management Studio中的Analysis Services服务器,打开每个数据库,并编辑每个数据库的数据源对象以指向其关系数据库。 之后,重新处理Analysis Services数据库。

另外,你也可以做所有事情在BIDS,我。即在更改用于部署和部署的目标数据库之间,在那里更改数据源,并且在部署之后,可能需要重新处理Analysis Services数据库。

如果您认为您需要多次更改和部署多维数据集定义,那么您可能可以使用“配置管理器”按钮在项目属性对话框中编辑的配置。您将拥有三个配置,每个目标Analysis Services数据库都有一个配置。您可以为每个部署选择工具栏下拉列表中的某个配置,而无需一次又一次编辑属性。

如果您需要经常这样做,我认为通过XMLA,或通过AMO或PowerShell自动执行更改数据库和重新处理多维数据集的步骤并不困难。但为了实现这一点,这将是另一个问题。

更复杂的解决方案

如果你真的想在一个立方体的一切,那么你就必须有从数据源视图不同来源的表的联合。如果所有三个关系数据库都位于同一个SQL Server实例中,则可以将其定义为数据源视图中的命名查询,或者将其定义为其中一个数据库中的视图,甚至可以更好地将其视为独立关系中的视图或表数据库。您可以以NameOfDB.Schema.Tablename的形式访问表或查看其他SQL Server数据库中运行的数据库。

如果这些数据库在不同的情况下,你可以使用链接的服务器。

和当然,你将不得不在管理这些不同的数据库中的键,以便同维条目具有相同的密钥和不同尺寸的条目有不同的密钥。而且您必须在立方体中设置安全性,以便任何用户都无法看到无法看到的数据。

虽然你可以使用Analysis Services中不同的表或命名查询Analysis Services中不同的数据源对象,每一个这些只使用一个,因为实际上,这是发送到该源一个SQL语句。并且维需要基于一个数据源视图对象,如一个命名查询,视图或表。对于事实表,您可以使用分区来解决此问题,但不能用于维度。

+0

谢谢您的回答,但我只得到了这么远 - 只需使用一个不同的Analysis Services数据库名称部署项目的三倍。 我真的很新。我一直在研究立方体和SSAS大约3天。您能否详细解释如何执行您的下一个建议步骤?谢谢弗兰克! – Raii

+0

@Raii我编辑了我的答案,给出了更多步骤的细节。 – FrankPl

+0

@FrankPI我会在明天尝试这一天(我现在没有时间),我会让你知道的。谢谢! – Raii

相关问题