Tabular model programming for compatibility level 1200 and higher
Applies to: SQL Server Analysis Services Azure Analysis Services Power BI Premium
Beginning with compatibility level 1200, tabular metadata is used to describe model constructs, replacing historical multidimensional metadata as descriptors for tabular model objects. Metadata for tables, columns, and relationships are table, column, and relationship, rather than the multidimensional equivalents (dimension and attribute).
Power BI Premium supports tabular models at the 1500 and higher compatibility level.
You can create new models at compatibility level 1200 or higher by using the Microsoft.AnalysisServices.Tabular APIs, the latest version of Visual Studio with Analysis Services projects, or by changing the CompatibilityLevel of an existing tabular model to upgrade it (also done in Visual Studio). Doing so binds the model to newer versions of the server, tools, and programming interfaces.
Upgrading an existing tabular solution is recommended but not required. Existing script and custom solutions that access or manage tabular models or databases can be used as-is. Azure Analysis Services supports compatibility level 1200 and higher only.
New Tabular models will require different code and script, summarized below.
Object model definitions as tabular metadata constructs
The Tabular Object Model for 1200 or higher models is exposed in JSON through the Tabular Model Scripting Language and through the AMO data definition language through a new namespace, Microsoft.AnalysisServices.Tabular
Script for tabular models and databases
TMSL is a JSON scripting language for Tabular models, with support for create, read, update, an delete operations. You can refresh data via TMSL and invoke database operations for attach, detach, backup, restore, and synchronize. AMO PowerShell accepts TMSL script as input.
DAX and MDX are supported for all tabular models.
Filters and expressions used to create calculated objects, including measures and KPIs, are formulated in DAX. See DAX in tabular models.
Managed code for tabular models and databases
AMO includes a new namespace, Microsoft.AnalysisServices.Tabular, for working with models programmatically. See Microsoft.AnalysisServices.Tabular Namespace for more information.