Microsoft Power BI connection
Prophecy supports writing data to Microsoft Power BI using the Power BI REST API. By configuring a connection with the appropriate Microsoft Entra credentials and scopes, you can push data directly from your Prophecy pipelines into tables used in reports and dashboards.
Prerequisites
To connect Prophecy to Power BI, your Microsoft administrator must first register Prophecy as an application in Microsoft Entra ID. This registration provides the Client ID and Client Secret needed to authenticate Prophecy with Microsoft APIs.
As part of the setup, the following scope must be granted to the registered app:
Dataset.ReadWrite.All
This lets Prophecy update tables in Power BI. For detailed instructions on adding scopes to your app, visit Using the Power BI REST APIs in the Power BI documentation.
Feature support
The table below outlines whether the connection supports certain Prophecy features.
| Feature | Supported |
|---|---|
| Read and write using Source and Target gems | No |
| Write data with a PowerBIWrite gem | Yes |
| Browse data in the Environment browser | No |
Limitations
Prophecy uses the Power BI connection for the Push Datasets Power BI API. For the full list of limitations for this API, visit Push semantic model limitations in the Power BI documentation.
Connection parameters
To create a connection with Power BI, enter the following parameters. You can find the Tenant ID, Client ID, and Client Secret in your Microsoft Entra app.
| Parameter | Description |
|---|---|
| Connection Name | Unique name for the connection |
| Tenant ID | Your Microsoft Entra tenant ID |
| Client ID | Your Microsoft Entra app Client ID |
| Client Secret (Secret required) | Your Microsoft Entra app Client Secret |
Data type mapping
Prophecy processes data using a SQL warehouse like Databricks SQL or BigQuery. When you are ready to write your transformed data to Power BI, data types are converted to Power BI data types using the following mapping.
| Databricks | BigQuery | Power BI |
|---|---|---|
| STRING Alias: String | STRING Alias: String | Text |
| BOOLEAN Alias: Boolean | BOOL Alias: Boolean | True/False |
| BYTE Alias: Byte | INT64 Alias: Integer | Whole number |
| SHORT Alias: Short | INT64 Alias: Integer | Whole number |
| INT Alias: Integer | INT64 Alias: Integer | Whole number |
| LONG Alias: Long | INT64 Alias: Integer | Whole number |
| FLOAT Alias: Float | FLOAT64 Alias: Float | Decimal number |
| DOUBLE Alias: Double | FLOAT64 Alias: Float | Decimal number |
| DECIMAL(p,s) Alias: Decimal | NUMERIC/DECIMAL Alias: Numeric/Decimal | Decimal number |
| DATE Alias: Date | DATE Alias: Date | Date/Time |
| TIMESTAMP Alias: Timestamp | TIMESTAMP Alias: Timestamp | Date/Time |
| BINARY Alias: Binary | BYTES Alias: Bytes | Text (Base64) |
| ARRAY Alias: Array | REPEATED Alias: Repeated | Text |
| MAP<K,V> Alias: Map | RECORD Alias: Record | Text |
| STRUCT Alias: Struct | RECORD Alias: Record | Text |
| NULLTYPE Alias: Nulltype | NULL Alias: Null | Blank |
Sharing connections within teams
Power BI connections are stored within fabrics, which are assigned to specific teams in Prophecy. Once a Power BI connection is added to a fabric, anyone on that team can use it to send data to Power BI from their pipelines. Everyone will inherit the permissions of the Microsoft Entra app used for connection setup.