簡體   English   中英

使用 SQL 和 R 從 Power BI pbix 文件中提取數據

[英]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 RatingAvg Votes等。

pbixr 包的作者在包網站的問題跟蹤器部分提供了解決方案。 這里

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM