繁体   English   中英

使用 Power BI 服务中的 R 脚本将 CSV 文件导出到 OneDrive

[英]Export CSV file to OneDrive Using R Scripting in Power BI Service

我正在尝试在 Power BI 中构建一个完全自动化且可持续的报告工具。 我在 Power BI 中构建了一份报告,除其他外,它在某一点使用 R 脚本来创建到我本地 C: 驱动器的数据导出,其代码如下:

# 'dataset' holds the input data for this script
.libPaths(.libPaths()[3])
require(gdata)
write.table(trim(dataset), file="C:\\Users\\Username\\OneDrive\\Folder\\Inventory Log.csv", sep=",", row.names=FALSE, append=TRUE, col.names=FALSE)
plot(dataset);

虽然我的所有其他数据都通过 OneDrive 或在线资源连接到 PBI,但它仍然连接到我的本地机器。 我有个人网关设置,但这仍然需要我的本地计算机在 PBI 服务的计划刷新期间物理打开。

我试过使用 Microsoft365R Package,但我的 R 知识和经验仍然有限,所以我无法想出一个解决方案,允许write.table() function 中的file="OneDrive Path"在 Power 上成功执行BI 桌面,更不用说 Power BI 服务了。

目标是完全自动化,不需要我在周末或非工作日打开电脑。

是否可以将 csv 写入 OneDrive 文件? 如果是这样,有哪些成功的方法?

有任何想法吗? 感谢您提供任何帮助!

Microsoft365R 作者在这里。 免责声明:我对 PowerBI 不熟悉,但我假设您可以在其中运行 R 脚本并连接到 Inte.net 等。

要让它在无人值守的情况下运行,需要做一些事情。

一个function上传一个数据框为CSV到Onedrive,不需要你登录,如下:

upload <- function(dataset, upload_path, drive_id, ...)
{
  outfile <- tempfile()
  on.exit(unlink(outfile))
  write.table(dataset, outfile, ...)

  library(Microsoft365R)
  library(AzureGraph)

  gr <- create_graph_login(
    tenant="{yourtenant}",
    app="{client_id}",
    password="{client_secret}",
    auth_type="client_credentials"
  )
  gr$get_drive(drive_id)$upload_file(outfile, upload_path)
}

在 AAD 端,创建应用程序注册并为其提供客户端密码(密码)。 然后,您授予它读取驱动器所需的 Microsoft Graph 应用程序权限——很可能是"Files.Readwrite.All"

记下您的应用程序注册的客户端 ID 和客户端密码。 这些是您插入上面 R function 的值。

您可以使用以下 R 代码获取您的驱动器 ID。

drv <- get_business_onedrive(tenant="yourtenant")
drv$properties$id

您可能需要友好的本地管理员的帮助才能完成所有这些工作,即使仅仅是因为大多数组织都锁定了注册应用程序的能力。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM