How to refresh a single table in Power BI using SSMS

A short guide to selectively refresh tables in Power BI datasets with XMLA endpoints



Photo by Ehimetalor Akhere Unuabona on Unsplash

Refreshing the entire dataset in Power BI is not always desirable or sometimes even unnecessary. Unfortunately, Power BI Service doesn’t provide an option to refresh tables selectively. Either you refresh all the tables or none. XMLA endpoints address this shortcoming and provide a flexible and fine-grained option to refresh (among other things) datasets, tables, and partitions.

XML for Analysis (XMLA) is a protocol for communication between client applications and an Analysis Services instance such as Azure Analysis Services, SQL Server Analysis Services, and Power BI.

This article discusses the requirements, limitations, and steps to selectively refresh tables in Power BI datasets using SSMS with XMLA endpoints.


Prerequisites

Connecting to XMLA endpoints and refreshing a table is relatively straightforward. However, the following pre-requisites need to be fulfilled.

Capacities & Licensing: XMLA endpoint support is a Premium feature in Power BI. Only the datasets hosted in the following workspaces can be refreshed using XMLA endpoints: Power BI Premium, Premium Per User (PPU), and Power BI Embedded.

Admin Settings: The following two settings shall be enabled in the Admin portal for XMLA endpoints to function. Confirm with your Power BI/capacity admin if you’re unsure or if this guide doesn’t work.

  • Enable XMLA read-write: By default, Premium or Premium Per User dataset workloads have the XMLA endpoint property setting enabled for read-only. However, the XMLA endpoint property must be set to read-write to allow applications to perform write operations.
  • Allow XMLA endpoints and Analyze in Excel with on-premises datasets: The Power BI admins must enable this tenant-level setting; they can disable it for the tenant or a subset of users. You should be on the allowed list of users.

Access Rights: Build permission for the dataset you want to refresh.

How do you get the build permission?

SQL Server Management Studio (SSMS): Download and install the latest version from here.

If you’re confident that all the requirements are in order, move on to the next steps. If any of the conditions mentioned above have not been met, you will undoubtedly encounter errors.

Get the XMLA endpoint

XMLA endpoint is, in fact, a connection string, and Power BI workspaces have a connection string in the following URL format:

powerbi://api.powerbi.com/v1.0/[tenant name]/[workspace name]

You can also replace the tenant name with myorg if your UPN is in the same tenant.

powerbi://api.powerbi.com/v1.0/myorg/[workspace name]

Head over to the Power BI Service and grab the Workspace Connection URL from the workspace settings. In workspace, Settings > Premium > Workspace Connection, select Copy.

Power BI Service: Workspace Connection URL (Image by author)

Connect with SSMS

Using SSMS to connect to an XMLA endpoint is similar to connecting to an Analysis Services server. Select/fill the fields in the connect dialog box and hit Connect.

  • Server type: select Analysis Services
  • Server name: enter the workspace connection URL
  • Authentication: select Active Directory — Universal with MFA
  • User name: enter your organizational user ID
SSMS: Connect to Power BI workspace (Image by author)

When connected, the workspace is shown as an Analysis Services server, and datasets in the workspace are shown as databases.

SSMS: Object Explorer showing Power BI workspace as AS server (Image by author)

Refresh a single Table

Expand the dataset and then the tables. Next, select the table you want to refresh, right-click and choose Process Table.

SSMS: Selecting tables in the Power BI dataset (Image by author)

In the Process Table(s) dialog box, select Process Full as Mode. Select all the tables you want to refresh, and hit OK. Following processing modes are available, and you may choose the one to best fit your requirements:

  • Process Full: Process a table and all the objects that it contains. Analysis Services engine drops all data in the table and then processes the table. Full processing is required when a structural change has been made to the table.
  • Process Data: Load data into the table without rebuilding hierarchies or relationships or recalculating calculated columns and measures.
  • Process Default: Detects the processed state of the table and performs the processing necessary to deliver a fully processed state. For example, data for empty tables and partitions are loaded; hierarchies, calculated columns, and relationships are built or rebuilt.
  • Process Clear: Removes all data from the table and any table partitions.
  • Process Defrag: Defragments the auxiliary table indexes.
SSMS: Processing Tables (Image by author)

Wait for the refresh to finish; it might take a while based on the selected mode, selected number of tables, and data volume. A prompt will notify you of the status. If there were any errors in processing, you could refer to the Details to identify the issue.

SSMS: Processing complete (Image by author)

Date, time, and status for dataset refresh operations with XMLA endpoints are recorded in the dataset refresh history and Power BI audit logs.

Power BI Service: Dataset refresh history (Image by author)

And a word of caution

Power BI records the refresh and write-operations with XMLA endpoints under the umbrella of dataset refresh. There is no distinction concerning the type of operation or refresh granularity. You may look at the last refresh timestamp and assume that a full refresh occurred. In contrast, the reality could be different. Establish a method of clear communication to avoid and address the possibilities in your team.

Power BI Service: Dataset overview from the workspace (Image by author)

Limitations

The following dataset types are unsupported and can’t be refreshed via XMLA endpoints:

  • Datasets based on a live connection to an Azure Analysis Services or SQL Server Analysis Services model
  • Datasets based on a live connection to a Power BI dataset in another workspace
  • Datasets with Push data by using the REST API
  • Datasets in personal workspaces (My Workspace)
  • Excel workbook datasets

Troubleshooting

This article documents the XMLA endpoints in detail and covers various scenarios. Take a look to read more or resolve any issues you may encounter.

That’s all, folks! So hit refresh and grab a cup of coffee.


Leave a comment