r - 如何在 RMDX 中格式化到分析服务器的连接字符串?
问题描述
提前很抱歉问了一个非常基本/新手的问题,但我正在尝试使用 RMDX 从 RStudio 的 Microsoft 分析服务器中查询一些数据。RMDX 是我能够成功安装的唯一软件包。我也尝试添加 X4R w install_github 但遇到了一些困难(无论如何,X4R 似乎也使用 URL 作为连接字符串),并且我尝试将 olapR 从我的 RClient 库添加到我的 R 3.5.2 库,但我收到一个关于它是为具有不同内部结构的 R 版本制作的错误。
RMDX 将 URL 作为连接字符串,但我不知道如何格式化数据连接......正确,我猜?我之前在 R 中只使用了带有 RODBC 的 sql,并且通过 ODBC 数据源管理器设置数据源不适用于数据仓库。
显然我缺少很多基础知识/理论/基础知识,所以我只是在黑暗中拍摄,但我尝试过“localhost//[server-name]”、“ https://[server-name ” ] ”并复制用于连接到我要查询的同一个数据仓库的某些 Microsoft bi 仪表板的连接字符串,但没有任何工作。有谁知道如何解决这个问题,或者任何人都可以建议从 RStudio 执行 MDX 查询的替代方法?谢谢!
解决方案
在像您一样尝试了类似的路线之后-我最终编写了一个 powershell 脚本,该脚本通过其“URL”连接到 MS SSAS 或 OLAP Cube(通常您将使用其中提到的“msmdpump.dll”的 URL 字符串某处 - 通常在它的末尾 - 作为 $con 或连接字符串)。之后(更准确地说,在 ps 脚本中它是一个模块)我严重依赖AdomdClient
对象及其属性,类似于这些行
#establish SSAS ADOMD Client and open connection
[System.Reflection.Assembly]::LoadWithPartialName(\"Microsoft.AnalysisServices.AdomdClient\") | Out-Null;
\
echo 'Connecting to Database/Cube via Powershell module!'
$con = new-object Microsoft.AnalysisServices.AdomdClient.AdomdConnection($connectionString)
$con.Open()
$command = new-object Microsoft.AnalysisServices.AdomdClient.AdomdCommand($MDXquery, $con)
$dataAdapter = new-object Microsoft.AnalysisServices.AdomdClient.AdomdDataAdapter($command)
$ds = new-object System.Data.DataSet
#fetch data
echo 'fill data container w cube data'
$dataAdapter.Fill($ds)
$con.Close();
....
之后,我通过system2(command = "powershell",...)
在 R 中使用各种连接字符串、MDX(查询)等参数调用此 ps 脚本,将结果作为 csv 文件保存在临时文件夹中,然后再次将其加载回我的 R 会话中。
希望有帮助。
推荐阅读
- php - 无法在使用 php-fpm 和 nginx 的 docker 提供的 api rest 上运行 phpunit 测试
- python - 更改窗口时图标从任务栏消失
- contact-form - Wordpress:在 jQuery 按钮上单击 Contact Form 7 菜单中的预选选项
- strapi - Strapi 生命周期回调是否“损坏”?
- java - 可以将投影接口解析为对象吗?春天
- javascript - React - 切换类:useState hook form 几个按钮
- javascript - 有没有办法在运行时从 CDN 导入 vue 组件?
- bash - 从不同的目录运行 git log
- react-native - 如何使用按钮 onPress 事件打开抽屉导航器
- python - 如果有 GIL,Python 守护程序线程会被繁忙的父线程阻塞吗?