Back to integrations
Using Dagster with Power BI

Dagster Integration:
Using Dagster with Power BI

The Power BI integration allows you to monitor your Power BI workspace as assets in Dagster, along with other data assets.

About this integration

Dagster allows you to represent your Power BI workspace as assets, alongside other your other technologies like dbt and Sling. This allows you to see how your Power BI assets are connected to your other data assets, and how changes to other data assets might impact your Power BI workspace. This also enables you to orchestrate the refreshing of your semantic models, ensuring your Power BI workspace reflects the most current data from upstream sources.

Installation

pip install dagster-powerbi

Example

from dagster_powerbi import (
    PowerBIServicePrincipal,
    PowerBIWorkspace,
    build_semantic_model_refresh_asset_definition,
    load_powerbi_asset_specs,
)

import dagster as dg

power_bi_workspace = PowerBIWorkspace(
    credentials=PowerBIServicePrincipal(
        client_id=dg.EnvVar("POWER_BI_CLIENT_ID"),
        client_secret=dg.EnvVar("POWER_BI_CLIENT_SECRET"),
        tenant_id=dg.EnvVar("POWER_BI_TENANT_ID"),
    ),
    workspace_id=dg.EnvVar("POWER_BI_WORKSPACE_ID"),
)

power_bi_assets = [
    build_semantic_model_refresh_asset_definition(resource_key="power_bi", spec=spec)
    if spec.tags.get("dagster-powerbi/asset_type") == "semantic_model"
    else spec
    for spec in load_powerbi_asset_specs(power_bi_workspace)
]

defs = dg.Definitions(
    assets=[*power_bi_assets], resources={"power_bi": power_bi_workspace}
)

About Power BI

Power BI is a modern platform for data analytics and visualization. Power BI integrates with various data sources and can be used to create interactive reports, semantic models and dashboards.