来自SSAS多维数据集的JSON结果

scn*_*iro 6 xml json ssas mdx reporting-services

我是使用商业智能/分析服务和MDX查询的新手.我正在开发一个Web应用程序,它从报表服务器中提取/嵌入报表(SSRS报表构建在此多维数据集数据上),但结果很慢,结果看起来缺少IMO.我也使用相同的方法生成图表小部件(看起来更糟).

为了一次找到一个新的解决方案,我已经探索了使用一些非常好的SVG javascript库生成小部件(条形图,饼图,线条聊天等)的可能性.但是,这些库希望以JSON或XML提供数据(还支持其他一些格式,如CSV).

我想放弃当前对报告小部件的使用,并尝试根据此多维数据集数据呈现我自己的图表.但是,我无法以适当的格式收集数据.我更喜欢JSON来保存文件大小,但XML就足够了.有什么建议?

Fra*_*kPl 5

实际上,从SSAS返回的所有结果都是低级别的XMLA,即XML.此XMl包含许多您可能不需要的元数据信息.

要查看某些MDX语句的结果,可以在Management Studio中运行XMLA查询,如下所示:打开XMLA窗口并输入包含在XML Statement元素中的MDX,如下所示:

<Statement>
  select [Date].[Calendar].[Calendar Year].Members
         on columns,
         [Sales Territory].[Sales Territory Country].Members
         on rows
    from [Adventure Works]
</Statement>
Run Code Online (Sandbox Code Playgroud)

这将以所谓的多维格式将结果作为XML返回.还有一种表格格式,更像是关系结果集.您可以使用完整语法来实现:

<Execute xmlns="urn:schemas-microsoft-com:xml-analysis">
  <Command>
    <Statement>
      select [Date].[Calendar].[Calendar Year].Members
             on columns,
             [Sales Territory].[Sales Territory Country].Members
             on rows
        from [Adventure Works]
    </Statement>
  </Command>
  <Properties>
    <PropertyList>
      <Catalog>Adventure Works DW 2008</Catalog>
      <Format>Tabular</Format>
    </PropertyList>
  </Properties>
</Execute>
Run Code Online (Sandbox Code Playgroud)

如果更改<Format>Tabular</Format><Format>Multidimensional</Format>,则应该得到与我的第一个代码示例中相同的结果.事实上,Management Studio只围绕我上面显示的第一个代码,因为它看起来类似于我的第二个代码示例,以便为您节省一些输入.

一些评论:

  • 在MDX代码中,您必须转义一些字符& ,<以使请求成为有效的XML.
  • <Catalog>Adventure Works DW 2008</Catalog>完整代码中的部分是您访问的目录名称,即数据库.
  • 可以在此处找到XMLA语法的文档:http://msdn.microsoft.com/en-us/library/ms186691.aspx