mirror of
https://github.com/open-metadata/OpenMetadata.git
synced 2025-07-22 08:50:27 +00:00
163 lines
6.9 KiB
Markdown
163 lines
6.9 KiB
Markdown
![]() |
---
|
||
|
title: PowerBI
|
||
|
slug: /connectors/dashboard/powerbi
|
||
|
---
|
||
|
|
||
|
# PowerBI
|
||
|
|
||
|
| Stage | PROD |
|
||
|
|------------|------------------------------|
|
||
|
| Dashboards | {% icon iconName="check" /%} |
|
||
|
| Charts | {% icon iconName="check" /%} |
|
||
|
| Owners | {% icon iconName="cross" /%} |
|
||
|
| Tags | {% icon iconName="cross" /%} |
|
||
|
| Datamodels | {% icon iconName="check" /%} |
|
||
|
| Lineage | {% icon iconName="check" /%} |
|
||
|
|
||
|
In this section, we provide guides and references to use the PowerBI connector.
|
||
|
|
||
|
Configure and schedule PowerBI metadata and profiler workflows from the OpenMetadata UI:
|
||
|
|
||
|
- [Requirements](#requirements)
|
||
|
- [Metadata Ingestion](#metadata-ingestion)
|
||
|
|
||
|
{% partial file="/v1.1.1/connectors/ingestion-modes-tiles.md" variables={yamlPath: "/connectors/dashboard/powerbi/yaml"} /%}
|
||
|
|
||
|
## Requirements
|
||
|
|
||
|
To access the PowerBI APIs and import dashboards, charts, and datasets from PowerBI into OpenMetadata, a `PowerBI Pro` license is necessary.
|
||
|
|
||
|
### PowerBI Account Setup
|
||
|
|
||
|
### Step 1: Create an Azure AD app and configure the PowerBI Admin consle
|
||
|
|
||
|
Please follow the steps mentioned [here](https://docs.microsoft.com/en-us/power-bi/developer/embedded/embed-service-principal) for setting up the Azure AD application service principle and configure PowerBI admin settings
|
||
|
|
||
|
Login to [Power BI](https://app.powerbi.com/) as Admin and from `Tenant` settings allow below permissions.
|
||
|
- Allow service principles to use Power BI APIs
|
||
|
- Allow service principals to use read-only Power BI admin APIs
|
||
|
- Enhance admin APIs responses with detailed metadata
|
||
|
|
||
|
### Step 2: Provide necessary API permissions to the app
|
||
|
Go to the `Azure Ad app registrations` page, select your app and add the dashboard permissions to the app for PowerBI service and grant admin consent for the same:
|
||
|
|
||
|
The required permissions are:
|
||
|
- `Dashboard.Read.All`
|
||
|
|
||
|
Optional Permissions: (Without granting these permissions, the dataset information cannot be retrieved and the datamodel and lineage processing will be skipped)
|
||
|
- `Dataset.Read.All`
|
||
|
|
||
|
{% note %}
|
||
|
|
||
|
Make sure that in the API permissions section **Tenant** related permissions are not being given to the app
|
||
|
Please refer [here](https://stackoverflow.com/questions/71001110/power-bi-rest-api-requests-not-authorizing-as-expected) for detailed explanation
|
||
|
|
||
|
{% /note %}
|
||
|
|
||
|
### Step 3: Create New PowerBI workspace
|
||
|
The service principal only works with [new workspaces](https://docs.microsoft.com/en-us/power-bi/collaborate-share/service-create-the-new-workspaces).
|
||
|
[For reference](https://community.powerbi.com/t5/Service/Error-while-executing-Get-dataset-call-quot-API-is-not/m-p/912360#M85711)
|
||
|
|
||
|
## Metadata Ingestion
|
||
|
|
||
|
{% partial
|
||
|
file="/v1.1.1/connectors/metadata-ingestion-ui.md"
|
||
|
variables={
|
||
|
connector: "PowerBI",
|
||
|
selectServicePath: "/images/v1.1.1/connectors/powerbi/select-service.png",
|
||
|
addNewServicePath: "/images/v1.1.1/connectors/powerbi/add-new-service.png",
|
||
|
serviceConnectionPath: "/images/v1.1.1/connectors/powerbi/service-connection.png",
|
||
|
}
|
||
|
/%}
|
||
|
|
||
|
{% stepsContainer %}
|
||
|
{% extraContent parentTagName="stepsContainer" %}
|
||
|
|
||
|
#### Connection Details
|
||
|
|
||
|
**clientId**: PowerBI Client ID.
|
||
|
|
||
|
To get the client ID (also known as application ID), follow these steps:
|
||
|
- Log into [Microsoft Azure](https://ms.portal.azure.com/#allservices).
|
||
|
- Search for App registrations and select the App registrations link.
|
||
|
- Select the Azure AD app you're using for embedding your Power BI content.
|
||
|
- From the Overview section, copy the Application (client) ID.
|
||
|
|
||
|
**clientSecret**: PowerBI Client Secret.
|
||
|
|
||
|
To get the client secret, follow these steps:
|
||
|
- Log into [Microsoft Azure](https://ms.portal.azure.com/#allservices).
|
||
|
- Search for App registrations and select the App registrations link.
|
||
|
- Select the Azure AD app you're using for embedding your Power BI content.
|
||
|
- Under Manage, select Certificates & secrets.
|
||
|
- Under Client secrets, select New client secret.
|
||
|
- In the Add a client secret pop-up window, provide a description for your application secret, select when the application secret expires, and select Add.
|
||
|
- From the Client secrets section, copy the string in the Value column of the newly created application secret.
|
||
|
|
||
|
**tenantId**: PowerBI Tenant ID.
|
||
|
|
||
|
To get the tenant ID, follow these steps:
|
||
|
- Log into [Microsoft Azure](https://ms.portal.azure.com/#allservices).
|
||
|
- Search for App registrations and select the App registrations link.
|
||
|
- Select the Azure AD app you're using for Power BI.
|
||
|
- From the Overview section, copy the Directory (tenant) ID.
|
||
|
|
||
|
**scope**: Service scope.
|
||
|
|
||
|
To let OM use the Power BI APIs using your Azure AD app, you'll need to add the following scopes:
|
||
|
- https://analysis.windows.net/powerbi/api/.default
|
||
|
|
||
|
Instructions for adding these scopes to your app can be found by following this link: https://analysis.windows.net/powerbi/api/.default.
|
||
|
|
||
|
**authorityUri**: Authority URI for the service.
|
||
|
|
||
|
To identify a token authority, you can provide a URL that points to the authority in question.
|
||
|
|
||
|
If you don't specify a URL for the token authority, we'll use the default value of https://login.microsoftonline.com/.
|
||
|
|
||
|
**hostPort**: URL to the PowerBI instance.
|
||
|
|
||
|
To connect with your Power BI instance, you'll need to provide the host URL. If you're using an on-premise installation of Power BI, this will be the domain name associated with your instance.
|
||
|
|
||
|
If you don't specify a host URL, we'll use the default value of https://app.powerbi.com to connect with your Power BI instance.
|
||
|
|
||
|
**Pagination Entity Per Page**:
|
||
|
|
||
|
The pagination limit for Power BI APIs can be set using this parameter. The limit determines the number of records to be displayed per page.
|
||
|
|
||
|
By default, the pagination limit is set to 100 records, which is also the maximum value allowed.
|
||
|
|
||
|
**Use Admin APIs**:
|
||
|
|
||
|
Option for using the PowerBI admin APIs:
|
||
|
- Enabled (Use PowerBI Admin APIs)
|
||
|
Using the admin APIs will fetch the dashboard and chart metadata from all the workspaces available in the PowerBI instance.
|
||
|
|
||
|
{% note %}
|
||
|
|
||
|
When using the PowerBI Admin APIs there are no limitations on the Datasets that are retrieved for creating lineage information.
|
||
|
|
||
|
{% /note %}
|
||
|
|
||
|
- Disabled (Use Non-Admin PowerBI APIs)
|
||
|
Using the non-admin APIs will only fetch the dashboard and chart metadata from the workspaces that have the security group of the service principal assigned to them.
|
||
|
|
||
|
{% note %}
|
||
|
|
||
|
When using the PowerBI Non-Admin APIs, the lineage information can only be generated if the dataset is a [Push Dataset](https://learn.microsoft.com/en-us/rest/api/power-bi/push-datasets).
|
||
|
For more information please visit the PowerBI official documentation [here](https://learn.microsoft.com/en-us/rest/api/power-bi/push-datasets/datasets-get-tables#limitations).
|
||
|
|
||
|
{% /note %}
|
||
|
|
||
|
{% /extraContent %}
|
||
|
|
||
|
{% partial file="/v1.1.1/connectors/test-connection.md" /%}
|
||
|
|
||
|
{% partial file="/v1.1.1/connectors/dashboard/configure-ingestion.md" /%}
|
||
|
|
||
|
{% partial file="/v1.1.1/connectors/ingestion-schedule-and-deploy.md" /%}
|
||
|
|
||
|
{% /stepsContainer %}
|
||
|
|
||
|
{% partial file="/v1.1.1/connectors/troubleshooting.md" /%}
|