首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在Linux上从R访问Olap-Cubes

如何在Linux上从R访问Olap-Cubes
EN

Stack Overflow用户
提问于 2019-05-27 18:25:14
回答 1查看 1.2K关注 0票数 3

我想从Linux上的R访问Olap-Cube。具体地说,我有一个SQL-Server 2016,其中包含我想要访问的Analysis Services和多维数据集。

我们一直使用microsoft R和olapR-package从windows上的R访问多维数据集。虽然有microsoft-R的linux版本,但它不包括olapR-package。

我们已经为SQL-Server安装了R-Services。我们确实在那里安装了olapR包(使用R-Server绑定),但它似乎没有提供对mrsdeploy的支持。

在linux上,我还有哪些其他选项可以从R访问多维数据集?我们听说过Revoscaler包,但不知道如何在多维数据集上使用它。也许我们可以将一个包含r-code的sql脚本发送到服务器,让sql-server执行r-code?不过,在这种方法上,我没有找到任何帮助。

任何帮助都是非常感谢的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-05-31 14:44:29

在我们的例子中,它的工作方式是将olapR-code嵌入到RODBC-Code中的T-SQL中。

代码语言:javascript
复制
library(RODBC)
my_server="<server>"
my_db="<database>"
my_username="<myusername>"
my_pwd="<mypassword>"

db <- odbcDriverConnect(paste0("DRIVER={SQL Server};
                               server=",my_server,";
                               database=",my_db,";
                               uid=",my_username,";
                               pwd=",my_pwd))

sql="exec sp_execute_external_script
    @language =N'R',
    @script=N'
    library(olapR)

    cnnstr <- \"Data Source=<server>; Provider=MSOLAP; initial catalog=<AnalysisService>; User Id=<domain>\\\\<user>; Password=<myPassword>\"
    olapCnn <- OlapConnection(cnnstr)
    mdx <- \" <MDX-Query> \"
    OutputDataSet <- execute2D(olapCnn, mdx)';"

df <- sqlQuery(db,sql)

请注意domain\user中的四重反斜杠。

请注意,analysis services登录名不必与SQL登录名相同。

请注意,SQL用户必须具有执行外部脚本的权限:

代码语言:javascript
复制
GRANT EXECUTE ANY EXTERNAL SCRIPT TO [<user>]

可以通过使用"with result sets“语句进一步改进,但它是有效的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56324205

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档