In 2015 I released the first version of VertiPaq Analyzer, a tool to quickly analyze the structure and data distribution of a Tabular model that can be used with Analysis Services and Power BI.
During these years I incrementally improved the original structure, based on a Power Pivot data model that connects to the Tabular Engine through the an Analysis Services connection (also available for Power BI Desktop) reading information from Data Management Views (DMV). Even though very successful, this approach has some limitations that were impossible to overcome without a different approach.
After a failed attempt made one year ago (we learn by making mistakes…) I think we now have a promising architecture that can be shared in a public preview. Because this is not a “general availability” release, let me introduce the technical side first. The goal in this stage is to get early feedback in order to adjust the direction (and fix bugs) for an “official” release that will be much more “user-oriented” for the documentation and the features available. The remaining part of this post is more technical and detailed, providing the background information required to understand what is going on. If you just want to “use” VertiPaq Analyzer without having to understand these details, just wait a few weeks for a more stable release!
Are you still here? Nice! Let’s go.
VertiPaq Analyzer Libraries
VertiPaq Analyzer 2.0 starts from an open source project available on GitHub that includes several libraries made available on NuGet, enabling the integration of VertiPaq Analyzer features in different tools. These are the libraries available:
- Dax.Metadata is a representation of the Tabular model including additional information from DMV and statistics about data distribution in the model. This is a .NET Standard library without dependencies on the Tabular Object Model (TOM). This is the core of VertiPaq Analyzer and includes all the information about the data model in a format that will allow a complete anonymization of the data model in a future release.
- Dax.Model.Extractor populates the Dax.Metadata.Model extracting data from a Tabular model. This library depends on TOM and .NET Framework 2.7.1.
- Dax.ViewModel provides a view over Dax.Metadata.Model data that can be integrated in applications using the view model, such as the one implemented in DAX Studio (use DAX Studio 2.9.4 or later version). This library is a .NET Standard library.
- Dax.ViewVpaExport exports the Dax.Metadata.Model for the consumption in VertiPaq Analyzer 2.0 client tools. This library is a .NET Standard library.
- Dax.Vpax supports the VPAX format.
Using the VertiPaq Analyzer libraries, a client tool can easily extract the information from a Tabular model, export them in a standard file, and read the same information for visualization purposes.
The VPAX file format is a ZIP file containing the following files:
- DaxModel.json is a serialization of the Dax.Metadata.Model.
- DaxVpaView.json is a serialization of the Dax.ViewVpaExport that is used to import data in the VertiPaq Analyzer 2.0 Excel file using a specific macro.
- Model.bim is an optional file that exports the complete model in TOM format. This file is not used by current client tools, but it could be useful for future extensions
DAX Studio integration
DAX Studio supports the VertiPaq Analyzer Libraries from version 2.9.4. While in preview, the features must be enabled in the Advanced Options of DAX Studio:
- Show Export Metrics adds two buttons to the Advanced ribbon: Export Metrics and View Metrics.
- Include TOM adds the Model.bim file in the VPAX file. In this preview stage this file could be useful to investigate in bugs of the Dax.Model library.
Once you enable the Show Export Metrics button, you have these features available in the Advanced Ribbon.
- Export Metrics exports the model available in the current connection as a VPAX file that can be opened in a VertiPaq Analyzer 2 Excel file.
- View Metrics opens a new VertiPaq Analyzer pane in DAX Studio showing the more common views of VertiPaq Analyzer.
VertiPaq Analyzer 2 Excel file
The VertiPaq Analyzer 2 Excel file contains a Power Pivot model that extracts data from a VPAX file. Simply switch to the VertiPaq Analyzer ribbon and click the Open VPAX button. Select the VPAX file exported from DAX Studio in the dialog box: the Power Pivot model is populated with the data exported from the VertiPaq Analyzer library. Technically, the model only imports the DaxVpaView.json file from the VPAX file – such a json file has been optimized for Power Query, whereas the other files can be useful for other client tools.
While the preview integrated in DAX Studio is useful for a quick look, the flexibility of Excel allows you to navigate through more details, especially in large Analysis Services models where you need to investigate in compression of individual segments. Finally, the new tab with the DAX expressions shows any DAX expression included in the data model (not only measures and calculated columns/table, but also KPI, Detail Rows, role filters, calculation groups, and more), which you can filter through the Type column.
Call to action
As you can imagine, this is just the beginning of new features we can add in the future in many tools. However, it is necessary to reach the same features and reliability of VertiPaq Analyzer v1 before releasing a v2. You can help improving VertiPaq Analyzer while in Preview by doing the following:
- Download the latest version of VertiPaq Analyzer that also include the 2.0 Preview.
- Populate a VertiPaq Analyzer 1.93 file with the data from a database you have.
- Install the latest version of DAX Studio (version 2.9.4 or later) and connect to the same database you used in the previous step
- Use the View Metrics feature integrated in DAX Studio and compare it with the data in VertiPaq Analyzer 1.93, reporting any difference.
- Use the Export Metrics feature integrated in DAX Studio to create a VPAX file for your database.
- Open the VPAX file using VertiPaq Analyzer 2 Preview and compare it with the data in VertiPaq Analyzer 1.93, reporting any difference.
- If you are a developer, play with the VertiPaq Analyzer libraries in your tools (get the latest version from NuGet) and give me your feedback!