你是否真的知道你的 PBIX 文件到底有多大?


 

 

 

​Power BI錯誤:“文件太大,無法發布。Power BI支持高達1024 MB的文件“…為什么發布不了呢?我的Power BI文件遠低於1GB!

 

以上問題場景是不是非常常見?一旦數據被處理並存儲在內存中,我們就會經常去討論如何真正掌握Power BI文件實際大小。既然如此,那今天小悅就和大家來分享兩種方式來幫助讓我們真正掌握Power BI文件的實際大小(有些小伙伴對此可能不謀而合了),我們步入正題。

 

 

為什么這很重要?

在我們開始討論解決方法之前,先了解下我們為什么要導出Power BI文件(基礎數據集)的真正內存使用情況,這是非常重要的。

 

第一個也是最明顯的原因是,當我們從desktop將報表發布到Power BI Pro 雲服務時,我們的license是有1gb的限制,所以超過1GB將限制我們發布到Power BI服務。

 

另外,刪除自動生成的數據表、不必要的計算列和大量內存的轉換等方式來開始優化Power BI文件的過程也是我們常用的手段。但是,這樣的處理並沒有事先獲取當前內存占用狀態的快照,因此並不知道什么樣的更改有助於性能提升。

 


文件資源管理器顯示真相

 

文件資源管理器確實向我們展示了真相,但這也只是真相的一部分,所以這就可能會誤導我們。以下面的Power BI報告為例:

 

 

從上面的截圖中可以看到,通過查看文件資源管理器中的大小,PBIX文件的大小為1.2MB(1238KB)。另外,當我們查看Power BI中獲取的所有數據文件時,總大小為2.8MB。但是,當我們將獲取的數據在Power BI中將其處理到內存中時,它可能會大於PBIX文件的大小,這是因為發生了一些壓縮,而其他各種元素又不會通過磁盤顯示出來。

 

所以,當我們收到各種各樣的錯誤提示時,我們的Power BI文件太大,但我們看到其在磁盤上的顯示又是在1GB限制下,這就讓人很尷尬了….但是,正如前面提到的,一旦數據被處理到內存中,由於壓縮和其他各種元素,它可能會比我們在磁盤上看到的更大,但是由於壓縮仍然低於獲取的數據源的總大小。

 

我們如何看待真正的內存消耗呢?

現在將介紹兩種方法,我們可以通過VertiPaq分析器和DAX studio來確定對內存消耗情況。當然,你可能會通過各種其他方法來顯示Power BI文件的內存消耗,例如使用任務管理器或從SQL Server management studio建立到底層analysis services實例的連接。但是,我們還是比較推薦使用VertiPaq分析儀和DAX studio!

 

VertiPaq Analyzer

VertiPaq Analyzer是一個Excel文檔,它有一個Power Pivot插件,支持與Power BI模型建立連接。通過它我們可以確定內存消耗,哪些對象消耗了大部分內存,同時也為我們提供了組成Power BI文件的其他因素的綜合視圖,如表、列、層次結構、關系等。

打開VertiPaq Analyzer Excel文檔,並通過一組查詢與底層Power BI Analysis Services實例建立連接后,將檢索並顯示以下信息:

 

 

從上面的截圖中可以看到,我們的模型中的所有表都顯示在行中。我們也在列中列出了各種指標。我們將不深入探討這些問題,因為本文的范圍僅顯示內存消耗。

 

通過查看下面的內容,每周零售分析解決方案的Power BI數據集的總大小為1.6MB。這是通過查看“Table Size”列的向下合計來確定的:

 

 

所以,可以看到我們最初認為的Power BI數據集是1.2MB,而實際上是1.6MB。我們在磁盤上看到的與通過VertiPaq分析器獲得的更精確視圖之間的差異取決於各種元素。以下是一些指標的列表,這些指標為我們提供了一些內存消耗方面的見解:

 

•“Table Size”(表大小):表的大小,它是以下所有值的總和-不包括列的總大小

•“Column Total Size”(列 總大小):與立柱相關的所有結構尺寸

•“Data Size”(數據大小):分區中的所有壓縮數據

•“Dictionary Size”(字典大小):具有唯一值的字典結構

•“Columns Hierarchy Size”(列層次結構大小):為列自動生成層次結構

•“User Hierarchy Size”(用戶層次結構大小):用戶定義的層次結構

•“Relationship Size”(關系大小):表之間的關系

 

 

如果你想知道為什么總“表大小”與“列總大小”不同,這是由於某些情況,例如關系是表結構的一部分,而不是列。因此,“Column Total Size”由“Data Size”、“Dictionary Size”和“Hierarchy Size”組成。因此,為了獲得內存消耗的完整視圖,我們使用表而不是列大小。

 

 

DAX Studio 

另外,我們還可以使用Dax studio,一個用於編寫、執行和分析DAX代碼的工具,它可以幫助我們優化和調試。同樣,這是通過建立與Power BI模型的連接。

 

以前,我們無法通過Dax studio中的VertiPaq Analyzer查看度量,但是,現在可以通過最新版本的DAX Studio獲得這些度量。此外,我們現在可以通過Power BI桌面直接訪問Dax studio。如果你還沒有檢查過外部工具,那么一定要檢查外部工具!如果你還沒有將Dax studio配置為在“外部工具”下顯示,你可以通過應用程序直接打開該工具。

 

 

現在,我們已打開 DAX Studio,你應該轉到"Advanced "(高級)選項卡並選擇"View Metrics"(查看指標),以顯示 VertiPaq Analyzer Excel 文檔中我們可用的相同指標。

 

 

從上面的截圖中可以看到,我們再次將模型中的所有表顯示在行中,而度量值顯示在列中。這里我們有所有單獨表的大小,我們還可以展開它來查看這些表的各個列的詳細信息。但現在,我們想看看我們模型的實際大小。在excel文檔中的VertiPaq Analyzer中,我們有匯總的總數,因此我們可以輕松確定我們的每周零售分析解決方案為 1.6 MB。

 

要在此處執行此操作,我們只需在“Summary”選項卡上選擇,該選項卡將顯示以下信息:

 

 

再次,我們可以看到我們的Power BI文件的總大小是1.62MB。正如前面提到的,這些度量在DAX Studio中並不總是可用的,所以當它們被引入時,它是一個很好的補充,因為你可以顯示所有的核心度量,你也可以使用它來優化和調試DAX代碼。我們還可以導出這些指標,並將其發送給可能更好地理解底層數字的個人。

 


結論

當你下一次遇到再出現同樣問題的時候,說明你的文件應該是超出了大小限制,但你現在應該能夠使用上述任一方法來深入了解你的內存消耗,因為僅僅通過看占用Power BI文件的磁盤空間是不夠的。

 

 

推薦閱讀

 

【2020】Power BI 9月功能更新

歡迎來到Microsoft Ignite 之 Power BI 博覽會

【2020】Power BI 8月產品功能更新

商業數據分析大師進階之路

為什么Power BI運行兩次我的SQL查詢?

 

 

技術交流

1.Power BI免費下載:http://www.yeacer.com/

    Microsoft Power BI Desktop中文最新版:下載地址

2.歡迎加入的Power BI技術群,目前正在學習階段,有興趣的朋友可以一起學習討論。 

   Power Data技術交流群:702966126 (驗證注明:博客園Power BI) 

   更多精彩內容請關注微信公眾號:悅策PowerBI          


如果您覺得閱讀本文對您有幫助,請點一下“推薦”按鈕,您的“推薦”將是我最大的寫作動力!歡迎各位轉載。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM