SSDT解决方案未反映在SSMS中创建SSAS表格分区

时间:2018-07-30 13:30:19

标签: sql-server-2016 ssas-tabular

我正在使用SSDT创建我的表格模型,正在创建一个要分区的表(两周的数据-每年24个分区)。

Partitions

通常,我正在准备2年的数据分区(意味着48个分区)。 将模型部署到Analysis Services时,可以通过连接到Analysis Services实例从SSMS访问模型

Partitions2

我的问题是,

我设法创建了一个自动化脚本,该脚本会生成XMLA查询以在SSMS中创建分区,我正在执行它,并且可以看到正在创建的分区,但是当返回SSDT并打开解决方案时,这些分区是没有反映在那里。再次打开解决方案时,是否有办法“强制” SSDT从分析服务实例读取元数据?

此外,如果我继续在SSDT中开发模型,则一旦我再次部署它,我通过SSMS所做的所有更改都将被覆盖,有没有办法避免这种情况?

在SSDT中手动创建分区可能非常痛苦... 我设法创建了一个脚本来自动化它,但是没有在SSDT中实现

有什么建议吗?

2 个答案:

答案 0 :(得分:1)

您在SSDT中访问的数据库是您的工作区数据库。工作区数据库本质上是表格模型的本地副本。您在SSMS中添加到模型的分区已创建,工作空间数据库不同步。您可以通过删除/移动本地SSAS项目中使用的文件,然后在SSDT中创建新的Analysis Services项目并使用“从服务器(表)导入”选项,用当前版本的模型覆盖工作区数据库。表格模型的当前版本。这将使用模型的当前版本创建一个新的工作空间数据库。这样做时,请确保从本地SSAS项目中删除或移动文件时,移动的文件是针对本地项目的,而不是针对实际模型的。如果需要验证模型使用的文件的位置,则SSMS中SSAS实例的DataDir属性将显示此文件路径。

答案 1 :(得分:1)

正如userfl89所指出的,您在SSMS中创建的任何分区都需要“反向移植”到您的SSDT项目中,例如,在创建新项目时使用“从服务器导入(表)”选项。否则,从SSDT进行部署时,您可能会丢失分区(及其中的数据)。

或者,您可以使用BISM Normalizer(Visual Studio的插件)在SSDT和已部署的数据库之间来回合并更改(例如分区)。

还有一个Analysis Services Deployment Wizard,它接收项目\ bin \文件夹的内容,并允许您部署到数据库,并指定您不想覆盖现有分区。

最后,如果您还没有的话,我建议您看看Tabular Editor。它是开发SSDT的替代方法,因此当然会涉及一些学习,但是好消息是您可以执行partial deployments,以避免影响已经部署的数据库上的分区。

enter image description here