我有一个 Analysis Services 多维数据集项目,我的公司从外部承包商那里收到了这个项目,我正试图获得它,以便开发人员可以在他们的本地机器上处理它。
我很确定最初的开发人员从多维数据集项目生成了后端数据库的架构,然后对其进行了处理。因此,我想从 Visual Studio 生成架构,而不是仅在 SQL Server Management Studio 中导出数据库。目前,我收到一条错误消息,指出当我尝试生成关系模式时维度已绑定到用户表。
我的方法是否合理,如果合理,我将如何去做?如果我的方法不合理,为什么不呢?
(注意:几天前我在 StackOverflow 上问过这个问题。当我回到它时,我想到这里更合适,所以我把它移到了这里。)
它不是这样工作的。通过定义要在多维数据集中使用的表/查询来生成 .dsv(数据源视图)。
流程是:
.ds
通过定义如何连接到源数据库来创建一个或多个数据源dsv
通过添加表和定义如何从您的数据中获取数据的命名查询来创建(数据源视图).ds
.dsv
需要的数据在多维模型中的外观来创建维度和多维数据集。从技术上讲,我想您可以通过分析 .dsv 文件中的 xml 来重新创建源系统模式,因为它包含数据类型和表名/查询,并且理论上您可以将它们映射回去并重新创建源数据库,但是那会需要大量的手动工作,或者你写一些东西来从 xml 中解析出来。
如果您的 DSV 包含命名查询,您仍然需要分析这些 sql 查询并重建基础表。
根据您的命名查询的复杂程度,这可能变得几乎不可能。
在完成所有这些工作之后,您最终会得到一个模式而没有数据,因此您的开发人员也许能够修改 visual studio 解决方案,但无法加载数据来测试他们的修改。
唯一需要使用架构生成的情况是,如果您进行了自上而下的开发并且之前从未生成过架构。既然您之前已经生成了 SQL 架构,您只需编写 SSMS 中的所有对象的脚本,并将该脚本与 SSAS 项目一起提供给其他开发人员。
然后新开发人员将部署 SQL 脚本并编辑 SSAS 项目中的数据源以指向他们的数据库。
这是我认为最直接的方法。