如何将数据从MDX OLAP多维数据集“拉”到标准SQL Server表中?

时间:2013-09-24 14:21:22

标签: sql sql-server olap-cube

我已经获得了访问多维数据集的权限,并且需要知道我是否可以设置可以连接到多维数据集并检索内容的存储过程(通过MDX查询)。 我需要这样做以防止必须从Management Studio或Excel(通过PowerPivot)导出数据。 我对cube / olap查询非常陌生,所以原谅我可能表现出来的任何天真。

2 个答案:

答案 0 :(得分:3)

最简单的方法是为您的多维数据集创建一个链接服务器,然后INSERT..SELECT FROM OPENQUERY http://sqlblog.com/blogs/stacia_misner/archive/2010/11/30/31193.aspx

此选项有限制

  • 它在MDX查询上有8000个字符的约束
  • 您必须为每个数据库手动创建链接服务器
  • 结果为空时需要处理特殊代码
  • 结果集列中的过多数据类型(列的ntext和行的nvarchar(4000))

高级选项是ExecuteOLAP CLR存储过程https://olapextensions.codeplex.com/

答案 1 :(得分:0)

如果您选择使用OPENQUERY(最简单的方法,但具有Brian指定的限制),以下过程可能很方便:

var js = require('./js-file.js'),
    fs = require('fs');

fs.writeFileSync('./output.json', js.returnMethod());

它具有以下优点:

  • 处理收到的结果没有预期列(没有执行任何操作)的情况
  • 对非常小的数字执行一些舍入(这可能发生,因为多维数据集知道只使用浮点数)。
  • 所有mdx语句都经过一个程序

在剖析时,我注意到了大概。开销100毫秒(通过程序执行与直接执行分析服务器)。

.NET开发人员可以使用ADOMD.NET框架,该框架允许运行参数化查询并且开销较小。