SSAS表格模型动态管理视图和存储的过程

时间:2018-06-21 22:35:04

标签: ssas ssas-tabular

有几种动态管理视图(DMV)可用于从SSMS查询表格模型中的元数据(此处的文档https://docs.microsoft.com/en-us/sql/analysis-services/instances/use-dynamic-management-views-dmvs-to-monitor-analysis-services?view=sql-server-2017)。

我的问题是我需要定义表的基础SQL查询,实际上我需要为表格模型创建table_name,table_query的列表,并且我不想在处理时手动进行操作有上百张桌子和几种型号。

我知道外部程序集中的分析服务存储过程可以使从DISCOVER_XML_METADATA返回的XML变平。 github上的项目称为ASSP(github link

我的问题是,特别是这些存储过程中的哪一个可以使我生成带有表名和相应SQL视图的所需列表(在Visual Studio编辑器中,该列表位于“表属性”下,当我能够定义它时)导入表格)。最好,我也希望查询,但是只需要具有基础数据源视图名称就可以了,

TabularModel,TabularTable,DatabaseSourceView

其他详细信息:

兼容性级别:1103(SQL Server 2012/2014 SP1)

如果不想给我提供我想要的信息但又不想解析XML输出,那么我不想麻烦安装外部程序集,因此这似乎是最好的选项来生成此元数据列表,但是我不确定是否已经有内置存储的proc或是否需要进行大量编码。

1 个答案:

答案 0 :(得分:1)

我将在Excel中使用PowerQuery(又名Get&Transform)来解析Model.bim文件的XML,以获得所需的信息。

  1. 转到“数据”选项卡,单击“获取数据”>“从文件”>“从XML”

  2. 将文件选择对话框指向Model.bim文件,然后单击“编辑”。

  3. Power Query有时会选择将文件导入为文本而不是XML,因此请确保通过在“源”步骤中单击小齿轮将其更改为XML,然后在“打开文件”中选择“ Xml表”为”下拉列表: enter image description here
  4. 删除“更改类型”步骤。
  5. 通过在单元格中单击来导航XML结构,直到找到所需的数据。在此过程中,您可以根据需要扩展列。看到这个gif: enter image description here

如果您没有从gif中捕获它,则为钻取路径:

  • ObjectDefinition
    • 数据库
      • 多维数据集
        • 多维数据集
          • 测量组
            • MeasureGroup(保留“名称和分区”列)
              • 扩展分区(保留名称和来源)
                • 扩展源(保留QueryDefinition)

最终结果应该是表格模型中的表的列表,其中每个表的每个分区以及每个分区内使用的查询。

如果有多个模型,可以将所有Model.bim文件放在一个文件夹中,然后让Power Query对其进行迭代以将所有内容组合到一个列表中。

祝你好运!