Skip to main content

PowerBI

Module powerbi

Certified

Important Capabilities

CapabilityStatusNotes
Extract OwnershipOn by default but can disabled by configuration

This plugin extracts the following:

  • Power BI dashboards, tiles and datasets
  • Names, descriptions and URLs of dashboard and tile
  • Owners of dashboards

CLI based Ingestion

Install the Plugin

pip install 'acryl-datahub[powerbi]'

Starter Recipe

Check out the following recipe to get started with ingestion! See below for full configuration options.

For general pointers on writing and running a recipe, see our main recipe guide.

source:
type: "powerbi"
config:
# Your Power BI tenant identifier
tenant_id: a949d688-67c0-4bf1-a344-e939411c6c0a
# Ingest elements of below PowerBi Workspace into Datahub
workspace_id: 4bd10256-e999-45dd-8e56-571c77153a5f
# Workspaces dataset environments (PROD, DEV, QA, STAGE)
env: DEV
# Azure AD Application identifier
client_id: foo
# Azure AD App client secret
client_secret: bar
# Enable / Disable ingestion of user information for dashboards
extract_ownership: true
# dataset_type_mapping is fixed mapping of Power BI datasources type to equivalent Datahub "data platform" dataset
dataset_type_mapping:
PostgreSql: postgres
Oracle: oracle

sink:
# sink configs

Config Details

Note that a . is used to denote nested fields in the YAML recipe.

View All Configuration Options
FieldRequiredTypeDescriptionDefault
envstringThe environment that all assets produced by this connector belong toPROD
tenant_idstringPowerBI tenant identifierNone
workspace_idstringPowerBI workspace identifierNone
dataset_type_mappingDict[str,string]Mapping of PowerBI datasource type to DataHub supported data-sources. See Quickstart Recipe for mapping
client_idstringAzure app client identifierNone
client_secretstringAzure app client secretNone
scan_timeoutintegertimeout for PowerBI metadata scanning60
extract_ownershipbooleanWhether ownership should be ingestedTrue
platform_namestringpowerbi
platform_urnstringurn:li:dataPlatform:powerbi

Configuration Notes

See the

  1. Microsoft AD App Creation doc for the steps to create an app client ID and secret
  2. Login to Power BI 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

Concept mapping

Power BIDatahub
DashboardDashboard
Dataset, DatasourceDataset
TileChart
Report.webUrlChart.externalUrl
WorkspaceN/A
ReportN/A

If Tile is created from report then Chart.externalUrl is set to Report.webUrl.

Code Coordinates

  • Class Name: datahub.ingestion.source.powerbi.PowerBiDashboardSource
  • Browse on GitHub

Questions

If you've got any questions on configuring ingestion for PowerBI, feel free to ping us on our Slack