r - 使用 Power BI 中的 Office 数据连接 (.odc) 文件连接到 R 中的数据库

标签 r database powerbi dbplyr

我被要求为一个大型组织制作一堆图表,并获得了访问他们的 Power BI 仪表板的权限。我想绕过 Power BI 的界面,以便我可以在 R 中制作图表。Power BI 提供了“在 excel 中分析”选项,可让您下载 .odc 文件以在 excel 中打开。 .odc 文件不包含它只是为 excel 指定数据库连接的数据。
但是,这只适用于 Windows 计算机,而我有一台 mac。如果需要,我会尝试弄清楚如何安装 Windows 虚拟机,但我想我会先在这里尝试:

.odc 文件指定连接类型和字符串,例如

<odc:Connection odc:Type="OLEDB">   
<odc:ConnectionString>Provider=MSOLAP;Integrated Security=ClaimsToken;
Identity Provider=https://login.microsoftonline.com/common, 
https://analysis.windows.net/powerbi/api, 929d0ec0-7a41-4b1e-bc7c-b754a28bddcc;
Data Source=pbiazure://api.powerbi.com;
Initial Catalog=2df8e9ba-9ee5-43fb-bbb0-ba622b9cdc2b;
MDX Compatibility= 1; MDX Missing Member Mode= Error; 
Safety Options= 2; Update Isolation Level= 2; </odc:ConnectionString>

我希望可以使用 dbplyr 连接到 R 中的底层数据库或其他一些包,但我不确定从哪里开始。这个关于如何在 python 中做到这一点的答案看起来很有希望 Reading a dataframe from an odc file created through excel using pandas但是我遇到了与我的 python 安装相关的错误。我宁愿让它在 R 中工作。

.odc 文件中是否有足够的信息通过 dbplyr 进行连接? ?

最佳答案

您在问题中发布的内容似乎是 Azure 数据库的 OLE DB 连接字符串。连接字符串特定于您要连接的源(例如 Azure 或 SQL),而不是连接的程序(例如 R 或 Power BI)。

然而 R 和 dbplyr似乎主要用于 ODBC 连接而不是 OLE DB( reference 1reference 2 )。

您也许可以使用 this链接将 OLE DB 连接字符串转换为 ODBC 连接字符串。但是,这确实需要源接受/具有用于 ODBC 连接的驱动程序。

我建议首先检查是否有可用的 ODBC 连接,因为这会简单得多。

一旦你有了一个连接字符串,连接到源应该像这样运行:

connection_string <- "DRIVER=...; DATABASE=...; SERVER=...;"
db_connection <- DBI::dbConnect(odbc::odbc(),. connection_string = connection_string)
remote_table <- dplyr::tbl(db_connection, from = "name_of_remote_table")

关于r - 使用 Power BI 中的 Office 数据连接 (.odc) 文件连接到 R 中的数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58949959/

相关文章:

regex - 如何从相反方向在R中执行模式匹配?

r - 剧情: how to change the breaks?

c# - 根据数据表输入删除SQL表上的数据

android - Realm 模型类必须扩展 RealmObject 或实现 RealmModel 才能被视为有效的模型类

json - 使用 JSON 数据从 Azure 流分析查询 Power BI 输出

xml - 在 R 中抓取受密码保护的网站

r - 自定义 `sliderInput()` 外观

java - 50894 读取错误 : Incorrect syntax near the keyword 'user' when tries to select query to compare the username and password

filter - 如何仅在筛选记录上使用 power bi 中的 MAX 函数?

powerbi - Power BI/DAX 查询 - 根据另一个表上的范围查找值