Power BI
Overview
Monte Carlo collects various assets from Power BI in order to document downstream lineage from your data storage. At a high-level, Monte Carlo collects:
- Datasets
- Dashboards
- Reports
To document your Power BI assets in Lineage, Monte Carlo:
- Scans all Power BI Workspaces that are available to the Service Principal you create for Monte Carlo.
- Fetches the Datasets, Dashboards, and Reports available from each Workspace.
- For each Dashboard Tile (on a Dashboard) and Report, parse the Dataset used.
- For each Dataset, parse the Tables or SQL Query used. Both Direct Data Sources and Native Queries and are supported.
Caveats
- Only tables from Google BigQuery, Snowflake, Databricks, and Amazon Redshift are supported as of now. Please reach out if you are using tables from another data source and we can get this configured.
- Inactive and Personal Workspaces will not be collected by default. Please reach out if you would like to enable collecting these Workspaces.
- Dataflows are not yet supported. Please reach out if you are using Dataflows and would be interested in support.
- Field-level lineage for Power BI is not supported.
Connecting Power BI
This guide explains how to create a user for Monte Carlo on Power BI.
Service principal credentials requiredTo complete this guide, you will need a Service Principal's credentials.
To review all steps necessary to integrate a BI tool with Monte Carlo, please see here.
1. Creating a Monte Carlo User on Power BI
There are two access options with Power BI:
- Service Principal (Recommended): With this option, Monte Carlo requires the Service Principal's client ID, client secret and tenant id to access the appropriate Power BI APIs.
- Primary User (Classic workspaces only): With this option, Monte Carlo requires a Primary User's (previously referred to as a "Master User") credentials to access the Power BI APIs.
Option 1: Creating a Service Principal [Recommended]
Detailed documentation on how to create a service principal can be found: Power BI - Credential Creation Process.
It is recommended to follow the detailed instructions above. In summary, to create a Service Principal:
- Sign into your Microsoft Azure account
- Create an Azure AD app
- Create an Azure AD security group
- Enable the Power BI service admin settings
- Add the service principal to your workspace (note this step must be done for every workspace!)
Option 2: Creating a Primary User
MS Azure customers with Classic Workspaces can follow the steps outlined here to generate a Primary User with the appropriate permissions.
2. Configure a Power BI Integration in Monte Carlo
To configure a new Power BI integration, visit the "Integrations" tab within "Settings" in your Monte Carlo account and follow these steps:
-
Select the "Power BI" from the New Integration button under Business Intelligence connections
-
Enter the appropriate Service Principal credentials (or Primary User credentials)
Note: You can find your tenant ID in the Overview tab within your Azure account portal.
- Click connect and confirm that no connection errors exist.
How can I validate Monte Carlo has access to my assets?
After completing the Power BI integration setup, your BI assets should appear in the Monte Carlo Assets page within 1 to 5 hours. If you don't see your assets after this time period, you can run a validation test to troubleshoot the connection:
- Navigate to Settings → Integrations
- Find your Power BI integration and click on it
- Select the specific connection you want to test
- Click the Test button from the connection menu
This validation test will help identify any configuration issues that might be preventing your assets from appearing.
When running the validation test, you should see all green checkmarks. If any errors are encountered, the system will provide specific steps to resolve them.
Note: Lineage can take up to 24 hours due to batching.
Workspace Allow List
The following instructions allow you to provide a list of Power BI workspaces to ingest information from and ignore the rest.
Get the connection id for your Power BI integration using this API or this CLI command.
The allow list uses workspace UUIDs to filter workspaces before scanning, so only the specified workspaces are scanned. This is efficient and avoids hitting Power BI API rate limits for large tenants.
Finding your Workspace IDYou can find a workspace's UUID in the Power BI URL when viewing the workspace:
https://app.powerbi.com/groups/{WORKSPACE_UUID}/...
The allow list can be set using the following GraphQL API (this will replace the old list if used):
mutation SetWorkspaceIdsAllowListForPowerBiReportsCollection($connectionUuid: UUID!, $allowedWorkspaceIds: [String]!) {
setWorkspaceIdsAllowListForPowerBiReportsCollection(connectionUuid: $connectionUuid, allowedWorkspaceIds: $allowedWorkspaceIds) {
success
}
}Set Variables per below. The Power BI connection uuid and a list of workspace UUIDs should be specified.
{
"connectionUuid": "{CONNECTION_UUID}",
"allowedWorkspaceIds": ["a1b2c3d4-e5f6-7890-abcd-ef1234567890", "b2c3d4e5-f6a7-8901-bcde-f12345678901"]
}Expected result below. Success should be true if the operation worked as expected.
{
"data": {
"setWorkspaceIdsAllowListForPowerBiReportsCollection": {
"success": true
}
}
}To disable the allow list just pass an empty list:
{
"connectionUuid": "{CONNECTION_UUID}",
"allowedWorkspaceIds": []
}To get the list of allowed workspace IDs the following API can be used:
query {
getWorkspaceIdsAllowListForPowerBiReportsCollection(connectionUuid: "{CONNECTION_UUID}")
}Expected result below:
{
"data": {
"getWorkspaceIdsAllowListForPowerBiReportsCollection": [
"a1b2c3d4-e5f6-7890-abcd-ef1234567890", "b2c3d4e5-f6a7-8901-bcde-f12345678901"
]
}
}
Legacy: Filtering by workspace nameThe older
setWorkspacesAllowListForPowerBiReportsCollectionmutation, which filters by workspace name, is still supported but no longer recommended. It applies the filter after all workspaces have been scanned, which is less efficient and can lead to rate-limit errors (HTTP 429) for large tenants. Use the workspace ID approach above instead.
Updated 11 days ago
