PBIXRay
RSS FeedPBIXRay is an open source Python library for inspecting `.pbix` files outside of Power BI Desktop. Because they share the same underlying engine, PowerPivot models from Excel `.xlsx` workbooks and Analysis Services backups (`.abf`) are supported through the same API. This site brings together the library docs, hands-on examples, and deep technical articles on the PBIX file format for Power BI developers.
Start with the documentation , explore the articles below, or try the demo .
Featured
-
PBIXRay for macOS: Open and Inspect PBIX Files on a Mac
PBIXRay is a native macOS app for opening and inspecting Power BI PBIX files, including the model, DAX, Power Query, data and report structure.
-
How VertiPaq Sorts a Table — A Visual Walkthrough
A visual companion to the row-ordering article — step through the greedy bucket-splitting algorithm that VertiPaq uses to maximise RLE compression.
-
PBIX Parsing in Your Browser: Introducing PBIX.info
PBIX.info: a browser-based PBIX inspector built on WebAssembly. Local-first parsing, interactive diagrams, and shareable collaboration links.
-
Parsing PBIX Files with Python (PBIXRay)
Extract tables, measures, M queries, and report metadata from any PBIX file using the open source Python library PBIXRay — no Power BI required.
-
What Is a PBIX File?
An introduction to the .pbix file format — what it contains, how Power BI uses it, and why its internals matter for developers and data engineers.
Recent Posts
-
Windows Already Ships the Decompressor Power Pivot Needs
VertiPaq's xpress8 compression is raw MS-XCA LZ77 behind a two-field wrapper, and Windows has shipped a decoder for it all along. Enough to read the Power Pivot model inside an Excel workbook from a PowerShell script with no dependencies.
-
Parsing Power Pivot Data Models from Excel XLSX Files
Excel workbooks with Power Pivot models contain the same Analysis Services and VertiPaq storage ideas as PBIX files. This article shows how PBIXRay reads them directly from Python.
-
How VertiPaq Sorts Rows to Maximize RLE Compression
How VertiPaq appears to use a greedy row-reordering algorithm to maximise RLE compression across all columns in a segment.
-
Reconstructing Column Data from .idf and .idfmeta
How VertiPaq stores column segments in .idf and .idfmeta files, and how those files combine to reconstruct imported table data from a PBIX file.
-
VertiPaq Dictionaries and Hash Indexes
How VertiPaq stores dictionaries and hash indexes inside a PBIX file, and how those structures help turn internal IDs back into readable values.
-
Inside metadata.sqlitedb: Tables, Columns, Measures & Relationships
How metadata.sqlitedb inside a PBIX file exposes the semantic model as an embedded SQLite database, mirroring the same objects as TMSCHEMA DMVs.