[英]Extract data from power BI pbix file using SQL and R
我想使用 R 從 Power BI pbix 文件中提取數據。最近發布的pbixr 包似乎提供了執行此操作的功能,但不幸的是,幾乎沒有任何關於如何從 pbix 文件中提取數據表的文檔。 我嘗試了幾個函數並設法檢索了數據表。 但是,我無法使用公式(例如 SUM 等)提取 Power BI 生成的表。 這些在 Power BI 中標有前面的計算器符號。
在辦公室,我們有一個簡單的軟件,當鏈接到 pbix 文件並從 pbix 文件收集數據時,它的工作方式與 pbixr 包非常相似(即使用 localhost:correct_port 結合 SQL 命令),它能夠提取所有數據,包括Power BI 生成的。 這讓我認為這也應該可以通過使用 pbixr 包來實現,但也許我錯了。
可能來自 Microsoft 的 OlapR 包也可以解決這個問題,但因為這不是免費軟件並且可能需要特定版本的 RI 不想使用它。 但我歡迎任何其他訪問 pbix 文件內容的方法。
一個可重現的例子:
install.packages("pbixr")
library(pbixr)
# Download example pbix file (also see pbixr vignette)
temp_dir <- "C:/users/dijk158/temp" # set your own temp dir
dir.exists(temp_dir)
sample_file_name <- "sample_vig.pbix"
path_file_sample <- file.path(temp_dir, sample_file_name)
url_pt1 <- "https://github.com/KoenVerbeeck/PowerBI-Course/blob/"
url_pt2 <- "master/pbix/TopMovies.pbix?raw=true"
url <- paste0(url_pt1, url_pt2)
req <- download.file(url, destfile = path_file_sample, mode = "wb")
此時 Power BI 應該已打開,示例文件 sample_vig.pbix 已打開。
# Find port
connections_open <- f_get_connections()
connections_open$pbix <- gsub(" - Power BI Desktop", "",
connections_open$pbix_name)
correct_port <- as.numeric(connections_open$ports)
# Create the connection
connection_db <- paste0("Provider=MSOLAP.8;Data Source=localhost:",
correct_port, ";MDX Compatibility=1")
# Read tables
sql_table <- "evaluate TopMovies"
get_tables <- f_query_datamodel(sql_table, connection_db)
names(get_tables)
summary(get_tables)
get_tables
僅包含純數據表,但不包含 Power BI 生成的表,例如Avg Rating
、 Avg Votes
等。
pbixr 包的作者在包網站的問題跟蹤器部分提供了解決方案。 見這里。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.