Area: Ingestion
Sub-Area: BI Tools
Issue
Power BI workspaces, datasets, and reports are not appearing in DataHub, or lineage to source systems is incomplete. This typically occurs due to Power BI API permission issues, missing Azure AD app registration, or workspace access restrictions.
Common Error Messages:
Failed to authenticate with Power BI APIInsufficient privileges to complete the operationWorkspace not found or access deniedAADSTS error codes
You Might Be Asking:
- How do I set up Power BI ingestion?
- What Azure AD permissions are needed?
- Why can't DataHub access my Power BI workspace?
Solution
- Set up Azure AD app registration:
Example for Power BI. This can be adapted for other Microsoft BI tools.
1. Go to Azure Portal → Azure Active Directory → App registrations
2. Create new app registration for DataHub
3. Add API permissions:
- Power BI Service: Dataset.Read.All
- Power BI Service: Dashboard.Read.All
- Power BI Service: Report.Read.All
- Power BI Service: Workspace.Read.All
4. Grant admin consent for permissions
5. Create client secret under Certificates & secrets
- Configure Power BI source:
Example for Power BI. This can be adapted for other Microsoft BI tools.
source:
type: powerbi
config:
tenant_id: "${AZURE_TENANT_ID}"
client_id: "${AZURE_CLIENT_ID}"
client_secret: "${AZURE_CLIENT_SECRET}"
# Specific workspace ingestion
workspace_id_pattern:
allow: ["workspace-guid-1", "workspace-guid-2"]
# Enable comprehensive extraction
extract_lineage: true
extract_reports: true
extract_ownership: true
extract_endorsements_to_tags: true
- Add service principal to Power BI workspaces:
Example for Power BI. This can be adapted for other Microsoft BI tools.
In Power BI:
1. Go to Workspace settings
2. Add service principal as Member or Admin
3. Repeat for all workspaces to ingest
- Enable service principal in Power BI Admin Portal:
Example for Power BI. This can be adapted for other Microsoft BI tools.
Power BI Admin Portal:
1. Go to Tenant settings → Developer settings
2. Enable "Service principals can use Power BI APIs"
3. Apply to specific security groups containing your service principal
- Configure platform mapping for data sources:
Example for Power BI with various data sources. This can be adapted for other BI tools.
source:
config:
# Map Power BI data source types to DataHub platforms
server_to_platform_instance:
"snowflake.company.com": "prod_snowflake"
"bigquery.googleapis.com": "prod_bigquery"
dataset_type_mapping:
"Snowflake": "snowflake"
"BigQuery": "bigquery"
- Additional platform mapping options for Power BI:
Some relevant Power BI config options for handling "hidden" assets and platform mapping in DataHub include: extractindependentdatasets (extracts datasets not linked to reports), extractdatasetstocontainers (groups tables under a DataHub container reflecting a Power BI Dataset), and servertoplatforminstance (maps Power BI datasource servers to DataHub platform instances for correct lineage and platform mapping). You can also use workspaceidpattern and workspacenamepattern to filter which workspaces are ingested. For example:
source:
config:
extract_independent_datasets: true
extract_datasets_to_containers: true
server_to_platform_instance:
"my-sql-server.domain.com":
platform_instance: "prod_sql_instance"
env: "PROD"
workspace_id_pattern:
allow: ["^abc123workspaceid$"]
deny: []
workspace_name_pattern:
allow: ["^Finance.*"]
deny: []
sink:
type: datahub-rest
config:
server: "http://localhost:8080"
Additional Notes
Power BI lineage extraction depends on the Scanner API and requires Power BI Premium or Premium Per User capacity. For Power BI Report Server (on-premises), use different authentication methods.
Related Documentation
Tags:
powerbi, bi-tools, azure-ad, service-principal, datasets, reports, workspaces, lineage, authentication